TryHackMe(THM):Shodan.io

f:id:akebono-haze:20220115232301p:plain

目次

この記事は、DeepL翻訳を利用して和訳しています。

www.deepl.com

このサイトに書かれている攻撃手法は「自分に権利のあるサイト」以外では使用しないでください

 

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に入力して取得しています。

f:id:akebono-haze:20220112213219p:plain



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

f:id:akebono-haze:20220112213658p:plain

ASNを知っていると、コーヒーメーカーや脆弱性のあるコンピュータなど、(大企業であれば)自社のネットワーク上にあることがわかっているASN内のものをShodanで検索することができるので便利です。
   
 Getting started
いよいよ本格的なスタートです。もし行き詰まったら、前のタスクを見て参考にしてみてください。:)

Banners
Shodanを最大限に活用するためには、検索クエリの構文を理解することが大切です。

バイスはサービスを実行しており、Shodanにはその情報が格納されています。その情報を格納しているのが「バナー」です。Shodanの最も基本的な部分である。
バナーの例は次のようになります。

f:id:akebono-haze:20220112214124p:plain

1つのポートの出力を見ていますが、その中にはIPや認証の詳細などの情報が含まれています。

これはAPI以外ではあまり目にすることがないので、ここでは掘り下げません。

Answer the questions below

Go to Shodan.io

No answer needed

 

Task 2  Filters

Filters
Shodan.ioのホームページでは、「explore」をクリックすると、最も投票数の多かった検索クエリを見ることができます。一番人気は「Webカメラ」です。
 

https://www.shodan.io/explore

注:これはグレーゾーンです。一般にアクセス可能なウェブカメラを見ることは合法ですが、パスワードで保護されたウェブカメラに侵入しようとすることは違法です。頭を使って、自分の国の法律を調べてみてください。
    
他にも最もアップブリードされている検索として、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?    

ヒントを見ると、解答の文字列と一緒だった。

これもヒントに解答が書いてあった

GoogleのASNでは、nginxではHypertext Transfer ProtocolとHypertext Transfer Protocol with SSLのどちらが人気がありますか?

これもヒントに解答が書いてあった

これもヒントに解答が書いてあった

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レンジを要求しているのがわかります。

f:id:akebono-haze:20220112223810p:plain

ネットワークを追加すると、ダッシュボードで確認することができます。

f:id:akebono-haze:20220112223832p:plain

「設定」をクリックすると、Shodanがネットワークに対して行う「スキャン」の種類が表示されます。

f:id:akebono-haze:20220112223911p:plain

これらのカテゴリの中で、セキュリティ上の脆弱性が検出されると、Shodanはメールで知らせてくれます。

ダッシュボードを見てみると、いくつかの項目が表示されています。

f:id:akebono-haze:20220112223940p:plain

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

光学式文字認識とリモートデスクトップを利用して、インターネット上でランサムウェアに感染したマシンを発見します。

f:id:akebono-haze:20220112225411p:plain

screenshot.label:ics

f:id:akebono-haze:20220112225519p:plain

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

f:id:akebono-haze:20220115230057j:plain

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
完了!