查询 DNS 详细信息的 9 个有用的主机命令示例

使用 HOST 命令进行 DNS 枚举

HOST 命令是一个简洁的命令行工具,它允许用户执行 DNS 查询操作。

在安全研究和渗透测试领域,DNS 枚举是目标信息收集的关键步骤。它涉及到从域名服务器获取各种 DNS 记录,例如名称服务器信息、IP 地址、邮件交换器配置以及 TTL 值等。

攻击者可能会利用这些通过 DNS 枚举收集到的信息来探测内部网络结构。

虽然互联网上存在众多 DNS 侦察和在线枚举工具,但实际上,使用一个简单的命令行工具 host 就能轻松完成 DNS 枚举任务。

本文将详细介绍 host 命令的多个实用示例,帮助你有效地查询 DNS 信息。

让我们开始吧!

安装

在某些新安装的系统中,HOST 命令可能默认未安装。因此,可能需要手动安装。安装过程相当简单。

诸如 nslookup, dighost 等所有与 DNS 相关的命令都包含在 bind-utils 软件包中。 要安装它,只需在终端中执行以下指令:

sudo apt-get install dnsutils -y

HOST 命令在 macOS 和 Linux 系统上均可使用。

基本用法

通用的 host 命令可以打印出命令的基本语法、可用的参数及其简要说明。

例如:

┌──(techblik.com㉿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 命令后添加目标域名作为参数即可。

host 目标域名

例如:

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

使用 -a-v 标志选项可以进行更详细的查找。

例如:

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

;; QUESTION SECTION:
;techblik.com.com.                 IN      ANY

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

Received 161 bytes from 192.168.1.1#53 in 64 ms

-a 选项可以用来查找所有域名记录和区域信息。您还可以注意到用于查找的本地 DNS 服务器地址。

执行反向查找

反向查找可以根据 IP 地址查找对应的主机名或域名。

例如:

host 目标IP地址

例如:

┌──(techblik.com㉿kali)-[~]
└─$ host dnsleaktest.com
dnsleaktest.com has address 23.239.16.110

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

如果将指针地址(例如 li685-110.members.linode.com)复制粘贴到网络浏览器中,您将被重定向到相应的网站。

查找域名服务器

使用 -t 选项可以获取域名服务器信息。此选项用于指定查询类型。

在此示例中,使用 -t ns 参数查找特定域名的名称服务器。

NS 记录指定了权威名称服务器。

host -t ns 目标域名

例如:

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

查询某个域名服务器

要查询特定权威域的详细信息,可以使用以下命令:

host 目标域名 [名称服务器]

例如:

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

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

查找域 MX 记录

获取域名 MX(邮件交换器)记录列表。

host -t MX 目标域名

例如:

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

MX 记录负责将电子邮件路由到邮件服务器。

查找域 TXT 记录

获取域的 TXT 记录列表。TXT 记录包含关于域服务器的可读信息。

host -t txt 目标域名

例如:

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

查找域 SOA 记录

获取域的 SOA (Start of Authority) 记录列表。

host -t soa 目标域名

例如:

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

以下命令用于比较来自特定区域(DNS 命名空间的特定部分)的所有权威名称服务器的 SOA 记录。

host -C 目标域名

例如:

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

查找域 CNAME 记录

CNAME 代表规范名称记录。此 DNS 记录负责将一个域名重定向到另一个域名,也就是将原始域名映射到一个别名。

要查找域的 CNAME DNS 记录,请使用以下命令。

host -t cname 目标域名

例如:

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

如果目标域名有 CNAME 记录,运行命令后会显示。

查找域 TTL 信息

TTL 代表生存时间。它是域名服务器的一部分,由权威名称服务器为每个 DNS 记录自动设置。

简单来说,TTL 是指 DNS 服务器在刷新数据之前缓存记录的时间。使用以下命令查看域名的 TTL 信息。

host -v -t a 目标域名

例如:

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

;; QUESTION SECTION:
;techblik.com.com.                 IN      A

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

Received 63 bytes from 192.168.1.1#53 in 60 ms

结论

希望本文能帮助您学习如何使用 host 命令来查询 DNS 信息。

您可能还会对使用免费的在线工具来检查域名的 DNS 记录感兴趣。