dnstracer

Kalilinux
この記事は約4分で読めます。

指定したドメインのDNS情報をルートサーバーから順に辿り、どのDNSサーバーが最終的な回答(Authoritative Answer)を返しているかを追跡するツールです。

最寄りの(或いは任意の)DNSリゾルバ(=キャッシュサーバ)から問い合わせを始めて、ターゲットの属するドメインの権威DNSサーバーを特定します。(DNSリゾルバと権威DNSサーバーの違いはこのあたりを参照。)

DNSの委任関係や、キャッシュサーバーではなく「正解を持つサーバー」の状態を確認する際に非常に役立ちます。(DNSポイズニングなどのキャッシュサーバーを騙す攻撃を受けた可能性がある時など)

dig +trace‘  に似ていますが、よりシンプルに“流れを追う”ことに特化しています。

基本構文

デフォルトでは権威DNSサーバーに ‘A’ レコード(IPアドレスの情報)を問い合わせます。

dnstracer

上記では3つの権威DNSサーバー( ns-a1.conoha.io, ns-a2.conoha.io, ns-a3.conoha.io )から、ターゲットのIPアドレスを取得しています。

その上流のDNSサーバー(b.gtld-servers.netなど)から枝分かれして表示されています。

上流サーバーは非常に多数あるので一部省略しています。(多数ある理由は冗長化されているためです。)

ターゲットを管轄する権威DNSサーバーは、上記3つであることが分かります。これを探り当てるのがこのツールの主な機能です。

オプション

主なオプション意味
-r <数字>問い合わせ回数の指定(デフォルトは3回)
-s <サーバ名>問い合わせを開始するサーバの指定(デフォルトはローカル)
-t <数字>問い合わせの待ち時間
-v詳細出力
-o最後に概要(Overview)を表示
-4IPv4のみ問い合わせ(IPv6は問い合わせない

‘-v’ オプション

詳細を表示するオプション

-v1
-v2
-v3

主な項目の解説は下記の通り。

‘-v’ オプション詳細表示の解説

DNS HEADER

状態を表します。

Identifier

問い合わせID(対応付け用)

Flags
フラグ意味備考
Q問合せQuery
R応答Responce
RA再帰応答リゾルバ
AA権威応答権威DNS
TC応答の途中切れ異常
RD再帰問合せ全部の解決を要求
  • AAあり → 権威DNS(重要:最終到達点)
  • RAあり → リゾルバ
Return code

異常の場合、その種類が分かります。

意味
0正常
2SERVFAIL
3NXDOMAIN
5REFUSED

Question Section

問い合わせ項目

Type:A  → IPアドレスを問い合わせた。

Answer Section

最終回答を表示

Authority Section

次に問い合わせるべきDNSを表示

Additional Section

行き先NSのIPを表示します( = glueレコード:ドメイン名とIPの両方を表示することにより名前解決のループを防ぐ)

以上を繰り返し問い合わせています。

‘-o’ オプション

一番最後に下のようチャートが付きます。

権威サーバー  ターゲットドメイン → IP回答 の順に表示されています。

-o

権威サーバーが3つ ✖️ (IPv4 と IPv6)の2つで、計6つの回答が表示されています。

‘-s’ オプション

問い合わせを開始するサーバー(リゾルバ)を指定する場合。

-s

短期間での同一IPからの同一オープンリゾルバへの、同一ドメインの繰り返しの問い合わせは、リゾルバ側に弾かれてアク禁になったりします。
オープンリゾルバは多数あります。優秀なオープンリゾルバの見つけ方はこちら

出力の解釈について

以下の項目を検証していきます。

DNS設定ミスの調査

DNSSEC確認

まとめ

‘dnstracer’ は、ターゲットのドメインを管理する権威DNSサーバーを特定することに特化したツールです。

‘dnstracer’ はDNSの「経路」を可視化することにより

を明確にします。

参考1) コマンド ‘dig +trace’ との違い

項目dnstracerdig +trace
可読性高い(シンプル)やや冗長
詳細度
自動追跡
教育用途

参考2) ヘルプ

kali ー 01-Reconnaissance ー Network Information:DNS ー dnstracer

dnstracer help
-h

コメント

タイトルとURLをコピーしました