コースURL : https://tryhackme.com/room/shodan
- Shodan はインターネット全体をスキャンし、それぞれの IP アドレス上で動作しているサービスをインデックス化している
- Shodan を最大限に活用するためには、検索クエリの構文を理解することが大切
これらの検索をする前にpingなどで、事前にIP・ドメインを知っておく必要があることは、みんな知ってる
┌──(snowyowl@macbookpro-14)-[/Users/snowyowl]
└─$ ping tryhackme.com
🏓 ping
PING tryhackme.com (172.66.164.239): 56 data bytes
64 bytes from 172.66.164.239: icmp_seq=0 ttl=59 time=8.337 ms
64 bytes from 172.66.164.239: icmp_seq=1 ttl=59 time=8.139 ms
^C
--- tryhackme.com ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 8.139/8.238/8.337/0.099 ms
ASN
- 自律システム番号 (ASN: Autonomous System Number) は、グローバルIP アドレスの範囲を示す識別子
- IP アドレスを asnlookup.com などのツールに入力すると、対応する ASN を調べられる
- しかし、どのASNも全てが独自のASNを持っているわけではなく、どこかの会社のを借りている場合もある
- Shodan.io では ASN フィルター を使って検索できる
ASN:[番号]
でクエリできる
- ASNで検索するメリット
- 大企業のネットワークに属していることがわかっている ASN 内で、コーヒーメーカーや脆弱なコンピュータを探すことができる
Banners
- デバイスのサービスを バナー (banner) として保存している
- バナーは Shodan における最も基本的な情報単位
バナーの例
- あるポートに関する出力で、IP 情報や認証の状態などを含んでいる
- こうした詳細は基本的に API からしか見られない
{
"data": "Moxa Nport Device",
"Status": "Authentication disabled",
"Name": "NP5232I_4728",
"MAC": "00:90:e8:47:10:2d",
"ip_str": "46.252.132.235",
"port": 4800,
"org": "Starhub Mobile",
"location": {
"country_code": "SG"
}
}
Filters
-
Exploreにアクセスすると、最も人気のある検索クエリを見ることができる
-
最も多いのが webcam
- 公開されているウェブカメラを見ること自体は合法ですが、パスワードで保護されているカメラに侵入しようとするのは違法
-
もう一つがMySQL
-
このように、サービス名で検索するときは以下のようにする
product:MySQL
-
検索クエリは連結できるため、ASNがAS14061(TryHackMe の ASN)の中で、MySQLサービスを探したい時には以下のようにすれば良い
asn:AS14061 product:MySQL
フィルター一覧はここにまとまってる
Vulnフィルター
- Shodanの強力なフィルターの一つ
- 既知の脆弱性に対して脆弱な IP アドレスを検索できる
- 例 : EternalBlue に脆弱な IP アドレスを探したい場合、以下のようにクエリできる
vuln:ms17-010
- しかし、悪用を防ぐため、学術利用または企業利用 に限られている
- Memberでもダメ
そのほかにもこんなフィルターがある
- city
- country(国)
- geo
- 座標
- hostname
- net
- IP / CIDR ベース
- os
- port
- before/after
- 期間指定
API
-
プログラムで Shodan を検索して、IP アドレスのリストを取得できる
-
企業であれば、自分たちの IP アドレスを自動的にチェックし、脆弱なものがないか確認するスクリプトを書くことが可能
-
以下のAPIで Pi-Hole を探す記事に詳しく書いてある
https://github.com/beesecurity/How-I-Hacked-Your-Pi-Hole/blob/master/README.md
Monitor
-
自分のネットワーク内のデバイスを監視するためのアプリケーション
-
通知を設定し、スキャンを実行し、接続されているものを完全に可視化できる
-
アクセスすると、IP 範囲を入力するよう求められる
-
ネットワークを追加すると、ダッシュボード上で確認できる
-
特に重要なのは
- Top Open Ports(最もよく開いているポート)
- Top Vulnerabilities(すぐに対処すべき脆弱性)
- Notable Ports(通常は開いていない珍しいポート)
- Potential Vulnerabilities(潜在的な脆弱性)
- Notable IPs(さらに詳しく調査すべき IP)
-
興味深いのは、実際には他人のネットワークも監視できるという点
- バグバウンティでは IP のリストを保存しておけば、Shodan が問題を発見したときにメールで通知してくれる
Dork
- 特定のものを見つけるための Dork(特殊検索クエリ) をまとめた便利なページがある
- Github
面白い例としては
-
OCRとリモートデスクトップを利用して、ランサムウェアに感染したマシン をインターネット上から探し出すクエリ
has_screenshot:true encrypted attention
-
SolarWinds サプライチェーン攻撃をファビコンで探す例
http.favicon.hash:-1776962843
拡張機能
-
Shodanには拡張機能があって、これを使うとwebページからshodanに簡単に飛べて便利
- 実行中の Web サーバーの IP アドレス、開いているポート、サーバーの所在地、セキュリティ上の問題があるかどうかが表示される
- バグバウンティに最適
-