[OSINT]Shodanを使ってFileZenを探せ その2(データ収集テクニック)
はじめに
先日公開をさせていただきました、[OSINT]Shodanを使ってFileZenを探せ その1の後半記事になります。その1ではFileZenのホストの特定をWebブラウザから行い、200以上のホストを見つける事ができました。
その200以上のホストの情報について、どのようにして効率的に情報を取得すれば最も効率的なのか?その2ではその手法について簡単にご紹介したいと思います。
1章 Shodan Web UIの限界
一般的には、WebUIから検索結果を見て行けばいいのでは?と考えると思います。しかし、数百件の情報を見ていくのは、気が遠くなる話です(私は飽きてしまいます)。
shodanは1ページ10件ですので、上の例ですとすべての検索結果を見るためには最低でも23回、ページを遷移する必要があります。もう少し検索条件を絞る事で対象を減らす事は可能ではありますが、それがページを遷移しないことに対する解決策になるとは個人的にはあまり思えません。ではどうしたらいいのでしょうか?そのことについて次章から考えて行きます。
2章 検索結果をDownload(クレジットを消費します)
実は課金ユーザには検索結果をダウンロードする機能があります。検索窓下にある[Download Results]がその機能です。
実際にクリックをしてみました。クリックをすると以下のポップアップ画面が表示されます。
Shodanでは10,000件の検索結果を1creditとしてExportすることができます。私はBlack Friday Saleでライセンスを購入していたので、20Creditを所有していました(現在3creditを消費しています)。このCreditですが、1度消費すると恐らく、戻ってこない(追加で購入できるのか、私のライセンスだと不明です(調べていません))ものです。大切に使いましょう。兎にも角にも、Download Report機能を使用することで、検索結果のダウンロードは可能です。ただ、Creditの消費が発生することもあり、個人的には結果が1000件を満たない少数なのであれば、Download機能を使う事はあまりお勧めしませんし、私ももったいないので使いません。
3章 Shodan Command-Line Interface
shodanにはCommand-Line Interfaceが存在することをご存知でしょうか?そう、実はshodanにはCLIで検索できるという便利な機能が備わっています。shodan CLIはPythonのライブラリとして存在しています。
インストールの前にあらかじめ自身のAPIキーを取得しておきましょう。APIキーは[My Account]から取得できます。
インストールは非常にかんたんです。
pip3 install shodan
以上です。インストール後、APIキーを登録します
shodan init [YOUR_API_KEY]
これをやらないと使えませんので気を付けてください。インストールが完了しましたら"shodan"とコマンドを入力して実行します。ヘルプが以下のように表示されるはずです。
$ shodan
Usage: shodan [OPTIONS] COMMAND [ARGS]...
Options:
-h, --help Show this message and exit.
Commands:
alert Manage the network alerts for your account
convert Convert the given input data file into a different format.
count Returns the number of results for a search
data Bulk data access to Shodan
domain View all available information for a domain
download Download search results and save them in a compressed JSON...
honeyscore Check whether the IP is a honeypot or not.
host View all available information for an IP address
info Shows general information about your account
init Initialize the Shodan command-line
myip Print your external IP address
org Manage your organization's access to Shodan
parse Extract information out of compressed JSON files.
radar Real-Time Map of some results as Shodan finds them.
scan Scan an IP/ netblock using Shodan.
search Search the Shodan database
stats Provide summary information about a search query
stream Stream data in real-time.
version Print version of this tool.
色々な機能があることがおわかりいただけるかと思います(すみません、私も全てを使って検証をした事はありません)。今回は検索した結果を取得する事を目的として使いますので"shodan search"コマンドを使っていきます。オプションは以下のようになっています。それでは4章では、今回のFileZenを題材として実際に検索をしていきましょう。
$shodan search -h
Usage: shodan search [OPTIONS] <search query>
Search the Shodan database
Options:
--color / --no-color
--fields TEXT List of properties to show in the search results.
--limit INTEGER The number of search results that should be returned.
Maximum: 1000
--separator TEXT The separator between the properties of the search
results.
-h, --help Show this message and exit.
4章 shodan cliを使ってsearchする
まずは何も考えないで検索をしてみます。
shodan search --color http.favicon.hash:-1338145819
下図のような検索結果が返ってきます。
これだけだと、個人的には欲しい情報がすべて含まれているわけではありません。個人的に欲しいのは下のようなraw dataに含まれるもっと詳細の情報です。例えば組織の特定に繋がるSSLの証明書に設定されているCNやO
バージョン情報の特定につながる可能性があるLast-Modified
等です。shodan searchコマンドでは、raw dataの
Property Nameを--fieldsオプションを使ってカンマ区切りで指定することで、Valueを出力させることが可能です。また、結果についてセパレータ(delimiter)を指定することも可能です。また、出力するデータについては上限値を設ける事も可能です。それでは実際にやってみたいと思います。コマンドは以下のようになります。
$ shodan search --color http.favicon.hash:-1338145819 --fields ip_str,http.host,hostnames,domains,ssl.cert.subject.CN,data --separator , --limit 1000
結果は以下のようになります。
今回はセパレータに","を指定しましたのでCSV形式で処理する事が可能になっています。このように出力させれば、分析はもっと効率的にできるのではないかと思いますがいかがでしょうか?。ちなみに、CLIで検索をした場合もCreditを消費します。
$shodan info
Query credits available: 77
Scan credits available: 100
月単位で最大100件までQueryを発行できます。今月はあと77件残っています(今月、Ondemand Scanはまだ1回もやってないのか…はやく使い切ろう)。このCreditは月がかわると(日付までは確認をしていません)また元の100に戻ります。ここがDownload Resultsとは異なる点です。なお、検索結果については画面に結果が流れるだけになります。結果を保存する場合は必ず、リダイレクタ(>)を使って標準出力の結果を保存するようにしてください。
まとめ
その2ではその1でやったshodanの検索結果を、効率的に分析するための出力テクニックについてご紹介をしました。shodanにはこのほかにも様々な機能があり、使いこなす事でBlueTeam側にも、RedTeam側にも使える優秀な武器になります。
今回はshodanを使った検索テクニックについてご紹介をしましたが、他にも似たようなサービスが沢山あり、それぞれの特徴を知り、生かして検索、調査することで新しい発見が得られる事が沢山あります。
ぜひ、これらのツールを生かして、Happy OSINT Lifeをすごしてください。
あ、そうだ、検索クエリについてですが、shodanでは[Explorer]というもので保存して共有することができるようになっています。
このFilezen…関係者の皆様ごめんなさい🙇、これは僕の仕業です。
参考
Shodan (https://www.shodan.io/)
Shodan Command-Line Interface(https://cli.shodan.io/)
Shodan search 101(https://ninoseki.github.io/2020/04/01/shodan-101.html)
この記事が気に入ったらサポートをしてみませんか?