web-dev-qa-db-ja.com

サイトのサブドメインを見つけるにはどうすればよいですか?

私が時々行う必要があることの1つは、たとえばサイトのサブドメインを見つけることです。

example.comで始まる

  • sub1.example.com
  • other.example.com
  • another.example.com

これらのターゲットで偵察を実行する追加の方法を探しています。ドメインのすべてのサブドメインのリストを取得したいと考えています。

私は現在、多くのことを行っています

  • maltegoを使用して情報をクロールする
  • 検索エンジンを使用してサブドメインを検索する
  • クロールサイトリンク
  • DNSレコードの調査
  • 正しく構成されていないSSL証明書の調査
  • 'vpn.example.com'などの推測

今までに見つけたものよりもたくさんあると思いますが、今はアイデアがありません。

36
NULLZ

ペンテスターとして、サイトのサブドメインを見つけることができるようになることはよくあります。それで、私がツールを書いた SubBrute 私がそう言った場合、これは非常にうまく機能する。要するに、これは他のツール(fierce2)よりも優れておりはるかに高速で、正確で、操作が簡単です。このツールには、Webスパイダーから取得した実際のサブドメインのリストが付属しています。このサブドメインリストはfierce2のサイズの16倍以上であり、サブブルートは、ホーム接続でこのリストを使い果たすのに約15分かかります。出力は、改行で区切られたきれいなリストで、nmapやWebアプリケーションの脆弱性スキャナーなどの他のツールの入力として簡単に使用できます。

30
rook

1.ゾーン転送

一部のネームサーバーは、通常は意図せずに、インターネット上の誰にでもDNSゾーン転送を許可します。この質問では、さらに説明されています: DNSゾーン転送攻撃

ゾーン転送のためのツール

その質問の2番目の回答 は、WindowsとLinuxの両方でテストする方法を示しています。

ウィンドウズ:

nslookup
> server <DNS you are querying>
> set type=any
> ls -d <target>

Unix(nslookupはUnixでは非推奨):

Dig -t axfr @<DNS you are querying> <target>

-axfrが機能していないように見えるため、Unixを編集しました。-t axfrを指定する必要がありました。)

2. DNSSECゾーンウォーク

DNSSECはDNSレコードに署名するので、正しい答えを確実に受け取ることができます(信頼できるルートと仲介者がいる場合)。しかし、何かが存在しないことをどのように証明しますか。 nonexistentsub.example.comを探すとき、example.comのネームサーバーはサブドメインが存在しないことをどのように証明しますか?署名キーはありません(署名は管理者がゾーンを更新するときに行われます)。

DNSSecはどのように機能しますか?既知の制限または問題はありますか? への回答では、 / u/tylerl について説明しています。

当然、その応答には署名が必要ですが、通常、DNSサーバー自体は署名キーにアクセスできず、応答をオンザフライで署名できません。署名はすべて事前に「オフライン」で作成されます。これにより、DNSサーバーが危険にさらされた場合にキーが公開されるのを防ぎます。

したがって、代わりに、サブドメインをアルファベット順に並べて、「mail.example.comとpop.example.comの間のすべての名前について、他のサブドメインは存在しません」と言って、そのアサーションに署名します。次に、誰かがnachos.example.comを要求すると、その応答(すでに署名されている)を与えるだけでよく、クライアントはnachos.example.comがアルファベット順にmail.example.comとpop.example.comの間にあるため、その場合、「このドメインは存在しません」という応答は正しく署名されていると見なされ、実際にはあなたからのものです。

これが問題になるのは、「XとYの間に応答が存在しないことを明示的に示すこれらの否定応答のセットを用意することで、ゾーン全体に存在するドメインを正確に簡単にマッピングできます。「X」が存在することがわかります。 、そして「Y」が存在し、それらの間に他に何もないことを知っている。ランダムに少し突っ込むだけで、存在するすべてのレコードのリストをすばやくコンパイルできます。

「pop.example.comがなくなるまで」を指定するレコードは、NSEC(Next SECure record)と呼ばれます。

回避策はこのために設計されました:NSEC3。名前がハッシュされるため、mail1d6e1c...になり、pop4f197c9...になります。それらが2つの唯一のサブドメインであると想像してください。そうすると、署名された応答は、「b21afc...b83a88...の間にレコードが存在しません」と表示します。繰り返しますが、アルファベット順に動作し、すべてを取得できますが、今回は、サブドメインが何かを知る前に、各ハッシュをクラックする必要があります。

私の経験では、ほとんどの場合NSEC3拡張機能が有効になっています。

ゾーンウォーキング用のツール

NSEC3Walker は列挙とクラッキングの両方を行います。クラッキングの効率を保証することはできませんが、それは間違いなくCPUベースのみです。 NSEC3はSHA1(少なくとも元々)を使用しているため、おそらくより良いクラッキングプログラムがあります。

dnsreconもそれを実行できるようです:dnsrecon -z -d example.com。情報が掲載された公式ウェブサイトがあるかどうかはわかりませんが、Debian Stretchではapt-get install dnsreconを使用できます。

3.サブネットの逆引き

いくつかを推測することにより、多くの場合、同様の範囲で応答が見つかります。 www.が存在し、mail.が存在することがわかっていて、どちらも192.168.3.xに解決される場合は、さらに多くの可能性があります。 192.168.3.0-255の範囲(/24)内のすべてのアドレスを逆引きしてみてください。ドメイン.example.comでさらに多くの名前が見つかります。

逆引きのためのツール

dnsreconはこれを行うことができます:

dnsrecon -t rvl -r 192.168.1.0/24

ここで、-t rvlは「タイプの逆ルックアップ」を意味し、-rはIP範囲をCIDR表記で渡します。情報が掲載された公式ウェブサイトがあるかどうかはわかりませんが、Debian Stretchではapt-get install dnsreconを使用できます。

4. DNSサービスレコード

たとえば、サービス検出用に SRV(サービス)レコード を設定できます。たとえば、_sip._tcp.example.comはポート5060のsipserver.example.comをポイントできます。サービス名( "sip 「例では)は通常、IANAに登録されている標準的なものであり、それらを反復処理できます。

SRVレコードをクエリするためのツール

dnsreconはこれを行うことができます:

dnsrecon -t srv -d example.com

マニュアルページ(man dnsrecon)で説明されているように、未知のメソッドによって選択された既存のサービス名のサブセットを取得します。

5.その他の方法

あなたはそれらのいくつかをすでに述べました。それらは非常に自明であり、ターゲット上で実行されているアプリケーション(FTPなど)に依存するか、サードパーティに依存するか、またはそれらについて言うことはほとんどないため、詳細には触れません。 。

  • 検索結果からサブドメインが明らかになる場合があります。この場合も、dnsrecon-t gooオプションを使用してこれを実行できます(具体的にはGoogleを使用します)。

  • 他のTLDで同じ名前を確認すると、他のバリアントまたはIPアドレスが明らかになる場合があります。例えば。 example.comが存在する場合、example.orgも存在する可能性があります。 dnsrecondnsrecon -t tld -d example.comでもこれを行うことができます。

  • Webサイトをクロールしたり、他の場所で参照を見つけたりすると、ヒントが得られる場合があります。 (必要なヘルプ:使用するツールは?)

  • TLS証明書を確認すると、多くの場合、結果が得られます。 HTTPS、SMTP(S)、FTP(S)などのポートを確認し、STARTTLSを使用してください。

  • ドメイン内のサブドメインを一覧表示できるサードパーティツールがあります。それらの方法はあまり明確ではありませんが、インターネットや履歴の記録(おそらくドメインの移管がかつて可能でしたか?)をクロールすることはしばしばその一部です。 (必要なヘルプ:推奨事項はありますか?私はそれが存在することだけを覚えています。)

6.推測。

最後のオプションは、辞書(私はそれをお勧めします)またはブルートフォースによる推測です。これはワイルドカードによって難しくなりますが、多くのツールがこれを検出して解決しようとします。

推測/総当たりのためのツール

Fierceはこれを行うために構築されました: https://github.com/mschwager/fierce
Kali Linuxにデフォルトでインストールされます。

/ u/rookこのスレッドの別の回答で述べられている として、彼らはこの目的のためにSubbruteを作成しました: https://github.com/TheRook/subbrute

dnsrecondnsrecon -t brt -d example.comでこれを行うことができます。 -fを使用して、「レコードを保存するときに、ワイルドカードで定義されたIPアドレスに解決されるブルートフォースドメインルックアップレコードを除外します」(そのマニュアルページを引用)。辞書ファイルに-Dを渡すことができます。

付録:辞書

私はまだ(推測/力ずくで)良い辞書を探していますが、ここに私が知っているいくつかがあります。このリストを完成させてください!可能性でソートされている限り、大きいほど良いです。

4
Luc

knock で試してみますが、注意してください。ブラックリストに登録されるリスクがあります。

残念ながら、ゾーン転送が機能しない場合、総当り攻撃を回避する方法はありません。

3
Dr.Ü

Jason Haddixが、お気に入りのサブドメイン/ホスト名検出ツールを作成しました。このツールは、最新バージョンのrecon-ngに依存しています-ここから入手できます https://github.com/jhaddix/domain

サブブルートはまともです、fierce -dns <domain> よく働く、 dnsmap <domain> -r file.txtも有効です。嫌いな理由は何もありませんknock -wc <domain>(ノックの他の機能が疑われる場合があります)。ただし、これらのツールはすべて、年齢を示している手法を使用しています。これらの攻撃改善のいくつかの秘訣は、ターゲットに特化したホスト名を含むカスタマイズされたファイルを作成することです。

ただし、DNS検出のチェーンソーはdnsreconです。それはすべてを行います。

これらすべてのツールよりもはるかに多くのことができるRiskIQなどの商用製品を検討することもできます。彼らのテクニックには、ほとんどの人が思いつかないような多くの調査が含まれています。

[更新]別のお気に入り(主にサブドメインではなくホスト名の場合-OPは両方に興味がありますか?)- https://github.com/tomsteele/blacksheepwall

3
atdre

スタックオーバーフローのオーバー 、Paul Meliciは WolframAlpha の使用を提案しました。 (自分でスクリーンショット)

  1. 検索ボックスにドメインを入力して、検索を実行します。 (例 stackexchange.com

    Wolfram - Homepage

  2. 上から3番目のセクション(「すべてのstackexchange.comのWeb統計」という名前)で、Subdomainsをクリックします。

    Wolfram - Subdomains button

  3. [サブドメイン]セクションでMoreをクリックします

    Wolfram - More subdomains button

そこでサブドメインのリストを見ることができます。私はそれがすべてのサブドメインを表示しないと思いますが。

1
Stevoisiak

http://ha.ckers.org/fierce/ をご覧ください。辞書ファイルだけでなく総当たりも可能です。カーリーにも含まれています。

0
void_in

最初は、サイトのサブドメインを見つけるためにパッシブDNSデータベースをよく使用します。この方法の欠点は、データベースにリストされているサイトしか見つけられないことです。しかし、利点は、単語リストにリストされていないサイトを見つけることができることです。

参考のためにいくつかのデータベース:

https://www.virustotal.com/en/domain/stackexchange.com/information/

http://www.nonexiste.net/?q=stackexchange.com

0