
http://code.google.com/p/dnsmap/source/checkout のフォーク
dnsmapは2006年に初めてリリースされ、ポール・クレイグによるフィクション作品「The Thief No One Saw」(書籍「Stealing the Network - How to 0wn the Box」に収録)に触発されました。
dnsmapは主に、ペンテスターがインフラストラクチャのセキュリティ評価における情報収集/列挙フェーズで使用することを目的としています。列挙段階では、セキュリティコンサルタントは通常、対象企業のIPネットブロック、ドメイン名、電話番号などを発見します。
サブドメインのブルートフォースは、列挙段階で使用すべきもう1つのテクニックです。特に、ゾーン転送などの他のドメイン列挙テクニックが機能しない場合に有用です(ちなみに、最近ではゾーン転送が公開で許可されているケースはほとんど見かけません)。
ステルス型コンピュータ侵入技術の研究に興味がある方は、以下のWebで無料で入手できる優れた(そして楽しい)章を読むことをお勧めします:
http://www.ethicalhacker.net/content/view/45/2/
dnsmapがBacktrack 2、3、4に含まれ、コミュニティからレビューを受けたことを嬉しく思います:
http://backtrack.offensive-security.com/index.php?title=Tools http://www.networkworld.com/community/node/57543 http://forums.remote-exploit.org/tutorials-guides/12746-dnsmap-tutorial.html http://www.linuxhaxor.net/2007/07/14/backtrack-2-information-gathering-all-dnsmap/ http://www.darknet.org.uk/2009/03/dnsmap-022-released-subdomain-bruteforcing-tool/
コンパイルは簡単です:
$ make
または:
$ gcc -Wall dnsmap.c -o dnsmap
# make install
または:
# cp ./dnsmap /usr/local/bin/dnsmap
複数のターゲットドメインを一括でブルートフォースしたい場合は、付属のdnsmap-bulk.shスクリプトを使用できます。スクリプトを/usr/local/bin/にコピーすれば、任意の場所から呼び出せるようになります。例:
# cp ./dnsmap-bulk.sh /usr/local/bin/
実行権限を設定します。例:
# chmod ugo+x /usr/local/bin/dnsmap-bulk.sh
マルチスレッド非対応。この速度の問題は将来のバージョンで解決される予定です。
興味深いリモートアクセスサーバーを発見(例:https://extranet.targetdomain.com)
設定不備や未パッチのサーバーを発見(例:test.targetdomain.com)
対象組織の非自明/発見困難なネットブロックをマッピングできる新しいドメイン名を発見(レジストリ検索=whoisはあなたの友達)
ブルートフォースしたサブドメインが内部IPアドレス(RFC 1918)に解決されることがあります。これは素晴らしいことで、時には実際に最新の「A」レコードであり、ゾーン転送などとは異なり、標準的なDNS解決のみを使用してインターネットから対象組織の内部サーバーを列挙できる可能性があることを意味します。
Dynamic DNSサービスを使用して設定された組み込みデバイスを発見(例:linksys-cam.com)。この方法は、Googleハッキングテクニックでデバイスを見つける方法の代替手段です。
ブルートフォースは、dnsmapの組み込みワードリストまたはユーザー指定のワードリストを使用して実行できます。結果はCSV形式と人間が読みやすい形式で保存でき、さらなる処理が可能です。dnsmapはroot権限を必要とせず、セキュリティ上の理由からroot権限で実行すべきではありません。
使用法の構文は、パラメータなしでdnsmapを実行するだけで確認できます:
$ ./dnsmap
dnsmap 0.30 - DNS Network Mapper by pagvac (gnucitizen.org)
usage: dnsmap <target-domain> [options]
options:
-w <wordlist-file>
-r <regular-results-file>
-c <csv-results-file>
-d <delay-millisecs>
-i <ips-to-ignore> (useful if you're obtaining false positives)
Note: delay value is a maximum random value. e.g.: if you enter 1000, each DNS request
will be delayed a *maximum* of 1 second. By default, dnsmap uses a value of 10 milliseconds
of maximum delay between DNS lookups
dnsmapの組み込みワードリストを使用したサブドメインのブルートフォース:
$ ./dnsmap targetdomain.foo
ユーザー指定のワードリストを使用したサブドメインのブルートフォース:
$ ./dnsmap targetdomain.foo -w wordlist.txt
組み込みワードリストを使用し、結果を/tmp/に保存するサブドメインのブルートフォース:
$ ./dnsmap targetdomain.foo -r /tmp/
前の例ではファイル名の代わりにパスのみが指定されているため、dnsmapは現在のタイムスタンプを含む一意のファイル名を作成します。例:
/tmp/dnsmap_targetdomain_foo_2009_12_15_234953.txt
組み込みワードリストを使用し、結果を/tmp/に保存し、各リクエスト間の最大ランダム待機時間を3ミリ秒とするサブドメインのブルートフォース:
$ ./dnsmap targetdomain.foo -r /tmp/ -d 300
dnsmapがオンライン体験に干渉する場合(帯域幅を消費する場合)は、-d(ミリ秒単位の遅延)オプションを使用することを推奨します。
0.8秒の遅延、結果を通常形式とCSV形式で保存、2つのユーザー指定IPをフィルタリング、ユーザー指定のワードリストを使用したサブドメインのブルートフォース:
$ ./dnsmap targetdomain.foo -d 800 -r /tmp/ -c /tmp/ -i 10.55.206.154,10.55.24.100 -w ./wordlist_TLAs.txt
ターゲットドメインのリストを一括でブルートフォースするには、付属のbashスクリプトを使用します。例:
$ ./dnsmap-bulk.sh domains.txt /tmp/results/
http://packetstormsecurity.org/Crackers/wordlists/dictionaries/ http://www.cotse.com/tools/wordlists1.htm http://wordlist.sourceforge.net/
WS-DNS-BFX http://ws.hackaholic.org/tools/WS-DNS-BFX.tgz
DNSDigger http://www.ernw.de/download/dnsdigger.zip
Fierce Domain Scan http://ha.ckers.org/fierce/
Desperate http://www.sensepost.com/research_misc.html
DNSenum http://dnsenum.googlecode.com/files/dnsenum1.2.tar.gz
ReverseRaider http://complemento.sourceforge.net/
Knock http://knock.gianniamato.it/
-- pagvac | GNUCITIZEN.org 2010年2月