ホーム テクノロジー LINUX DNS 詳細をクエリするための 9 つの便利なホスト コマンドの例

HOST コマンドは、DNS 列挙を実行するための単純なコマンド ライン インターフェイス ユーティリティです。

セキュリティ研究や倫理的ハッキングでは、DNS 列挙はターゲットの情報収集の最初のフェーズです。これは、ネーム サーバーの詳細、IP アドレス、メール エクスチェンジャの詳細、TTL など、ドメイン ネーム サーバーからのすべての潜在的な DNS レコードを照会するプロセスです。

攻撃者は、この DNS 列挙情報を利用して内部ネットワーク レコードを調べる可能性があります。

インターネット上では、多数の DNS 調査ツールやオンライン列挙ツールが利用可能です。ただし、DNS 列挙は 1 つのコマンド ライン ユーティリティで簡単に実行できます。それが「ホスト」です。

この記事では、DNS 詳細をクエリするための便利なホスト コマンドの例をいくつか見ていきます。

始めましょう!

インストール

「HOST」コマンドは、新しくインストールされたマシンではデフォルトでは使用できない場合があります。その結果、システムに手動でインストールする必要があります。インストールのプロセスは非常に簡単です。

nslookupdighostなどの DNS 関連のコマンドはすべて「bind-utils」ライブラリに含まれています。そのためには、ターミナルに次のコマンドを入力するだけです。

 sudo apt-get install dnsutils -y

この HOST コマンドは、MAC と Linux の両方で機能します。

使用法

一般的な構文:一般的な「host」コマンドは、コマンドの全体的な構文と使用できる引数、および各引数の簡単な説明を出力します。

サンプル出力:

 ┌──(㉿kali)-[~]
└─$ host          
Usage: host [-aCdilrTvVw] [-c class] [-N ndots] [-t type] [-W time]
            [-R number] [-m flag] [-p port] hostname [server]
       -a is equivalent to -v -t ANY
       -A is like -a but omits RRSIG, NSEC, NSEC3
       -c specifies query class for non-IN data
       -C compares SOA records on authoritative nameservers
       -d is equivalent to -v
       -l lists all hosts in a domain, using AXFR
       -m set memory debugging flag (trace|record|usage)
       -N changes the number of dots allowed before root lookup is done
       -p specifies the port on the server to query
       -r disables recursive processing
       -R specifies number of retries for UDP packets
       -s a SERVFAIL response should stop query
       -t specifies the query type
       -T enables TCP/IP mode
       -U enables UDP mode
       -v enables verbose output
       -V print version number and exit
       -w specifies to wait forever for a reply
       -W specifies how long to wait for a reply
       -4 use IPv4 query transport only
       -6 use IPv6 query transport only

ドメインのIPアドレスを確認するには

特定のドメインの IP アドレスを検索するには、ホスト コマンドの後の引数としてターゲット ドメイン名を渡すだけです。

 host Target-domain

サンプル出力:

 ┌──(㉿kali)-[~]
└─$ host .com
.com has address 104.27.118.115
.com has address 104.27.119.115
.com has IPv6 address 2606:4700:20::681b:7673
.com has IPv6 address 2606:4700:20::681b:7773
.com mail is handled by 1 aspmx.l.google.com.
.com mail is handled by 5 alt1.aspmx.l.google.com.
.com mail is handled by 5 alt2.aspmx.l.google.com.
.com mail is handled by 10 alt3.aspmx.l.google.com.
.com mail is handled by 10 alt4.aspmx.l.google.com.

詳細モードを使用した包括的な検索の場合は、 -aまたは-vフラグ オプションを使用します。

サンプル出力:

 ┌──(㉿kali)-[~]
└─$ host -a .com 
Trying ".com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24690
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;.com.                 IN      ANY

;; ANSWER SECTION:
.com.          3789    IN      HINFO   "RFC8482" ""
.com.          3789    IN      RRSIG   HINFO 13 2 3789 20220307065004 20220305045004 34505 .com. HW0Lfr5HazPMaACSBHmFqs94usKUljX+kONW/8Q2jwQ1QoAO9DEMjwDX rIQKODGtGnEizj2SzBF98mC2uQr7hQ==

Received 161 bytes from 192.168.1.1#53 in 64 ms

この (-a) オプションは、すべてのドメイン レコードとゾーン情報を検索するために使用されます。ルックアップに使用されたローカル DNS サーバー アドレスも確認できます。

逆引き参照を実行するには

このコマンドは、IP アドレスの逆引き参照を実行し、ホスト名またはドメイン名を表示します。

例として、構文は次のようになります。

 host target-ip-address

サンプル出力:

 ┌──(㉿kali)-[~]
└─$ host dnsleaktest.com                                                                                  
dnsleaktest.com has address 23.239.16.110
                                                                                                              
┌──(㉿kali)-[~]
└─$ host 23.239.16.110  
110.16.239.23.in-addr.arpa domain name pointer li685-110.members.linode.com.

Web ブラウザにポインタ アドレス (li685-110.members.linode.com.) をコピーして貼り付けると、Web サイトにリダイレクトされます。

ドメインネームサーバーを見つけるには

-t オプションを使用して、ドメイン ネーム サーバーを取得します。クエリの種類を指定するために使用されます。

ここでは、特定のドメイン名のネームサーバーを検索するために -t 引数を渡しています。

NS レコードは権限のあるネームサーバーを指定します。

 host -t ns target-domain

サンプル出力:

 ┌──(㉿kali)-[~]
└─$ host -t ns .com
.com name server olga.ns.cloudflare.com.
.com name server todd.ns.cloudflare.com.

特定のドメインネームサーバーをクエリするには

特定の権限のあるドメインネーム サーバーに関する詳細をクエリするには、次のコマンドを使用します。

 host target-domain [name-server]

サンプル出力:

 ┌──(root💀kali)-[/home/]
└─# host .com  olga.ns.cloudflare.com.                                                           1 ⨯
Using domain server:
Name: olga.ns.cloudflare.com.
Address: 173.245.58.137#53
Aliases: 

.com has address 104.27.118.115
.com has address 104.27.119.115
.com has IPv6 address 2606:4700:20::681b:7773
.com has IPv6 address 2606:4700:20::681b:7673
.com mail is handled by 1 aspmx.l.google.com.
.com mail is handled by 5 alt1.aspmx.l.google.com.
.com mail is handled by 5 alt2.aspmx.l.google.com.
.com mail is handled by 10 alt3.aspmx.l.google.com.
.com mail is handled by 10 alt4.aspmx.l.google.com.

ドメイン MX レコードを検索するには

ドメインの MX ( Mail Exchanger ) レコードのリストを取得します。

 host -t MX target-domain

サンプル出力:

 ┌──(㉿kali)-[~]
└─$ host -t mx  .com
.com mail is handled by 1 aspmx.l.google.com.
.com mail is handled by 5 alt1.aspmx.l.google.com.
.com mail is handled by 5 alt2.aspmx.l.google.com.
.com mail is handled by 10 alt3.aspmx.l.google.com.
.com mail is handled by 10 alt4.aspmx.l.google.com.

このMX レコードは、電子メールをメール サーバーに送信する役割を果たします。

ドメイン TXT レコードを検索するには

ドメインのTXT (ドメイン サーバーに関する人間が判読できる情報) レコードのリストを取得します。

 host -t txt target-domain

サンプル出力:

 ┌──(㉿kali)-[~]
└─$ host -t txt .com
.com descriptive text "google-site-verification=MRSwa454qay1S6pwwixzoiZl08kfJfkhiQIslhok3-A"
.com descriptive text "google-site-verification=7QXbgb492Y5NVyWzSAgAScfUV3XIAGTKKZfdpCvcaGM"
.com descriptive text "yandex-verification: 42f25bad396e79f5"
.com descriptive text "v=spf1 include:_spf.google.com include:mailgun.org include:zcsend.net ~all"
.com descriptive text "ahrefs-site-verification_8eefbd2fe43a8728b6fd14a393e2aff77b671e41615d2c1c6fc365ec33a4d6d0"
.com descriptive text "ca3-7fbfaa573ba248ddb17a618e5b46ca01"

ドメイン SOA レコードを検索するには

ドメインの SOA (権限の開始) レコードのリストを取得するには

host -t soa target-domain

サンプル出力:

 ┌──(㉿kali)-[~]
└─$ host -t soa .com
.com has SOA record olga.ns.cloudflare.com. dns.cloudflare.com. 2271966690 10000 2400 604800 3600

以下のコマンドを使用して、特定のゾーン (DNS ネームスペースの特定の部分) のすべての権威ネームサーバーからのSOA レコードを比較します。

 host -C target-domain

サンプル出力:

 ┌──(㉿kali)-[~]
└─$ host -C .com                                                                                 2 ⨯
Nameserver 173.245.58.137:
        .com has SOA record olga.ns.cloudflare.com. dns.cloudflare.com. 2271966690 10000 2400 604800 3600

ドメインの CNAME レコードを検索するには

CNAME は正規名レコードの略です。この DNS レコードは、あるドメインを別のドメインにリダイレクトする役割を果たします。つまり、元のドメイン名をエイリアスにマップします。

ドメインの CNAME DNS レコードを確認するには、次のコマンドを使用します。

 host -t cname target-domain

サンプル出力:

 ┌──(㉿kali)-[~]
└─$ host -t cname  .com
.com has no CNAME record

ターゲットのドメイン名に CNAME レコードがある場合は、コマンドの実行後に表示されます。

ドメインの TTL 情報を確認するには

TTLはTime to liveの略です。これはドメイン ネーム サーバーの一部です。これは、DNS レコードごとに権限のあるネームサーバーによって自動的に設定されます。

簡単に言うと、TTL は、DNS サーバーがデータを更新するまでにレコードをキャッシュする時間を指します。ドメイン名の TTL 情報を確認するには、次のコマンドを使用します。

 host -v -t a target-domain

サンプル出力:

 ┌──(root💀kali)-[/home/]
└─# host -v -t a .com                                                                            1 ⨯
Trying ".com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2479
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;.com.                 IN      A

;; ANSWER SECTION:
.com.          30      IN      A       104.27.119.115
.com.          30      IN      A       104.27.118.115

Received 63 bytes from 192.168.1.1#53 in 60 ms

結論

この記事が、DNS 詳細をクエリするための有用なホスト コマンドの例を学ぶのに役立つことを願っています。

ドメイン名の DNS レコードをチェックする無料のオンライン ツールについて学ぶことにも興味があるかもしれません。

「 DNS 詳細をクエリするための 9 つの便利なホスト コマンドの例」についてわかりやすく解説!絶対に観るべきベスト2動画

DNSの仕組み徹底解説【高校情報1・情報処理技術者試験】FQDN、ドメイン、再帰問合せ
【裏の仕組み】URLやドメイン名、DNSとは何かを理解しよう【高校情報Ⅰ】4-9 URLとDNS

Share via
Copy link