【注意】このサイトに記載されていることを他人に試すことは「不正アクセス禁止法」に該当する場合があります。詳しくはこちらから

ハッカーはDNSReconでDNSのセキュリティの評価などを調査する(Kali Linuxツール説明)

ホワイトハッカーの知識座学,Kali Linux,DNS,DNSRecon

DNSの調査を行うDNSReconツールを理解するためにまとめてみました。
このDNSReconの動作確認は自分のドメインでテストを行っています。

DNSReconとは

DNSReconは、セキュリティ評価から基本的なネットワークのトラブルシューティングに至るまでを調査するツールです。

機能

  • ゾーン転送のためのすべてのNSレコードのチェックします。
  • 指定されたドメインの一般的なDNSレコード(MX、SOA、NS、A、AAAA、SPF、TXT)の列挙をします。
  • 一般的なSRVレコードの列挙をします。トップレベルドメイン(TLD)の拡張をします。
  • ワイルドカード解決のチェックをします。
  • ドメインとワードリストを指定して、サブドメインとホストのAおよびAAAAレコードをブルートフォースします。
  • 指定されたIPレンジまたは、CIDRに対するPTRレコード検索の実行を行います。
  • A、AAAA、CNAMEレコードに対するDNSサーバーのキャッシュレコードをチェックします。(チェックするテキストファイルのホストレコードのリストが必要です。)
  • ローカルネットワーク内の一般的なmDNSレコードを列挙します。Googleを使用してホストとサブドメインを列挙します。

ツールの場所

[Applications]→[01-Information Gathering]→[DNS Analysis]→[dnsrecon]

ツールと使用方法

dnsrecon.py [-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] [-t TYPE]
例 dnsrecon -d www.yahoo.co.jp

オプション(GENERAL OPTIONS)

-d DOMAIN, –domain DOMAIN

Target domain.
ターゲットドメイン

【実行イメージ】少し端折って整形しています。

┌──(root__kali)-[/home/kali]
└─# dnsrecon -d ****.com
[*] Performing General Enumeration of Domain: ****.com
[!] Wildcard resolution is enabled on this domain
[!] It is resolving to ***.***.***.***
[!] All queries will resolve to this address!!
[-] DNSSEC is not configured for ****.com
[*] SOA ns1.*******.jp ***.***.***.***
[*] SOA ns1.*******.jp ***.***.***.***
[*] SOA ns1.*******.jp ***.***.***.***
[*] NS ns3.*******.jp ***.***.***.***
Traceback (most recent call last):
File "/usr/share/dnsrecon/./dnsrecon.py", line 1691, in <module>
main()
File "/usr/share/dnsrecon/./dnsrecon.py", line 1651, in main
std_enum_records = general_enum(res, domain, xfr, bing, yandex, spf_enum, do_whois, do_crt, zonewalk)
File "/usr/share/dnsrecon/./dnsrecon.py", line 934, in general_enum
bind_ver = check_bindversion(res, ns_rcrd[2], res._res.timeout)
File "/usr/share/dnsrecon/./dnsrecon.py", line 847, in check_bindversion
print_status(f"\t Bind Version for {ns_server} {response.answer[0].items[0].strings[0]}")
KeyError: 0

-h, –help

show this help message and exit
このヘルプメッセージを表示して終了します。

-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. Filter out of brute force domain lookup, records that resolve to the wildcard defined IP address when saving records.
ブルートフォースに使用するサブドメインとホスト名の辞書ファイルを指定します。レコードを保存する際に、ワイルドカードで定義されたIPアドレスに解決するレコードを、ブルートフォースによるドメイン検索から除外します。

-f

Filter out of brute force domain lookup, records that resolve to the wildcard
defined IP address when saving records.
レコードを保存する際に、ワイルドカードで定義されたIPアドレスに解決するレコードをブルートフォースによるドメイン検索から除外します。ワイルドカードで定義された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レコードの列挙で使用するスレッドの数。

–l6ifetime LIFETIME

Time to wait for a server to response to a query.
クエリに対するサーバからの応答を待つ時間です。

–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

Enable verbose.
冗長性の確保します。

-t TYPE, –type TYPE

Type of enumeration to perform. std: SOA, NS, A, AAAA, MX and SRV. rvl: Reverse lookup of a given CIDR or IP range. brt: Brute force domains and hosts using a given dictionary. srv: SRV records. axfr: Test all NS servers for a zone transfer. bing: Perform Bing search for subdomains and hosts. yand: Perform Yandex search for subdomains and hosts. crt: Perform crt.sh search for subdomains and hosts. snoop: Perform cache snooping against all NS servers for a given domain, testing all with file containing the domains, file given with -D option. tld: Remove the TLD of given domain and test against all TLDs registered in IANA. zonewalk: Perform a DNSSEC zone walk using NSEC records.
実行する列挙のタイプ std: SOA, NS, A, AAAA, MX, SRV。
rvl:指定されたCIDRまたはIPレンジの逆引き。
brt:与えられた辞書を使って、ドメインやホストをブルートフォースします。
srv:SRVレコード axfr: ゾーン転送のためにすべてのNSサーバをテストします。
bing:サブドメインとホストのBing検索を実行します。
yand:Yandexによるサブドメインとホストの検索を実行します。
crt:crt.shによるサブドメインとホストの検索を行います。指定されたドメインのすべての NS サーバーに対してキャッシュスヌーピングを実行します。与えられたドメインのTLDを削除し、IANAに登録されているすべてのTLDに対してテストします。
zonewalk;NSECレコードを使ってDNSSECのゾーンウォークを行います。

dnsenumツールのまとめ

dnsenumツールはPythonで動作している様子です。

DNSの情報のチェックおよび情報の表示をする機能です。
ブラックハットハッカーはこれらのDNS情報を予め確認しておくのですね。