任意のサイトのサブドメインを列挙する

ペンテスト

この記事ではサブドメインの列挙する方法を整理します。方法を紹介する前になぜやるのか、ですが、それはサブドメインを発見してターゲットの攻撃対象領域を拡大することにあります。

手法の分類

手法には大きく3つあります。1つ目はOSINT、2つ目はブルートフォース、3つ目は仮想ホストです。

  1. OSINT
  2. ブルートフォース
  3. 仮想ホスト

OSINT

OSINTを使ったサブドメインの列挙方法にいくつか種類があります。それはSSL/TLS証明書、検索エンジン、sublist3rを使った方法です。

  1. SSL/TLS証明書
  2. 検索エンジン
  3. sublist3r

SSL/TLS証明書

証明書にはCTという仕組みがあります。CTは認証局が証明書を発行する都度、全ての証明書発行の証跡を、第三者の監査ログに記載する仕組みです。

その仕組みを使ってサブドメインを列挙していきます。実際には下記のサイトを使ってドメインを検索するだけです。

crt.sh | Certificate Search
Free CT Log Certificate Search Tool from Sectigo (formerly Comodo CA)
crt.shでの検索結果

検索エンジン

この方法はgoogleの検索エンジンのオプションを使って調査していきます。

googleで site:*.tryhackme.com で検索するとサブドメインが表示されます。その他にもいくつかの検索オプションがあります。

検索オプション

sublist3r

この方法はsublist3rというツールを使って調査していきます。コマンドはこのような形になります

python sublist3r.py -d <domain>
sublist3r実行結果

ブルートフォース

dnsreconというツールを使ってサブドメインのブルとーフォースで調査していきます。

dnsrecon -t brt -d <domain>
dnsrecon実行結果

仮想ホスト

Webサーバーは、クライアントからWebサイトを要求されると、1つのサーバーから複数のWebサイトをホストできるため、サーバーはHostヘッダーからクライアントがどのWebサイトを望んでいるかを知ることができます。このHostヘッダーに変更を加え、レスポンスを監視して新しいウェブサイトを発見したかどうかを確認することで、このHostヘッダーを利用することができます。

ffuf -w <辞書リストファイル> -H "Host: <domain>" -u <url>

実行例

ffuf -w /usr/share/wordlists/SecLists/Discovery/DNS/namelist.txt -H "Host: FUZZ.acmeitsupport.thm" -u http://10.10.53.64
fuzz実行結果

コメント

タイトルとURLをコピーしました