Gobuster での基本的な VHost スキャンの実行

サイバーセキュリティBeginner
オンラインで実践に進む

はじめに

この実験では、Gobuster を使用して基本的な仮想ホスト (vhost) スキャンを実行する方法を学びます。仮想ホストは、Web サーバーが単一の IP アドレスで複数の Web サイトをホストするための一般的な方法です。これらの隠された vhost を発見することは、ペネトレーションテストやセキュリティ評価中に、追加の攻撃対象領域や機密情報を明らかにすることができます。Gobuster は、URI、DNS サブドメイン、および仮想ホスト名をブルートフォースするための強力なツールです。

仮想ホスト (VHosts) について理解する

このステップでは、仮想ホスト (vhosts) と、それが Web セキュリティにおいてなぜ重要なのかを学びます。

仮想ホストは、単一のサーバーが同じ IP アドレス上で複数のドメイン名をホストすることを可能にします。例えば、www.example.comblog.example.com は両方とも同じサーバーでホストされ、HTTP リクエストの Host ヘッダーによって区別されます。Web ブラウザがサーバーにリクエストを送信する際、アクセスしたいドメイン名を指定する Host ヘッダーが含まれます。Web サーバーは、このヘッダーを使用して、どの Web サイトを提供するべきかを判断します。

これらの仮想ホストを発見することは、セキュリティ評価において重要です。なぜなら:

  • 隠されたコンテンツ: vhost は、古いパッチが適用されていないアプリケーション、サイトの開発版、またはメインの Web サイトからリンクされていない管理インターフェースをホストしている可能性があります。
  • 攻撃対象領域の拡大: 発見された各 vhost は、SQL インジェクション、クロスサイトスクリプティング (XSS)、またはディレクトリトラバーサルなどの攻撃に対する潜在的な新しい侵入口を表します。
  • 情報漏洩: 場合によっては、vhost が内部ネットワーク構造、機密ファイル、または設定ミスを明らかにすることがあります。

Gobuster のようなツールは、ターゲットに対して一般的な vhost 名を試行し、アクティブなものを特定するプロセスを自動化できます。

ターゲットの IP アドレスまたはドメインを選択する

このステップでは、Gobuster vhost スキャンのターゲットを特定します。

この実験では、ターゲットとして localhost、具体的には http://127.0.0.1:8080 を使用します。ポート 8080 上に、複数の仮想ホストをシミュレートするシンプルな Web サーバーをセットアップしました。実際のシナリオでは、127.0.0.1:8080 をターゲットの実際の IP アドレスまたはドメイン名に置き換えます。

Web サーバーが実行されていることを確認するには、curl を使用してリクエストを送信できます。

curl http://127.0.0.1:8080

以下のような出力が表示され、サーバーがアクティブであることを示しているはずです。

This is vhost1 content.

この出力は、デフォルトの vhost (またはシンプルな Python サーバーによって最初に提供されるもの) からのものです。私たちの目標は、他の「隠された」vhost を見つけることです。

基本的な gobuster vhost コマンドを構築する

このステップでは、vhost スキャンのための基本的な gobuster コマンドの構築方法を学びます。

vhost スキャン用の gobuster コマンドは、vhost モードを使用します。vhost スキャンに不可欠なフラグは以下の通りです。

  • -u: ターゲット URL を指定します。
  • -w: vhost 名のブルートフォースに使用する単語リストを指定します。

基本的な構文は gobuster vhost -u <target_url> -w <wordlist_path> となります。

この実験では、ターゲット URL は http://127.0.0.1:8080 です。また、潜在的な仮想ホスト名を含む単語リストを /tmp/vhost_wordlist.txt に準備しました。

単語リストの内容を確認してみましょう。

cat /tmp/vhost_wordlist.txt

以下のような出力が表示されるはずです。

vhost1
vhost2
hidden_vhost
test
dev
admin

この単語リストには、見つかると予想される一般的な vhost 名と、いくつかの特定の vhost 名が含まれています。

-u および -w フラグを使用してスキャンを実行する

このステップでは、ターゲット URL と提供された単語リストを使用して gobuster vhost スキャンを実行します。

次に、ターゲット URL と単語リストのパスを gobuster コマンドに組み合わせます。

gobuster vhost -u http://127.0.0.1:8080 -w /tmp/vhost_wordlist.txt

Enter キーを押してコマンドを実行します。Gobuster は単語リストを反復処理し、各単語を Host ヘッダーとしてリクエストを送信し、検出された仮想ホストを報告します。

出力には、進行状況と成功した検出が表示されます。以下のような表示になる場合があります。

===============================================================
Gobuster v3.6
by OJ (https://github.com/OJ/gobuster)
===============================================================
[+] Url:                    http://127.0.0.1:8080
[+] Wordlist:               /tmp/vhost_wordlist.txt
[+] Threads:                10
[+] Timeout:                10s
[+] User Agent:             gobuster/3.6
===============================================================
2024/07/30 10:00:00 Starting gobuster in vhost mode
===============================================================
Found: vhost1 (Status: 200) [Size: 20]
Found: vhost2 (Status: 200) [Size: 20]
Found: hidden_vhost (Status: 200) [Size: 27]
===============================================================
2024/07/30 10:00:05 Finished
===============================================================

gobustervhost1vhost2、および hidden_vhost を正常に検出したことがわかります。

発見された仮想ホストの出力レビュー

このステップでは、gobuster スキャンの出力を分析して、発見された仮想ホストを理解します。

gobuster の出力は、発見された各仮想ホストに関する重要な情報を提供します。

  • Found:: 正常に解決された仮想ホスト名。
  • (Status: 200): サーバーから返された HTTP ステータスコード。200 OK は通常、vhost が存在し、コンテンツを正常に提供したことを示します。他のステータスコード(例:301302403404)も、サーバーの設定によっては関連性がある場合があります。
  • [Size: XX]: レスポンスボディのサイズ(バイト単位)。これは、異なる種類のコンテンツやデフォルトページを区別するのに役立つ場合があります。

前のステップの出力から、以下が表示されているはずです。

  • Found: vhost1 (Status: 200) [Size: 20]
  • Found: vhost2 (Status: 200) [Size: 20]
  • Found: hidden_vhost (Status: 200) [Size: 27]

これらのエントリは、gobuster が提供された単語リストを使用して http://127.0.0.1:8080 上で 3 つの仮想ホストを正常に特定したことを示しています。実際のシナリオでは、これらの発見された vhost をさらに調査するために、それらにアクセスする(例:curl -H "Host: vhost1" http://127.0.0.1:8080)か、他の Web セキュリティツールを使用します。

これで、基本的な vhost スキャン実験は終了です。gobuster を使用して仮想ホストを正常に特定できました。

まとめ

この実験では、Gobuster を使用して基本的な仮想ホストスキャンを実行する方法を学びました。仮想ホストの概念を理解し、ターゲットを選択し、-u (URL) および -w (単語リスト) フラグを使用して gobuster コマンドを構築し、スキャンを実行して結果を解釈しました。このスキルは、セキュリティ評価中に隠された Web アプリケーションを発見し、攻撃対象領域を拡大するための基本となります。