简介
域名系统(DNS)信息收集是网络安全侦察阶段至关重要的一步。DNS 充当了互联网的电话簿,将人类可读的域名转换为 IP 地址。通过查询 DNS 记录,安全专业人员可以揭示有关目标基础设施的大量信息,包括邮件服务器、子域名和安全配置。
DNS 在侦察中之所以特别有价值,是因为它揭示的是基础设施之间的关系,而不仅仅是一个端点。单个域名可以引导你找到 Web 服务器、邮件提供商、验证令牌、别名,有时甚至能发现整个被遗忘的环境。这就是为什么 DNS 信息收集往往会极大地扩展评估范围。
在本实验中,你将学习如何使用两个强大的命令行工具 host 和 dig 来执行 DNS 侦察。我们将使用一个故意设置了漏洞的域名 zonetransfer.me,该域名由安全研究人员专门设计,用于安全地练习 DNS 查询和区域传输。你将学习如何提取基本的 IP 记录、邮件服务器详细信息、文本记录,甚至尝试进行完整的区域传输,以映射出目标的整个 DNS 足迹。
查询基础 IP 记录 (A/AAAA)
在这一步中,你将学习如何检索最基础的 DNS 记录:A 记录和 AAAA 记录。A 记录将域名映射到 IPv4 地址,而 AAAA 记录则将其映射到 IPv6 地址。找到这些 IP 地址至关重要,因为它们能告诉你目标的主 Web 服务器托管在何处。
需要提醒的是,域名和主机并不是同一个概念。域名是 DNS 中的一个标签,而 IP 地址是流量最终路由到的位置。侦察工作通常从转换这两个视图开始。
我们将首先使用 host 命令,这是一个用于执行 DNS 查询的简单工具。请确保你位于默认的工作目录 ~/project 中。
运行以下命令对目标域名执行基础查询:
host zonetransfer.me
你应该会看到类似以下的输出,显示了该域名的 IPv4 地址以及关联的邮件服务器:
zonetransfer.me has address 5.196.105.14
zonetransfer.me mail is handled by 10 alt2.aspmx.l.google.com.
zonetransfer.me mail is handled by 20 aspmx2.googlemail.com.
zonetransfer.me mail is handled by 10 alt1.aspmx.l.google.com.
zonetransfer.me mail is handled by 20 aspmx3.googlemail.com.
zonetransfer.me mail is handled by 0 aspmx.l.google.com.
zonetransfer.me mail is handled by 20 aspmx4.googlemail.com.
zonetransfer.me mail is handled by 20 aspmx5.googlemail.com.
虽然 host 非常适合快速检查,但 dig (Domain Information Groper) 命令提供了更详细的输出和灵活性。让我们使用 dig 来专门查询 A 记录。我们将使用 +short 标志来保持输出简洁,仅显示 IP 地址。
为了保存侦察数据以供后续分析,我们将把 dig 命令的输出重定向到一个名为 a_records.txt 的文本文件中。运行以下命令:
dig A zonetransfer.me +short > ~/project/a_records.txt
你可以使用 cat 命令查看刚刚创建的文件内容:
cat ~/project/a_records.txt
输出将显示目标域名的 IPv4 地址。保存你的发现是信息收集中的一个重要习惯,因为它能让你随着时间的推移建立起目标的完整画像。
5.196.105.14
查询邮件和文本记录 (MX, TXT)
在这一步中,我们将通过查询邮件交换(MX)记录和文本(TXT)记录,深入了解目标的基础设施。
MX 记录指定了代表域名接收电子邮件的邮件服务器。识别这些服务器可以揭示目标使用了哪些第三方电子邮件提供商(如 Google Workspace 或 Microsoft 365),或者它们是否托管了自己的邮件基础设施。
TXT 记录同样具有价值,因为它们通常描述了信任关系,例如哪些系统被允许发送邮件,或者哪些外部服务已针对该域名进行了验证。
让我们使用 dig 查询目标域名的 MX 记录:
dig MX zonetransfer.me +short
你将看到一个邮件服务器列表及其优先级数字(数字越小,优先级越高):
20 aspmx5.googlemail.com.
10 alt1.aspmx.l.google.com.
10 alt2.aspmx.l.google.com.
20 aspmx2.googlemail.com.
20 aspmx3.googlemail.com.
0 aspmx.l.google.com.
20 aspmx4.googlemail.com.
接下来,我们将查看 TXT 记录。管理员使用 TXT 记录向域名的 DNS 添加任意文本。在网络安全中,TXT 记录非常有价值,因为它们通常包含发件人策略框架(SPF)规则、域名密钥识别邮件(DKIM)配置以及各种站点验证令牌。这些信息可以揭示授权发送电子邮件的内部 IP 范围,或与该域名集成的第三方服务。
让我们查询 TXT 记录并将输出保存到工作目录中名为 txt_records.txt 的文件中:
dig TXT zonetransfer.me +short > ~/project/txt_records.txt
查看文件内容,看看管理员在 TXT 记录中留下了哪些信息:
cat ~/project/txt_records.txt
你可能会注意到以 v=spf1 开头的条目(定义了电子邮件发送策略)或各种验证字符串。这些信息有助于映射出目标域名与其他服务之间的信任关系。
"google-site-verification=tyP28J7JAUHA9fw2sHXMgcCC0I6XBmmoVi04VlMewxA"
发现子域名 (CNAME)
在这一步中,你将了解规范名称(CNAME)记录。CNAME 记录用于将别名映射到真实的或规范的域名。例如,www.example.com 可能是一个指向 example.com 的 CNAME。
发现子域名是扩展攻击面的关键部分。通常,组织会保护其主网站,但却忘记更新或保护那些旧的、被遗忘的子域名(如 dev.target.com 或 testing.target.com)。
让我们查询一个已知存在于我们练习目标上的特定子域名,看看 CNAME 记录是如何表现的。我们将查询 testing.zonetransfer.me 并保存结果。
运行以下命令查询 CNAME 记录并将其保存到 cname_records.txt:
dig CNAME testing.zonetransfer.me +short > ~/project/cname_records.txt
现在,检查你刚刚创建的文件:
cat ~/project/cname_records.txt
你应该会看到类似 www.zonetransfer.me. 的输出。这告诉我们 testing.zonetransfer.me 实际上只是一个完全指向另一个域名的别名。发现这些关系可以引导安全研究人员找到第三方托管服务提供商或属于目标的隐藏基础设施。
尝试 DNS 区域传输
在最后一步中,你将尝试进行 DNS 区域传输。区域传输(特别是使用 AXFR 查询类型)是 DNS 服务器用于在多个服务器之间复制 DNS 数据库的一种机制。
区域传输是合法的管理功能在访问控制薄弱时演变为安全问题的经典案例。该机制本身是正常的,但如果配置不当,允许任意外部人员请求完整数据,就会产生安全隐患。
如果 DNS 服务器配置错误,它可能会允许任何匿名用户请求区域文件的完整副本。这是一个巨大的安全漏洞,因为它能让攻击者瞬间获得该域名关联的每一个子域名、IP 地址和记录的完整映射,从而无需猜测或暴力破解子域名。
要尝试区域传输,我们首先需要知道该域名的权威名称服务器(NS)。让我们查询 NS 记录:
dig NS zonetransfer.me +short
你应该会看到列出名称服务器的输出,例如:
nsztm1.digi.ninja.
nsztm2.digi.ninja.
现在我们有了名称服务器(nsztm1.digi.ninja),我们可以使用 axfr 记录类型直接向其请求完整的区域传输。dig 的语法要求我们指定目标域名以及我们要查询的特定名称服务器(使用 @ 符号)。
运行以下命令尝试区域传输,并将海量的输出保存到 zone_transfer.txt:
dig axfr zonetransfer.me @nsztm1.digi.ninja > ~/project/zone_transfer.txt
命令完成后,使用 head 命令查看文件的前几行:
head -n 20 ~/project/zone_transfer.txt
你将看到该域名 DNS 记录的完整转储,包括隐藏的子域名、内部 IP 地址以及管理员留下的各种文本注释。在现实场景中,发现开放的区域传输是一个关键发现,它能显著加速侦察阶段。
总结
恭喜!你已成功完成了 DNS 信息收集实验。
在本实验中,你学习了如何利用 host 和 dig 命令对目标域名进行被动侦察。你探索了如何提取基础 IPv4 地址(A 记录)、识别邮件基础设施(MX 记录),以及揭示安全策略和第三方集成(TXT 记录)。你还学习了如何追踪域名别名(CNAME 记录)以发现隐藏的子域名。最后,你成功地针对配置错误的名称服务器执行了 DNS 区域传输(AXFR),展示了单个漏洞如何暴露组织整个外部网络拓扑结构。
这些技能构成了外部网络映射的基础,对于任何进行渗透测试或漏洞评估的网络安全专业人员来说都是必不可少的。



