ハッカーはDNSReconでDNSのセキュリティの評価などを調査する(Kali Linuxツール説明)
DNSの調査を行うDNSReconツールを理解するためにまとめてみました。
このDNSReconの動作確認は自分のドメインでテストを行っています。
※version: 1.1.3に変わり、内容を修正しました。
DNSReconとは
DNSReconは、セキュリティ評価から基本的なネットワークのトラブルシューティングに至るまでを調査するツールです。
機能
- ゾーン転送のすべての NS レコードを確認します。
- 特定のドメイン (MX、SOA、NS、A、AAAA、SPF、および TXT) の一般的な DNS レコードを列挙します。
- 共通の SRV レコード列挙を実行します。
- トップレベルドメイン(TLD)の拡張。
- ワイルドカードの解決を確認します。
- ブルート フォース サブドメインとホスト A および AAAA レコードには、ドメインとワードリストが指定されます。
- 特定の IP 範囲または CIDR の PTR レコード検索を実行します。
- DNS サーバーのキャッシュされた A、AAAA、CNAME レコードを確認する
- Records は、チェックするホスト レコードのリストをテキスト ファイルで提供します。
- Google を使用してホストとサブドメインを列挙する。
ツールの場所
[Applications]→[01-Information Gathering]→[DNS Analysis]→[dnsrecon]
ツールと使用方法と実行例
dnsrecon [-h] [-d DOMAIN] [-n NS_SERVER] [-r RANGE] [-D DICTIONARY] [-f] [-a] [-s] [-b] [-y] [-k] [-w] [-z] [–threads THREADS] [–lifetime LIFETIME] [–tcp] [–db DB] [-x XML] [-c CSV] [-j JSON] [–iw] [–disable_check_recursion] [–disable_check_bindversion] [-V] [-v] [-t TYPE]
例 dnsrecon -d www.yahoo.co.jp
実行例
※対象のサーバーは、私のテストサーバーを利用しています。
┌──(kali㉿kali)-[~]
└─$ dnsrecon -d livaspacenter.com
[*] std: Performing General Enumeration against: livaspacenter.com...
[!] Wildcard resolution is enabled on this domain
[!] It is resolving to 183.90.241.130
[!] All queries will resolve to this list of addresses!!
[-] DNSSEC is not configured for livaspacenter.com
[*] SOA ns1.xserver.jp 202.226.36.246
[*] SOA ns1.xserver.jp 202.226.36.170
[*] SOA ns1.xserver.jp 202.226.36.164
[*] NS ns5.xserver.jp 157.112.182.218
[*] Bind Version for 157.112.182.218 buildbot@72b8c7ccebcc)"
[*] NS ns5.xserver.jp 202.226.37.247
[*] Bind Version for 202.226.37.247 buildbot@72b8c7ccebcc)"
[*] NS ns5.xserver.jp 157.112.182.220
[*] Bind Version for 157.112.182.220 buildbot@72b8c7ccebcc)"
[*] NS ns3.xserver.jp 202.226.36.247
[*] Bind Version for 202.226.36.247 buildbot@72b8c7ccebcc)"
[*] NS ns2.xserver.jp 35.72.43.26
[*] Bind Version for 35.72.43.26 buildbot@72b8c7ccebcc)"
[*] NS ns1.xserver.jp 202.226.36.164
[*] Bind Version for 202.226.36.164 buildbot@72b8c7ccebcc)"
[*] NS ns1.xserver.jp 202.226.36.246
[*] Bind Version for 202.226.36.246 buildbot@72b8c7ccebcc)"
[*] NS ns1.xserver.jp 202.226.36.170
[*] Bind Version for 202.226.36.170 buildbot@72b8c7ccebcc)"
[*] NS ns4.xserver.jp 183.90.224.230
[*] Bind Version for 183.90.224.230 buildbot@72b8c7ccebcc)"
[*] NS ns4.xserver.jp 202.226.39.247
[*] Bind Version for 202.226.39.247 buildbot@72b8c7ccebcc)"
[*] NS ns4.xserver.jp 183.90.224.226
[*] Bind Version for 183.90.224.226 buildbot@72b8c7ccebcc)"
[*] MX livaspacenter.com 183.90.241.130
[*] A livaspacenter.com 183.90.241.130
[*] TXT livaspacenter.com v=spf1 +a:sv7609.xserver.jp +a:livaspacenter.com +mx include:spf.sender.xserver.jp ~all
[*] Enumerating SRV Records
[+] 0 Records Found
オプション(GENERAL OPTIONS)
-h, –help
show this help message and exit
このヘルプメッセージを表示して終了します。
-d DOMAIN, –domain DOMAIN
Target domain.
対象のドメイン
-n NS_SERVER, –name_server NS_SERVER
Domain server to use. If none is given, the SOA of the target will be used. Multiple servers can be specified using a comma separated list.
使用するドメイン・サーバー。何も指定しない場合、ターゲットのSOAが使用されます。カンマ区切りで複数のサーバーを指定することができます。
-r RANGE, –range RANGE
IP range for reverse lookup brute force in formats (first-last) or in(range/bitmask).
ブルートフォースによる逆引きのためのIP範囲を指定します。(first-last)またはin(range/bitmask)の形式で指定します。
-D DICTIONARY, –dictionary DICTIONARY
Dictionary file of subdomain and hostnames to use for brute force.
ブルートフォースに使用するサブドメインとホストネームの辞書ファイル。
-f
Filter out of brute force domain lookup, records that resolve to the wildcard defined IP address when saving records.
レコード保存時に、ワイルドカードで定義されたIPアドレスに解決するレコードを、ブルートフォースドメインルックアップから除外する。
-a
Perform AXFR with standard enumeration.
標準的な列挙でAXFRを行います。
-s
Perform a reverse lookup of IPv4 ranges in the SPF record with standard enumeration.
SPFレコード内のIPv4レンジの逆引きを、標準的な列挙方法で行います。
-b
Perform Bing enumeration with standard enumeration.
標準的な列挙方法でBing enumerationを行います。
-y
Perform Yandex enumeration with standard enumeration.
標準的な列挙方法でYandex enumeratioを行います。
-k
Perform crt.sh enumeration with standard enumeration.
標準的な列挙方法でcrt.sh enumerationを行います。
-w
Perform deep whois record analysis and reverse lookup of IP ranges found through Whois when doing a standard enumeration.
標準的な列挙を行う際に、Whoisを通じて検出されたIPレンジの詳細なWhoisレコード分析と逆引きを行います。
-z
Performs a DNSSEC zone walk with standard enumeration.
標準的な列挙方法でDNSSECゾーンウォークを行います。
–threads THREADS
Number of threads to use in reverse lookups, forward lookups, brute force and RV record enumeration.
逆引き、順引き、ブルートフォース、RVレコードの列挙で使用するスレッドの数。
–lifetime LIFETIME
Time to wait for a server to respond to a query. default is 3.0
サーバーがクエリに応答するまでの待ち時間。デフォルトは 3.0
–tcp
Use TCP protocol to make queries.
問い合わせにはTCPプロトコルを使用します。
–db DB
SQLite 3 file to save found records.
見つかったレコードを保存するSQLite3ファイル。
-x XML, –xml XML
XML file to save found records.
見つかったレコードを保存するためのXMLファイル。
-c CSV, –csv CSV
Save output to a comma separated value file.
出力をカンマ区切りの値のcsvファイルに保存します。
-j JSON, –json JSON
save output to a JSON file.
出力をJSONファイルに保存します。
–iw
Continue brute forcing a domain even if a wildcard records are discovered.
ワイルドカードのレコードが見つかっても、ドメインのブルートフォースを続けます。
–disable_check_recursion
Disables check for recursion on name servers.
ネームサーバーの再帰性のチェックを無効にします。
–disable_check_bindversion
Disables check for BIND version on name servers.
ネームサーバーのBINDバージョンのチェックを無効にします。
-V, –version
Show DNSrecon version.
DNSreconのバージョンを表示する。
-v, –verbose
Enable verbose.
冗長性の確保します。
-t TYPE, –type TYPE
Type of enumeration to perform.
実行する列挙の種類。
以下は、可能なタイプです。
std:
SOA, NS, A, AAAA, MX and SRV.
SOA、NS、A、AAAA、MXおよびSRV。
rvl:
Reverse lookup of a given CIDR or IP range.
指定されたCIDRまたはIPレンジの逆引き。
brt:
Brute force domains and hosts using a given dictionary.
srv: SRV records.
与えられた辞書を使って、ドメインとホストをブルートフォースする。srv SRVレコード。
axfr:
Test all NS servers for a zone transfer.
すべてのNSサーバーでゾーン転送のテストを行う。
bing:
Perform Bing search for subdomains and hosts.
サブドメインとホストのBing検索を実行する。
yand:
Perform Yandex search for subdomains and hosts.
サブドメインとホストのYandex検索を実行する。
crt:
Perform crt.sh search for subdomains and hosts.
crt.shでサブドメインとホストの検索を実行する。
snoop:
Perform cache snooping against all NS servers for a given domain, testing
all with file containing the domains, file given with -D option.
与えられたドメインのすべてのNSサーバーに対してキャッシュ・スヌーピングを実行します。
Dオプションで指定されたドメインを含むファイルを使用して、すべてのNSサーバーに対してキャッシュスヌープを実行します。
tld:
Remove the TLD of given domain and test against all TLDs registered in IANA.
指定されたドメインのTLDを削除し、IANAに登録されているすべてのTLDとテストします。
zonewalk:
Perform a DNSSEC zone walk using NSEC records.
NSECレコードを使用したDNSSECゾーンウォークを実行する。
DNSReconツールのまとめ
DNSReconツールはPythonで動作している様子です。
DNSの情報のチェックおよび情報の表示をする機能です。
ブラックハットハッカーはこれらのDNS情報を予め確認しておくのですね。