Sherlockとは何か
SherlockはPythonで作られたコマンドラインツールです。
複数のSNS(Twittter,Facebook,Steam等)で同じユーザ名が使われているアカウントが存在するかどうかを確認することができます。
Sherlockを使うとこのように同じuser_idが存在するサービスが一覧表示されます。
$python3 sherlock.py --print-found {user_id}
[*] Checking username {user_id} on:
[+] Blogger: https://{user_id}.blogspot.com
[+] Facebook: https://www.facebook.com/{user_id}
[+] Instagram: https://www.instagram.com/{user_id}
[+] Pinterest: https://www.pinterest.com/{user_id}/
[+] Reddit: https://www.reddit.com/user/{user_id}
[+] Spotify: https://open.spotify.com/user/{user_id}
[+] Twitch: https://www.twitch.tv/{user_id}
[+] Twitter: https://www.twitter.com/{user_id}
※ユーザ名を{user_id}として表現しています。
インストール手順
インストール手順はSherlockのREADMEを参照してください。
Python(3.6以上)およびpip3のインストールが必要になります。
# インストール手順
# リポジトリをクローン
$ git clone https://github.com/sherlock-project/sherlock.git
# 対象ディレクトリに移動
$ cd sherlock
# 必要なライブラリのインストール
$ python3 -m pip install -r requirements.txt
sherlockを実行してインストールされたか確認してみます。
python3 sherlock.py --help
usage: sherlock.py [-h] [--version] [--verbose] [--rank]
[--folderoutput FOLDEROUTPUT] [--output OUTPUT] [--tor]
[--unique-tor] [--csv] [--site SITE_NAME]
[--proxy PROXY_URL] [--json JSON_FILE]
[--proxy_list PROXY_LIST] [--check_proxies CHECK_PROXY]
[--print-found]
USERNAMES [USERNAMES ...]
Sherlock: Find Usernames Across Social Networks (Version 0.9.12)
positional arguments:
USERNAMES One or more usernames to check with social networks.
optional arguments:
-h, --help show this help message and exit
--version Display version information and dependencies.
--verbose, -v, -d, --debug
Display extra debugging information and metrics.
--rank, -r Present websites ordered by their Alexa.com global
rank in popularity.
--folderoutput FOLDEROUTPUT, -fo FOLDEROUTPUT
If using multiple usernames, the output of the results
will be saved to this folder.
--output OUTPUT, -o OUTPUT
If using single username, the output of the result
will be saved to this file.
--tor, -t Make requests over Tor; increases runtime; requires
Tor to be installed and in system path.
--unique-tor, -u Make requests over Tor with new Tor circuit after each
request; increases runtime; requires Tor to be
installed and in system path.
--csv Create Comma-Separated Values (CSV) File.
--site SITE_NAME Limit analysis to just the listed sites. Add multiple
options to specify more than one site.
--proxy PROXY_URL, -p PROXY_URL
Make requests over a proxy. e.g.
socks5://127.0.0.1:1080
--json JSON_FILE, -j JSON_FILE
Load data from a JSON file or an online, valid, JSON
file.
--proxy_list PROXY_LIST, -pl PROXY_LIST
Make requests over a proxy randomly chosen from a list
generated from a .csv file.
--check_proxies CHECK_PROXY, -cp CHECK_PROXY
To be used with the '--proxy_list' parameter. The
script will check if the proxies supplied in the .csv
file are working and anonymous.Put 0 for no limit on
successfully checked proxies, or another number to
institute a limit.
--print-found Do not output sites where the username was not found.
ご覧の通り様々なオプションが存在しますが、本記事では取りあげません。
実際に検索してみる
$python3 sherlock.py --print-found {user_id}
[*] Checking username {user_id} on:
[+] Blogger: https://{user_id}.blogspot.com
[+] Facebook: https://www.facebook.com/{user_id}
[+] Instagram: https://www.instagram.com/{user_id}
[+] Pinterest: https://www.pinterest.com/{user_id}/
[+] Reddit: https://www.reddit.com/user/{user_id}
[+] Spotify: https://open.spotify.com/user/{user_id}
[+] Twitch: https://www.twitch.tv/{user_id}
[+] Twitter: https://www.twitter.com/{user_id}
※ユーザ名を{user_id}として表現しています。
様々なサービスで同じUserIDが使用されていることが分かります。
まとめ
OSINTのツールを使うことで、簡単にユーザIDから公開情報を取得することができてしまうことが分かりました。
怖いですね。