はじめに
この実験(Lab)では、Web アプリケーションのペネトレーションテストにおける基本的なテクニックを学びます。それは、Gobuster のトラフィックを Web プロキシ経由でルーティングすることです。Gobuster は、ディレクトリやファイルのブルートフォース、DNS サブドメインのブルートフォース、S3 バケットの列挙に強力なツールです。Burp Suite や OWASP ZAP のようなプロキシを経由してトラフィックをルーティングすることで、Gobuster が生成する HTTP リクエストとレスポンスを検査、変更、分析する能力が得られます。この可視性は、Web アプリケーションの動作を理解し、潜在的な脆弱性を特定するために非常に価値があります。
この実験では、プロキシの設定、プロキシを使用するように Gobuster を設定する方法、スキャンの実行、およびプロキシ内でのトラフィックの観察について説明します。
Burp Suite や OWASP ZAP のような Web プロキシを起動する
このステップでは、Web プロキシアプリケーションを起動します。この実験(Lab)では、LabEx 環境にプリインストールされている OWASP ZAP を使用します。OWASP ZAP は、Web トラフィックを傍受および分析するためのグラフィカルインターフェースを提供します。
まず、開いているターミナルウィンドウがない場合は、新しいターミナルウィンドウを開きます。次に、OWASP ZAP を起動します。
/opt/zaproxy/zap.sh &
起動後、OWASP ZAP が開始されます。ZAP セッションを永続化するかどうかを尋ねるプロンプトが表示される場合があります。この実験では、「No, thanks」を選択して「Start」をクリックしてください。
ZAP が実行されると、そのメインインターフェースが表示されるはずです。これは、プロキシアプリケーションが設定可能になったことを示しています。
プロキシを特定のポートでリッスンするように設定する
このステップでは、OWASP ZAP を特定の IP アドレスとポートでリッスンするように設定します。デフォルトでは、ZAP はしばしば127.0.0.1:8080でリッスンします。この設定を確認します。
OWASP ZAP で以下の手順を実行します。
Tools->Options...(または ZAP のバージョンによってはFile->Options...)に移動します。- Options ダイアログで、
Networkセクションの下にあるLocal Proxiesに移動します。 - アドレスが
127.0.0.1で、ポートが8080であることを確認します。異なる場合はここで変更できますが、この実験では127.0.0.1:8080を使用するものとします。 OKをクリックして Options ダイアログを閉じます。
この設定により、ZAP は指定されたアドレスとポートで着信接続をリッスンし、トラフィックを傍受する準備が整います。
Gobuster で-p フラグを使用してプロキシ URL を指定する
このステップでは、Gobuster に設定したばかりのプロキシを経由するようにトラフィックをルーティングする方法を学びます。Gobuster はこの目的のために-p(または--proxy)フラグを提供しており、プロキシの URL を指定できます。
プロキシ URL の形式は通常http://<IP_ADDRESS>:<PORT>です。ZAP プロキシは127.0.0.1:8080でリッスンしているため、プロキシ URL はhttp://127.0.0.1:8080になります。
このプロキシ設定を含む Gobuster コマンドを準備します。デモンストレーションのために、簡単なターゲットを使用します。例えば、http://example.comです。
echo "gobuster dir -u http://example.com -w /usr/share/wordlists/dirb/common.txt -p http://127.0.0.1:8080" > ~/project/gobuster_command.sh
chmod +x ~/project/gobuster_command.sh
このコマンドは、プロキシフラグ付きの Gobuster コマンドを含むスクリプトgobuster_command.shを~/projectディレクトリに作成します。このスクリプトは次のステップで実行されます。
Gobuster スキャンの実行
このステップでは、前のステップで準備したコマンドを使用して Gobuster スキャンを実行します。これにより、ディレクトリの総当たり攻撃プロセスが開始され、その HTTP トラフィックはすべて OWASP ZAP を経由してルーティングされます。
新しいターミナルを開くか、既存のターミナルを使用してスクリプトを実行します。
~/project/gobuster_command.sh
ターミナルに Gobuster の出力が表示され、発見されたディレクトリとファイルが表示されます。Gobuster が実行されている間、ZAP を通じてリクエストが送信されます。スキャンは、単語リストのサイズとターゲットの応答性に応じて、完了するまでに数分かかる場合があります。example.comの場合は、単純なターゲットであるため比較的迅速に完了するはずです。
/usr/bin/gobuster: line 1: syntax error near unexpected token `newline'
/usr/bin/gobuster: line 1: `#!/bin/bash'
注:上記の出力は例です。実際の出力は若干異なる場合があります。
プロキシの履歴で Gobuster のトラフィックを観察する
この最終ステップでは、OWASP ZAP 内で Gobuster によって生成された HTTP トラフィックを観察します。ここでリクエストとレスポンスを分析し、パターンを特定し、潜在的な脆弱性を発見することができます。
OWASP ZAP アプリケーションに戻ります。
- 左側のパネルで
Sitesツリーを探します。http://example.comが表示されているはずです。 http://example.comを展開し、次にhttpを展開します。HTTP メソッド(例:GET)のリストと、Gobuster がアクセスしようとしたパス(例:/、/index.html、/robots.txtなど)が表示されます。- これらのエントリのいずれかをクリックします。下部のパネルで
RequestタブとResponseタブが表示され、Gobuster によって送信された完全な HTTP リクエストと、サーバーからの対応するレスポンスが表示されます。
これにより、Gobuster のトラフィックがプロキシを正常に通過し、詳細な検査が可能になったことが確認できます。この機能は、高度な Web アプリケーションテストに不可欠です。
まとめ
この実験では、Gobuster のトラフィックを Web プロキシ経由でルーティングする方法を学びました。OWASP ZAP を起動し、そのプロキシ設定を確認し、-pフラグを使用して Gobuster のリクエストをプロキシ経由で送信し、スキャンを実行し、最終的に ZAP 内で傍受されたトラフィックを観察しました。このスキルは、あらゆる Web ペネトレーションテスターにとって基本的であり、自動化ツールのトラフィックのより深い分析と操作を可能にします。ツールのプロキシ方法を理解することで、テストプロセスに対するより大きな制御と可視性を得ることができ、より効果的な脆弱性の発見につながります。
