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

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

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

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