Gobuster で基本的な DNS サブドメインスキャンを実行する

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

はじめに

サイバーセキュリティおよびペネトレーションテストの分野において、サブドメインの発見は偵察の重要なステップです。サブドメインは、メインドメインには存在しない追加の攻撃対象領域や脆弱性を公開する可能性のある、さまざまなアプリケーション、サービス、または開発環境をホストしていることがよくあります。Gobuster は、URI(ディレクトリとファイル)、DNS サブドメイン、Amazon S3 バケット、および仮想ホスト名のブルートフォースに使用される人気のツールです。

この実験では、Gobuster を使用して基本的な DNS サブドメインスキャンを実行するプロセスを説明します。ターゲットの選択、効果的な単語リストの選択、必要なフラグを使用した Gobuster コマンドの構築、スキャンの実行、およびアクティブなサブドメインを特定するための結果の解釈方法を学びます。この実験の終わりまでに、サブドメイン列挙のために Gobuster を活用する方法についての基本的な理解を得ることができます。これは、あらゆるセキュリティ専門家または愛好家にとって不可欠なスキルです。

ターゲットドメインの選択

このステップでは、サブドメインスキャン用のターゲットドメインを選択します。教育目的のため、ターゲットとして scanme.nmap.org を使用します。このドメインは Nmap によってテスト目的で提供されており、スキャンしても安全です。

まず、Gobuster がインストールされていることを確認してください。インストールされていない場合は、apt を使用してインストールできます。

sudo apt update
sudo apt install -y gobuster

インストール後、バージョンを確認することでインストールを検証できます。

gobuster -v

以下のような出力が表示され、Gobuster がインストールされていることを示します。

gobuster v3.x

次に、ターゲットドメインを確認しましょう。scanme.nmap.org を使用します。

echo "Our target domain is: scanme.nmap.org"

このコマンドは、ターゲットドメインをターミナルに出力するだけで、選択を確認します。

サブドメイン用の単語リストを選択する

このステップでは、サブドメインスキャンに適した単語リストを選択します。単語リストは、一般的なサブドメイン名(例:wwwmaildevadmin)のリストを含むファイルです。Gobuster は、ターゲットドメインと組み合わせて単語リスト内の各名前を解決しようとします(例:www.scanme.nmap.orgmail.scanme.nmap.org)。

この実験では、ペネトレーションテストディストリビューションでよく見られる一般的な単語リストを使用するか、ダウンロードします。ここでは、DNS 列挙用の汎用リストとして優れた SecLists プロジェクトの dns.txt 単語リストを使用します。

まず、SecLists リポジトリがクローンされているか、同様の単語リストが利用可能であることを確認します。そうでない場合は、特定の単語リストをダウンロードできます。

wget -nc https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/DNS/dns.txt -P ~/project/

-nc フラグは、ファイルが既に存在する場合に wget がファイルを再ダウンロードしないことを保証します。これは、コマンドを複数回実行する場合に便利です。-P ~/project/ フラグは、ファイルを保存するディレクトリを指定します。

ダウンロード後、単語リストファイルが ~/project/ ディレクトリに存在することを確認します。

ls -l ~/project/dns.txt

以下のような出力が表示され、ファイルの存在を確認できます。

-rw-r--r-- 1 labex labex XXXX Month Day HH:MM ~/project/dns.txt

これにより、dns.txt が単語リストとして使用できる状態になったことが確認できます。

基本的な gobuster dns コマンドの構築

このステップでは、DNS サブドメインスキャンを実行するための基本的な Gobuster コマンドを構築します。Gobuster は、さまざまな種類のブルートフォースに対して異なるモードを使用します。DNS サブドメイン列挙には、dns モードを使用します。

DNS スキャンに必要なフラグは次のとおりです。

  • -d: ターゲットドメインを指定します。
  • -w: 単語リストへのパスを指定します。

したがって、基本的なコマンド構造は gobuster dns -d <target_domain> -w <wordlist_path> となります。

選択したターゲット scanme.nmap.org と単語リスト ~/project/dns.txt を使用してコマンドを組み立てましょう。

echo "The Gobuster command will be: gobuster dns -d scanme.nmap.org -w ~/project/dns.txt"

このコマンドは、実行しようとしている完全な Gobuster コマンドを出力します。ツールの効果的な使用には、実行前にコマンドを理解することが不可欠です。

-d および -w フラグを使用したスキャンの実行

このステップでは、前のステップで構築したコマンドを使用して Gobuster DNS サブドメインスキャンを実行します。これにより、ブルートフォースプロセスが開始され、Gobuster は単語リストのエントリをターゲットドメインのサブドメインとして解決しようとします。

ターミナルで次のコマンドを実行します。

gobuster dns -d scanme.nmap.org -w ~/project/dns.txt

スキャンが実行されると、Gobuster は正常に解決されたサブドメインを表示します。出力には、解決されたサブドメインとその IP アドレスが表示されます。

出力例:

===============================================================
Gobuster v3.x
===============================================================
[+] Url: scanme.nmap.org
[+] Threads: 10
[+] Wordlist: /home/labex/project/dns.txt
[+] Status codes: 200,204,301,302,307,401,403,405,500
[+] Timeout: 10s
===============================================================
2024/01/01 12:00:00 Starting gobuster in DNS mode
===============================================================
Found: www.scanme.nmap.org (XXX.XXX.XXX.XXX)
Found: test.scanme.nmap.org (XXX.XXX.XXX.XXX)
Found: mail.scanme.nmap.org (XXX.XXX.XXX.XXX)
...

スキャンは、単語リストのサイズやネットワーク条件によって時間がかかる場合があります。見つかったサブドメインの包括的なリストを取得するために、完了するまで実行させてください。

見つかったサブドメインのリストを分析する

この最終ステップでは、Gobuster スキャンの出力を分析します。出力の Found: 行は、正常に解決されたサブドメインを示しています。これらは存在するサブドメインであり、対応する DNS レコードを持っています。

前のステップからの出力を確認します。Found: で始まり、その後にサブドメインとその IP アドレスが続く行を探します。

例えば、以下のようなものが見つかるかもしれません。

  • Found: www.scanme.nmap.org (XXX.XXX.XXX.XXX)
  • Found: test.scanme.nmap.org (XXX.XXX.XXX.XXX)
  • Found: mail.scanme.nmap.org (XXX.XXX.XXX.XXX)

これらはそれぞれ、ターゲットドメインに関連する潜在的なエントリーポイントまたは興味深いアセットを表します。実際のシナリオでは、これらのサブドメインをさらに調査します。例えば、ウェブブラウザでアクセスしたり、ポートスキャンを実行したり、ウェブの脆弱性を探したりするでしょう。

出力を分析したことを確認するために、一般的なサブドメインである www を探してみましょう。

echo "Look for 'www.scanme.nmap.org' in the Gobuster output."

このステップは、偵察ツールの結果を確認することの重要性を強調しています。Gobuster からの生の出力は、その後のセキュリティ評価を導くことができる貴重な情報を提供します。

まとめ

この実験では、Gobuster を使用して基本的な DNS サブドメインスキャンを正常に実行しました。以下の方法を学びました。

  • ターゲットドメイン (scanme.nmap.org) の選択。
  • 適切な単語リスト (dns.txt) の選択とダウンロード。
  • dns モードと -d (ドメイン) および -w (単語リスト) フラグを使用した Gobuster コマンドの構築。
  • スキャンの実行と、発見されたサブドメインのリアルタイム出力の観察。
  • 結果を分析して、アクティブなサブドメインを特定し、その重要性を理解する。

この基本的なスキルは、サイバーセキュリティにおける偵察活動に不可欠であり、ターゲットの攻撃対象領域に対する理解を広げることができます。さまざまな単語リストを試したり、スレッド数 (-t) を増やしたり、カスタム DNS サーバー (--resolver) を指定したりすることで、Gobuster スキャンをさらに強化できます。