SHODANは、インターネット上で公開されている機器に関する情報をデータベース化しているサービスです。オフィス機器や、家電が意図せず公開してしまっているポート番号などもわかってしまいます。
ブラウザから検索可能です。
無料アカウントでは、一部しか検索できないようですが、一回だけ$49を支払うとその制限が外れるようです。
RESP APIが提供されているので、アカウント情報にあるAPI_KEYを使ってアクセスが可能です。
スクリプト提供
スクリプトは、無料でアカウントを作成してAPI Keyを取得することで使えるようになります。Python, Ruby, NodeJS、などなどLibraryが提供されています。
Python
例えば、Pythonではeasy_installでインストールできてしまいます。
$ easy_install shodan
そして、このサンプルのように、これだけでapacheサーバーがずらずら出てきます。他のキーワードを入れてみても、ずらずら出てきます。あらら、危ないですねぇ。
import shodan
SHODAN_API_KEY = "insert your API key here"
api = shodan.Shodan(SHODAN_API_KEY)
# Wrap the request in a try/ except block to catch errors
try:
# Search Shodan
results = api.search('apache')
# Show the results
print 'Results found: %s' % results['total']
for result in results['matches']:
print 'IP: %s' % result['ip_str']
print result['data']
print ''
except shodan.APIError, e:
print 'Error: %s' % e
有料メニュー
また、スクリプトで利用する時の有料メニューは別途用意されているようで、月間のクエリ数で$19/月, $99/月, $499/月の3つの選択肢があります。
所感
悪用すると危ない反面、自分たちのサーバーに穴がないかのチェックにも使えるかもしれませんね。便利です。
本当に悪い人たちは、API_KEY登録してこんなところで調べたりしないですよね。きっと。
おわり。