TryHackMe(THM):Shodan.io
目次
- Task 1 Introduction
- Task 2 Filters
- Task 3 Google & Filtering
- What is the top operating system for MYSQL servers in Google's ASN?
- What is the 2nd most popular country for MYSQL servers in Google's ASN?
- Under Google's ASN, which is more popular for nginx, Hypertext Transfer Protocol or Hypertext Transfer Protocol with SSL?
- Under Google's ASN, what is the most popular city?
- Under Google's ASN in Los Angeles, what is the top operating system according to Shodan?
- Using the top Webcam search from the explore page, does Google's ASN have any webcams? Yay / nay.
- Task 4 Shodan Monitor
- Task 5 Shodan Dorking
- Task 6 Shodan Extension
- Task 7 Exploring the API & Conclusion
この記事は、DeepL翻訳を利用して和訳しています。
このサイトに書かれている攻撃手法は「自分に権利のあるサイト」以外では使用しないでください
Task 1 Introduction
Twitterでフォローすると、より多くのコンテンツを見ることができます✨。
このブログの記事をもとに https://twitter.com/bee_sec_sanが作成した部屋。
Shodan.ioは、モノのインターネットのための検索エンジンです。
一般公開されているCCTVカメラをどうやって見つけるか考えたことがありますか?パイホールがどれだけ公開されているかを調べるのはどうでしょうか?
あるいは、オフィスのコーヒーマシンがインターネットに接続されているかどうか?
Shodan.ioがその答えです。
Shodanは、インターネット全体をスキャンし、各IPアドレスで実行されているサービスをインデックス化します。
注:フォローする場合は、Shodanのプレミアムアカウントが必要となります。
サービスを探す
例えば、ある企業に対してペンテストを行い、その企業のサーバーがどのようなサービスを実行しているのかを調べたいとします。
相手のIPアドレスを取得する必要があります。これには ping を使います。
tryhackme.comにpingを打ち、その応答でIPアドレスを知ることができます。
そして、そのIPアドレスをShodanに入力して取得しています。
TryHackMeは米国のCloudflare上で動作しており、多くのポートを開いていることがわかります。
Cloudflareは、TryHackMeと彼らの実際のサーバーとの間のプロキシとして機能しています。大企業を対象としたペンテストの場合、これは役に立ちません。彼らのIPアドレスを取得する方法が必要です。
これを実現するには、自律システム番号を利用します。
自律システム番号
自律システム番号(ASN)とは、あるIPアドレスの範囲を示すグローバルな識別子です。Googleのような巨大企業であれば、所有するすべてのIPアドレスに対して独自のASNを持っていることでしょう。
https://www.ultratools.com/tools/asnInfo のようなASN検索ツールにIPアドレスを入れることができます。
つまり、ASN AS14061を持っているということです。
Tryhackmeはメガ大企業ではないので、自分のASNを持っていません。AS14061をググってみると、DigitalOceanのASN番号であることがわかります。
Shodan.ioでは、ASNフィルターを使って検索することができます。ASN:[番号]となっており、番号は先ほどのAS14061という番号になります。
このようにして、この1つのASNに登録されている620万のウェブサイト全体を見ることができるのです。
https://www.shodan.io/search?query=asn%3AAS14061
ASNを知っていると、コーヒーメーカーや脆弱性のあるコンピュータなど、(大企業であれば)自社のネットワーク上にあることがわかっているASN内のものをShodanで検索することができるので便利です。
Getting started
いよいよ本格的なスタートです。もし行き詰まったら、前のタスクを見て参考にしてみてください。:)
Banners
Shodanを最大限に活用するためには、検索クエリの構文を理解することが大切です。
デバイスはサービスを実行しており、Shodanにはその情報が格納されています。その情報を格納しているのが「バナー」です。Shodanの最も基本的な部分である。
バナーの例は次のようになります。
1つのポートの出力を見ていますが、その中にはIPや認証の詳細などの情報が含まれています。
これはAPI以外ではあまり目にすることがないので、ここでは掘り下げません。
Answer the questions below
Go to Shodan.io
No answer needed
Task 2 Filters
Filters
Shodan.ioのホームページでは、「explore」をクリックすると、最も投票数の多かった検索クエリを見ることができます。一番人気は「Webカメラ」です。
注:これはグレーゾーンです。一般にアクセス可能なウェブカメラを見ることは合法ですが、パスワードで保護されたウェブカメラに侵入しようとすることは違法です。頭を使って、自分の国の法律を調べてみてください。
他にも最もアップブリードされている検索として、MYSQLデータベースの検索があります。
https://www.shodan.io/search?query=product%3AMySQL
検索を見てみると、別のフィルターになっていることがわかります。
product:MySQL
これにより、2つの検索結果を1つにまとめることができるのです。
TryHackMeのASNでは、MYSQLサーバーを探してみましょう。
We use this search query
asn:AS14061 product:MySQL
そして、ジャジャーン! TryHackMeのASN(本当はDigitalOceanのASN)にMYSQLサーバーがあります。
https://www.shodan.io/search?query=asn%3AAS14061+product%3AMySQL
Shodanには、数多くの強力なフィルターが搭載されています。私が気に入っているのは、脆弱性フィルターです。これは、脆弱性のあるIPアドレスを検索することができます。
例えば、エターナルブルーに脆弱なIPアドレスを探したいとします。
vuln:ms17-010
ただし、悪質な業者がこれを悪用するのを防ぐため、アカデミックまたはビジネスユーザーのみが利用できます
都市名 国名 Geo (座標) ホスト名ネット(IP / CIDRに基づく) ポートビフォア/アフター(時間枠)
API
Shodan.ioにはAPIがある!?アカウントが必要なので、ここでは説明しません。
Shodan APIについて知りたい方は、こちらのブログでShodan APIを使ったパイホール探しを紹介しています。
https://github.com/beesecurity/How-I-Hacked-Your-Pi-Hole/blob/master/README.md
このAPIでは、プログラムによってShodanを検索し、その結果としてIPアドレスのリストを受け取ることができます。企業であれば、自社のIPアドレスに脆弱性がないかどうかをチェックするスクリプトを書くことができます。
PS:左のサイドバーにあるものをクリックすると、Shodanで自動的にフィルターをかけることができます。
Answer the questions below
How do we find Eternal Blue exploits on Shodan?
解答は説明の中にあります。
Task 3 Google & Filtering
Googleでフィルタリングを学ぶ。役立つヒント:質問が何を尋ねているのか、細心の注意を払ってください
Shodanの仕様が変わったようで、解答結果が導くことができなくなってしまったようです。
Answer the questions below
What is the top operating system for MYSQL servers in Google's ASN?
ヒントを見ると、解答の文字列と一緒だった。
What is the 2nd most popular country for MYSQL servers in Google's ASN?
これもヒントに解答が書いてあった
Under Google's ASN, which is more popular for nginx, Hypertext Transfer Protocol or Hypertext Transfer Protocol with SSL?
GoogleのASNでは、nginxではHypertext Transfer ProtocolとHypertext Transfer Protocol with SSLのどちらが人気がありますか?
これもヒントに解答が書いてあった
Under Google's ASN, what is the most popular city?
これもヒントに解答が書いてあった
Under Google's ASN in Los Angeles, what is the top operating system according to Shodan?
これもヒントに解答が書いてあった
Using the top Webcam search from the explore page, does Google's ASN have any webcams? Yay / nay.
これもヒントに解答が書いてあった
Task 4 Shodan Monitor
Shodan Monitorは、自分のネットワーク内のデバイスを監視するためのアプリケーションです。彼らの言葉を借りれば
インターネットに接続されているデバイスを追跡することができます。通知を設定し、スキャンを開始することで、接続されているデバイスを完全に把握することができます。
これまではAPIを使って行っていましたが、今はこのような素敵なアプリケーションがあります。
ダッシュボードにはこのリンクからアクセスしてください。
https://monitor.shodan.io/dashboard
IPレンジを要求しているのがわかります。
ネットワークを追加すると、ダッシュボードで確認することができます。
「設定」をクリックすると、Shodanがネットワークに対して行う「スキャン」の種類が表示されます。
これらのカテゴリの中で、セキュリティ上の脆弱性が検出されると、Shodanはメールで知らせてくれます。
ダッシュボードを見てみると、いくつかの項目が表示されています。
Most notably:
- トップオープンポート(最も一般的なもの)
- トップレベルの脆弱性(すぐに対処しなければならないもの)
- Notable Ports(オープンしている珍しいポート)
- 潜在的なVulenrabilites
- 注目すべきIP(より深く調査すべきもの)
面白いのは、これを使って他の人のネットワークを実際に監視できることです。バグバウンティのためにIPのリストを保存しておくと、何か問題が見つかった場合にShodanがメールで知らせてくれる。
注:この製品はプレミアム製品ですが、ブラックフライデーのお得なキャンペーンでは、1ドルのShodanアカウントが手に入ることがよくあります。
Answer the questions below
What URL takes you to Shodan Monitor?
shodanのサイトから解答を見つけます。
Task 5 Shodan Dorking
初段には、検索するためのドークを使った素敵なウェブページがあります。その検索例のページには、いくつかの特徴があります。
楽しいものをいくつか紹介します。
has_screenshot:true encrypted attention
光学式文字認識とリモートデスクトップを利用して、インターネット上でランサムウェアに感染したマシンを発見します。
screenshot.label:ics
vuln:CVE-2014-0160
インターネットに接続されたマシンが heartbleed に感染する可能性があります。注:CVE検索は、学術機関または企業の購読者にのみ許可されています。
Faviconsを使ってソーラーウィンズのサプライチェーンを攻める。
http.favicon.hash:-1776962843
Shodan DorksはGitHubにもあります。
Answer the questions below
What dork lets us find PCs infected by Ransomware?
このタスクの一番最初の項目が解答です。
Task 6 Shodan Extension
Shodanも延長しています。
https://chrome.google.com/webstore/detail/shodan/jjalcfnidlmpjhdfepjhjbhnhkbgleap
インストールされると、それをクリックすると、実行しているウェブサーバのIPアドレス、開いているポート、拠点、セキュリティ上の問題があるかどうかなどが表示されます。
バグバウンティに興味がある人にとっては、Shodanの出力結果からシステムに脆弱性があるかないかをすぐに判断できるので、良い拡張機能だと思います。
初段は延長もあり。
https://chrome.google.com/webstore/detail/shodan/jjalcfnidlmpjhdfepjhjbhnhkbgleap
PS:これが拡張機能の公式画像です。ぼやけていてすみません!
Answer the questions below
This will be nice for bug bounties!
No answer needed
Task 7 Exploring the API & Conclusion
Shodan.ioにはAPIがある!?アカウントが必要なので、ここでは説明しません。
Shodan APIについて知りたい方は、こちらのブログでShodan APIを使ったパイホール探しを紹介しています。
https://github.com/beesecurity/How-I-Hacked-Your-Pi-Hole/blob/master/README.md
このAPIでは、プログラムによってShodanを検索し、その結果としてIPアドレスのリストを受け取ることができます。企業であれば、自社のIPアドレスに脆弱性がないかどうかをチェックするスクリプトを書くことができます。
PS:左のサイドバーにあるものをクリックすると、Shodanで自動的にフィルターをかけることができます。
Answer the questions below
Read the blog post above!
No answer needed
完了!