時々行う必要があることの1つは、たとえばサイトのサブドメインを見つけることです。
example.com
- sub1で始まります。 example.com
- other.example.com
- another.example.com
これらのターゲットで偵察を実行するための追加の方法を探しています。ドメインのすべてのサブドメインのリストを取得したいと思います。
現在、次のような多くのことを行っています
- maltegoを使用して情報をクロールする
- 検索エンジンを使用してサブドメインを検索する
- サイトリンクをクロールする
- DNSレコードを調べる
- 誤って構成されたSSL証明書を調べる
- “vpn.example.com”
のようなものを推測するこれまでに見つけたものですが、今はアイデアがありません。
コメント
回答
ペンテスターとして、サイトのサブドメインを見つけることができるようになることがよくあります。そこで、私はツール SubBrute を作成しました。このツールは、自分でそう言うと非常にうまく機能します。つまり、これは他のツール(fierce2)よりも優れており、ははるかに高速で、正確で、操作が簡単です。 。このツールには、Webのスパイダーから取得した実際のサブドメインのリストが付属しています。このサブドメインリストはfierce2の16倍以上のサイズであり、サブブルートはホーム接続でこのリストを使い果たすのに約15分かかります。出力はクリーンな改行で区切られたリストであり、nmapやWebアプリケーション脆弱性スキャナーなどの他のツールの入力として簡単に使用できます。
コメント
- すごい、'チェックしてみます。 'ノック'と比べてどれだけ優れているか考えてみませんか?
- @ D3C4FFノックはくだらないです。
- すべての栄光はルークにあります。今日はライブテストでこのツールを使用しましたが、それは魅力のように機能しました。 mywebreading
- @ D3C4FFという名前の20のサブドメインのうち1つだけを見逃しました。そう、'よかったです。トリック;)
- @subbruteに関する簡単なアイデアを探し、見つかったホスト名からIPアドレスを解決(および印刷)するオプションも追加します。私はその変更を行い、特定の範囲がサブドメインであるにもかかわらず範囲外であるいくつかのテストに役立ちました。もう一度ありがとうございます!
回答
1。ゾーン転送
一部のネームサーバーでは、通常は意図せずに、インターネット上の誰にでもDNSゾーン転送を許可しています。この質問では、さらに詳しく説明します: DNSゾーン転送攻撃。
ゾーン転送用のツール
その質問に対する2番目の回答では、WindowsとLinuxの両方でテストする方法について説明しています。
Windows:
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(次のSECureレコード)。
このための回避策が設計されました:NSEC3。名前をハッシュするため、mail
はb83a88...
に変わり、pop
はb21afc...
。これらが2つのサブドメインのみであると想像すると、署名された応答は" b21afc...
と "。繰り返しますが、アルファベット順に機能し、すべてを取得できますが、今回は、サブドメインが何であるかを知る前に、各ハッシュをクラックする必要があります。
私の経験では、ほとんどの場合、NSEC3拡張機能が有効になっています。
ゾーンウォーキング用のツール
NSEC3Walker は、列挙とクラッキングの両方を行います。クラッキングの効率性を保証することはできませんが、それは間違いなくCPUベースのみです。NSEC3は(少なくとも元々は)SHA1を使用しているため、おそらくより優れたクラッキングプログラムがあります。
dnsrecon
もそれを実行できるようです:dnsrecon -z -d example.com
。情報を掲載した公式ウェブサイトがあるかどうかはわかりませんが、Debian Stretch、Buster、およびブルズアイapt install dnsrecon
できます。
3。サブネット内の逆引き参照
いくつか推測すると、同様の範囲の応答が見つかることがよくあります。 www.
が存在し、mail.
が存在し、両方が192.168.3.x
に解決されることがわかっている場合は、もっとかもしれません。 192.168.3.0-255
の範囲(/24
)内のすべてのアドレスを逆引き検索してみてください。おそらく、より多くのサブドメインが見つかります。 IPアドレスでWHOISクエリを試して、範囲の境界を見つけることもできます(独自のブロックがある場合)。
逆引き参照用のツール
dnsrecon
はこれを行うことができます:
dnsrecon -t rvl -r 192.168.1.0/24
-t rvl
は"タイプreverse-lookup "および-r
はCIDR表記のIP範囲を渡します。わかりません。情報が掲載されている公式ウェブサイトがあるが、Debian Stretch、Buster、Bullseyeでは、apt 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
も存在する可能性があります。dnsrecon
は、dnsrecon -t tld -d example.com
でもこれを行うことができます。 -
Webサイトのクロールまたは参照の検索他の場所でヒントが得られるかもしれません。 (ヘルプが必要:どのツールを使用しますか?)
-
TLS証明書を調べると、多くの場合、結果が得られます。必ずHTTPS、SMTP(S)、FTP(S)などのポートを確認し、STARTTLSを使用してください。
-
サブドメインを一覧表示できるサードパーティのツールがあります。ドメイン。彼らの方法はあまり明確ではありませんが、インターネットのクロールと履歴記録(おそらくドメイン転送はかつて可能でしたか?)はしばしばその一部です。 (助けが必要です:推奨事項はありますか?それが存在することを確認したことだけを覚えています。)
6。推測。
最後のオプションは、辞書(推奨)またはブルートフォースのいずれかによる推測です。これはワイルドカードによって難しくなりますが、多くのツールがこれを検出して解決しようとします。
推測/ブルートフォーシング用のツール
これを行うためにFierceが構築されました: https://github.com/mschwager/fierce
KaliLinuxにデフォルトでインストールされます。
/ u / rook このスレッドの別の回答で言及、彼らはこの目的のためにサブブルートを書きました: https://github.com/TheRook/subbrute
dnsrecon
はdnsrecon -t brt -d example.com
でこれを行うことができます。-f
から"レコードを保存するときにワイルドカードで定義されたIPアドレスに解決されるブルートフォースドメインルックアップレコードを除外します"(引用そのmanページ)。辞書ファイルに-D
を渡すことができます。
付録:dictイオナリー
私はまだ(推測/ブルートフォースのための)良い辞書を探していますが、ここに私が知っているいくつかがあります。このリストを完成させるのを手伝ってください!可能性でソートされている限り、大きいほど良いです。
- Fierceのリポジトリには、いくつかの辞書が含まれています: https://github.com/mschwager/fierce / tree / master / Lists
- ” Bitquark “は、最も一般的に使用されるサブドメインの分析を実行しましたその結果、次のリストが作成されました: https://github.com/bitquark/dnspop/tree/master/results 。ブログの投稿は奇妙な結果になっているようですが、私はこれらのリストの品質がわからない。
-
dnsrecon
には、単にnamelist.txt
という名前のリストが付属しています。dpkg -L dnsrecon
は、インストールされている場所を示します。アルファベット順にソートされています。 - Subbruteには、短いリストと長いリストがあります: https://github.com/TheRook/subbrute
回答
JasonHaddixが書いた非常に最近のバージョンのrecon-ngに依存する私のお気に入りのサブドメイン/ホスト名検出ツール-ここで入手可能-
https://github.com/jhaddix/domain
サブブルートはまともです、fierce -dns <domain>
うまく機能し、dnsmap <domain> -r file.txt
も有効であり、knock -wc <domain>
を嫌う理由はわかりません(ただし、ノックの他の機能は容疑者)。ただし、これらのツールはすべて、年齢を示している手法を使用しています。これらの攻撃の改善の秘訣は、ターゲット専用のホスト名を持つカスタマイズされたファイルを作成することです。
ただし、DNS検出のチェーンソーはdnsreconです。すべてを実行します。
RiskIQなど、これらのツールすべてよりもはるかに多くのことを実行できる商用製品を検討することもできます。彼らのテクニックには、ほとんどの人が思いつかないような多くの調査が含まれています。
[UPDATE]もう1つのお気に入り(主にサブドメインではなく、ホスト名の場合-OPは両方に関心がありますか?)は- https://github.com/tomsteele/blacksheepwall
回答
ノックで試してみますが、注意してください。ブラックリストに登録されるリスクがあります。
残念ながら、回避策はありません。ゾーン転送が機能しない場合のブルートフォーシング。
コメント
- このツールは低品質です。SubBruteの方がはるかに優れています。
回答
スタックオーバーフローのオーバー、PaulMeliciは提案しました WolframAlpha を使用します。(自分でのスクリーンショット)
検索ボックスにドメインを入力して、検索を実行します。 (例:
stackexchange.com
)上から3番目のセクション(「すべてのスタック交換のWeb統計」という名前)。 com “)サブドメイン
サブドメインセクションで詳細をクリックします
そこにサブドメインのリストが表示されます。すべてのサブドメインが表示されているわけではないと思いますが。
コメント
- これについては言及されています最初のコメントで
回答
http://ha.ckers.org/fierce/ 。総当たり攻撃だけでなく、辞書ファイルも使用できます。 Kaliにも含まれています。
回答
最初は、パッシブDNSデータベースを使用してサイトのサブドメインを検索することがよくあります。この方法の欠点は、データベースにリストされているサイトしか見つけられないことです。ただし、どのワードリストにもリストされていないサイトを見つけることができるという利点があります。
参照用のデータベース:
https://www.virustotal.com/en/domain/stackexchange.com/information/
回答
簡単。 wolframalphaにサイトアドレスを書いてください。そして、「サブドミン」ボタンをクリックします。
例; https://www.wolframalpha.com/input/?i=www.imdb.com
サイトのサブドメインを表示するには、[サブドメイン]をクリックします。
また、wolfram alphaには、到達して使用したい場合にapiがあります。お役に立てば幸いです…
コメント
- 失われました-Wolframの機能を説明することで、これを拡張できれば、この回答は賛成する可能性があります。
- "サブドメイン"リンクは、一部のドメインにのみ存在するようです。
usage()
で定義されている使用例がありますが)。ソースコードから判断すると、3つの主要な検索エンジン(yahoo、msn、google)からのデータを照合し、私にはメールスクレーパーのように見える不明瞭なWebサイトpgp.rediris.es
を照合します。