SHODANの検索エンジンをプロのように使いこなすための、SHODANの検索フィルターやSHODANのドークを含む、個人的なSHODANチートシートを共有しています。これを使えば、簡単に目的の検索結果を得ることができます。
GoogleやBing、Yahooなどのコンテンツ検索エンジンとは大きく異なります。GoogleやBing、Yahooのようなコンテンツ検索エンジンは、ウェブページのデータをクロールして検索用のインデックスを作成するのに対し、Shodanはポートを照会して結果のバナーを取得し、検索用のインデックスを作成します。
あなたがサイバーセキュリティの分野にいるならば、Shodan検索エンジンについてよく知られているはずです。Shodanは、インターネット上の特定の種類のコンピューター(ルーター、ウェブカメラ、サーバーなど)を、さまざまなフィルターを使って見つけることができるIoT検索エンジンです。Shodanは、ターゲットの受動的な偵察や、測定ツールとして最適なリソースです。
https://shodan.io/ を開いて、このSHODANチートシートのコマンドを打ち込むだけです。
Server
特定のサーバーヘッダーフラグを持つデバイスやサーバーを探すことができます。脆弱なサーバーを調査することができます。
server: "apache 2.2.3"
または、直接フラグを入れても検索できます。
apache 2.2.3
hostname
世界中の特定のホスト名を持つデバイスを検索します。ホスト名とは、ネットワークに接続されている機器に付けられたラベルのことで、WWWなどの各種通信で機器を見分けるために使用されます。SHODANチートシートに含まれる複数のフィルターを使用して、検索結果を絞り込むことができます。
server: "apache" hostname:"google"
net
IPアドレスまたは/x CIDRに基づいて、デバイスやマシンを検索します。このフィルターは、IPレンジや特定のIPアドレスとサブネットマスクの検索にも使用できます。
net:34.98.0.0/16
os
オペレーティングシステムに基づいてデバイスを検索します。特定のOSを搭載しているデバイスをすべて見つけることができます。これは、侵入テスト担当者が、特定のオペレーティングシステムのフィルタを持つ脆弱なマシンを見つけるのに役立ちます。
os:"windows xp"
port
開いているポートに基づいてデバイスを検索します。"port "フィルターは、特定のオープンポートを持つマシンを検索対象にすることができます。
proftpd port:21
city
特定の都市のデバイスを検索します。例えば、ムンバイの都市のみに絞って検索したい場合は、以下のようになります。
city:"Mumbai"
country
特定の国のデバイスを検索します。例えば、インドだけに絞って検索したい場合
country:"IN"
geo
一定の半径内にある特定の経度と緯度による地理的座標を与えてデバイスを見つける。
geo:"48.1667,-100.1667"
before/after
「after」と「before」のフィルターを使うと、特定の日付の後や前にデバイスを表示することができます。
使用できるフォーマットはdd/mm/yyyyです。
nginx before:13/04/2020 after:13/04/2018
has_screenshot
このフィルターは、スクリーンショットが利用可能な結果のみを返します。
has_screenshot:true city:"George Town"
Wifi Passwords
Shodanでは、無線LANの平文のパスワードを見つけることができます。
html:"def_wirelesspassword"
Surveillance Cams
ユーザー名:admin、パスワード:passwordで監視カメラのデータを取得する
NETSurveillance uc-httpd
また、以下のコマンドを使用することもできます。
Android Webcam Server
Citrix
Citrix Gatewayの検索を行います。
title:"citrix gateway"
Windows RDP Password
ただし、セカンダリウィンドウズ認証を含む場合があります。
"\x03\x00\x00\x0b\x06\xd0\x00\x00\x124\x00"
Misconfigured WordPress Sites
wp-config.phpにアクセスすると、データベースの認証情報が表示されます。
http.html:"* The wp-config.php creation script uses this file"
ワードプレスのメイン設定ファイルにアクセスし、設定ミスのサイトの認証情報やAUTH_KEYなどの機密情報を取得することができます。
Mongo DB servers
mongo DBサーバの情報を提供するフィルタです。
"MongoDB Server Information" port:27017 -authentication
FTP servers allowing anonymous access
完全なアノニマス・アクセスのためのデータを取得します。
"220" "230 Login successful." port:21
Jenkins
すべてのJenkinsのための検索 制限のないダッシュボード
x-jenkins 200
Telnet Access
telnetアクセスにパスワードが必要な機器を検索します。
port:23 console gateway
Etherium Miners
ETHを実行しているマイナーを表示しています。
"ETH - Total speed"
screenshot.label
セキュリティ設定がザルなWebカメラのスクリーンショットを表示
screenshot.label:ics country:"JP"
ssl
サーバの証明書情報に指定したドメインが含まれているサーバを列挙
ssl:expedia.com
自組織のドメイン名が世界的にも珍しく、他企業との重複がない場合は TLD 部分(.com / .jp など)を省略すると、海外ドメインや派生ドメインも一気に検索できます。
例えば私が根に持っている某 OTA の expedia.com であれば、以下のように ssl:expedia とすることで、関連ホストを一括で洗い出すことができます。
また、複数ドメインやホスト名をまとめて調査したい場合は、以下のように カンマ区切りで検索対象を追加できます。
ssl:expedia.com,hafh.com,united.com
🔎 追加:企業名や証明書のサブジェクト名で検索する方法
SSL 証明書には “組織名(Organization)” や “Common Name(CN)” が含まれています。
これを利用すると、企業名ベースの横断検索が可能です。
例えば「Coca-Cola Company」の証明書を持つホストを調べたい場合:
ヒット件数が多すぎたり、ステータスコードで絞り込みたいときは 200 系のみに限定することもできます。
ssl:"Coca-Cola Company" 200
🎯 追加:CN(Common Name)を直接指定する高度な検索
特定ドメインの証明書 “CN” を直接検索したい場合は、
以下のように ssl.cert.subject.CN: を使うのがより正確です。
ssl.cert.subject.CN:"coca-cola.com"
この検索は “メインのサブドメイン / ルートドメインの CN を持つ証明書” を対象にするため、誤検知を避けながら効率よく関連ホストを抽出できます。
org
IPアドレスの所有者情報に含まれる組織名をもとにサーバを列挙。
org検索を行うための組織名が不明な場合や他企業との重複が多い場合は、Facet検索を行い絞り込みを行う。
以下URLにアクセスし、左側の検索ボックスにssl:自社ドメイン または hostname:自社ドメインを検索すると、そのサーバがどのIPアドレス所有者のもとで稼働しているかが一覧で表示されます。
https://www.shodan.io/search/facet?query=ssl%3Aexpedia.com&facet=org
一覧中に、自組織名があれば、その文字列をコピーして org:を付加して検索。
自組織が所有権を持つIPアドレスが付与された資産を列挙することができます。

Shodan Dorking のためのリソース集
1. GitHub:Awesome-Dorks リポジトリ
GitHub にある Awesome-Dorks リポジトリは、一般的な Dorks 集のような雑多な内容ではなく、Bug Bounty で実際に使われる実用的な検索式がまとまっている点が大きな魅力です。
例:Jenkins を探す検索式
HTML 内の特定文字列と HTTP コンポーネントの組み合わせで誤設定をピンポイントで検知できます。
GitHub には多数の Dorks リストがありますが、
実用度は玉石混交であり、最初に見るべきは Awesome-Dorks です。
2. Shodan の Favicon ハッシュ検索
次に活用頻度が高いのが favicon ハッシュによる製品特定です。
Shodan は各ホストの favicon をハッシュとして保持しており、製品によっては 環境が違ってもほぼ同じ favicon を使うため、ハッシュ検索が非常に効果的です。
例:
検索例:
favicon から製品を逆引きできるため、世界中の公開 Jenkins / Atlassian 環境を一気にスキャンして把握することができます。
誤設定 UI や管理画面が露出している場合、この方法は最も高速に “候補をザクザク集める” のに役立ちます。
3. Twitter(X)で最新の Shodan Dorks を収集する
アイデア源として非常に価値が高いのが Twitter(X)で流れてくる Shodan Dorks です。
ただし、Twitter(X) 内検索は精度が低いため、Google 経由で Twitter(X) を検索するのが正攻法です。
例:
 |
| Bug Bounty ハンターが共有した “実際に使える Dorks” が大量に出てくる |
Twitter(X)は更新が圧倒的に速く、最新の誤設定・脆弱構成の発見方法はまずTwitter(X) に投稿されるという傾向があります。
そのため、「新しい Dork を探す」ではなく、“新しい攻撃ベクトルを知る” ために Twitter(X) をチェックするというイメージで活用すると効果が大きいです。