ハッカーは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情報を予め確認しておくのですね。