Gobuster でスキャン結果をファイルに保存する方法

Beginner
オンラインで実践に進む

はじめに

この実験では、ディレクトリおよびファイルの総当たり攻撃に広く使用されているツールである Gobuster を効果的に使用し、スキャン結果をファイルに保存する方法を学びます。スキャン結果の保存は、サイバーセキュリティにおける基本的な実践であり、詳細な分析、レポート作成、および将来の参照を可能にします。ここでは、Gobuster コマンドの構築、出力ファイルの指定、スキャンの実行、および保存された結果の整合性の検証の手順を説明します。このスキルは、Web アプリケーションセキュリティテストまたはペネトレーションテストに関わるすべての人にとって不可欠であり、貴重な発見が適切に文書化され、アクセス可能であることを保証します。

標準的な gobuster dir コマンドの構築

このステップでは、基本的な gobuster dir コマンドを構築します。gobuster dir コマンドは、ディレクトリおよびファイルの総当たり攻撃に使用されます。ターゲット URL と一般的な単語リストを指定します。

まず、~/project ディレクトリにいることを確認してください。

cd ~/project

次に、基本的な gobuster dir コマンドを構築しましょう。ターゲット URL として http://127.0.0.1:8080 を、単語リストとして /usr/share/wordlists/dirb/common.txt を使用します。

gobuster dir -u http://127.0.0.1:8080 -w /usr/share/wordlists/dirb/common.txt

このコマンドは、単語リストに記載されているディレクトリとファイルをターゲットにスキャンを開始し、結果をターミナルに直接表示します。

期待される出力(一部):

===============================================================
Gobuster v3.5
by OJ <oj@gobuster.io>
===============================================================
[+] Url:                     http://127.0.0.1:8080
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirb/common.txt
[+] Add Slash:               false
[+] Allow Timeouts:          false
[+] User Agent:              gobuster/3.5
[+] Timeout:                 10s
===============================================================
2024/01/01 12:00:00 Starting gobuster in directory enumeration mode
===============================================================
/admin.html           (Status: 200)
/secret.txt           (Status: 200)
/testdir              (Status: 200)
...

出力ファイルを指定するために -o フラグを追加する

このステップでは、スキャン結果の出力ファイルを指定できる -o フラグを含めるように gobuster コマンドを変更します。これは、後で分析するために発見事項を保存する上で非常に重要です。

出力は、~/project ディレクトリにある gobuster_results.txt という名前のファイルに保存します。

前のコマンドに -o gobuster_results.txt を追加して変更します。

gobuster dir -u http://127.0.0.1:8080 -w /usr/share/wordlists/dirb/common.txt -o gobuster_results.txt

このコマンドはスキャンを実行し、コンソールに出力するだけでなく、すべての発見事項を指定されたファイルにも書き込みます。

スキャンの実行

このステップでは、-o フラグを指定して gobuster コマンドを実行します。これにより、ディレクトリ列挙プロセスが開始され、結果が gobuster_results.txt に保存されます。

前のステップで構築したコマンドを実行します。

gobuster dir -u http://127.0.0.1:8080 -w /usr/share/wordlists/dirb/common.txt -o gobuster_results.txt

スキャンが実行され、ターミナルに一部出力が表示されることがありますが、完全な結果はファイルにリダイレクトされます。スキャンが完了するまで待ちます。単語リストのサイズによっては、数分かかる場合があります。

期待される出力(一部、ほとんどの出力はファイルに送られるため):

===============================================================
Gobuster v3.5
by OJ <oj@gobuster.io>
===============================================================
[+] Url:                     http://127.0.0.1:8080
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirb/common.txt
[+] Add Slash:               false
[+] Allow Timeouts:          false
[+] User Agent:              gobuster/3.5
[+] Timeout:                 10s
===============================================================
2024/01/01 12:00:00 Starting gobuster in directory enumeration mode
===============================================================

出力ファイルが作成されたことを確認する

このステップでは、スキャン完了後に ~/project ディレクトリに gobuster_results.txt ファイルが正常に作成されたことを確認します。

ls コマンドを使用して現在のディレクトリの内容を一覧表示し、gobuster_results.txt が存在するかどうかを確認します。

ls -l

ファイルの中に gobuster_results.txt がリストされているはずです。

期待される出力(一部):

total 8
-rw-r--r-- 1 labex labex 1234 Jan  1 12:00 gobuster_results.txt

保存された結果ファイルのコンテンツを表示する

この最終ステップでは、gobuster_results.txt ファイルのコンテンツを表示して、スキャン結果が正しく保存されたことを確認します。

cat コマンドを使用してファイルの内容を表示します。

cat gobuster_results.txt

発見されたディレクトリとファイル、およびそれらの HTTP ステータスコードが表示され、gobuster スキャンのターミナル出力で表示されるものと同様になるはずです。

期待される出力(一部):

/admin.html           (Status: 200)
/secret.txt           (Status: 200)
/testdir              (Status: 200)

これにより、gobuster スキャンの結果がファイルに正常に保存されたことが確認できます。これは、実際のシナリオでのドキュメント作成やさらなる分析において重要なステップです。

まとめ

この実験では、gobuster スキャンの結果をファイルに保存する方法を学びました。標準的な gobuster dir コマンドを構築することから始め、次に -o フラグを追加して出力ファイルを指定することで強化しました。スキャンを実行した後、出力ファイルの作成を確認し、その内容を表示して、結果が正しく保存されたことを確認しました。このスキルは、Web セキュリティ評価やペネトレーションテストにおける効果的なドキュメント作成と分析の基本となります。