文章总结: 这篇文章介绍了DNSSECNSEC遍历漏洞的原理与利用方法。NSEC记录用于提供域名不存在的密码学证明,整个区域的NSEC记录构成按字典序排列的单向链表。攻击者通过连续查询NSEC记录可完整枚举区域中所有域名,无需特殊授权。文章还提供了具体的测试验证步骤,包括查找权威服务器和查询区域顶点NSEC记录的方法。 综合评分: 85 文章分类: 漏洞分析,WEB安全
DNSSEC NSEC 遍历(Zone Walking)
原创
信安路漫漫 信安路漫漫
信安路漫漫
2026年9月15日 07:00 上海
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
前言
最近重新在看信息收集的知识,在看子域名收集的时候看到一个DNSSEC NSEC 遍历,以前没有怎么了解过该漏洞,本文记录一下这个漏洞如何去利用。
DNSSEC NSEC 遍历(Zone Walking)是 DNSSEC 设计中一个广为人知的信息泄露漏洞:攻击者可以通过连续查询 NSEC 记录,像“遍历链表”一样完整枚举一个 DNSSEC 签名区域中的所有域名。
目前该漏洞已经很少了,但还是记录一下,作为了解。
NSEC 记录:原理与遍历机制
DNSSEC 需要提供“某个域名不存在”的密码学证明,NSEC(Next Secure)记录正是为此设计的。每个 NSEC 记录包含两个关键信息:
l该记录所属的域名(owner name)
l区域规范排序中的下一个域名(Next Domain Name)
data.lab.test. 3600 IN NSEC help.lab.test. A RRSIG NSEC
上述记录表示:在 data.lab.test 和 help.lab.test 之间,不存在任何其他域名。整个区域的 NSEC 记录构成一个按字典序排列的单向链表,最后一个记录的 Next Domain Name 指回区域顶点(Zone Apex)。
遍历攻击的核心逻辑是:攻击者首先查询一个不存在的域名(如 doesnotexist.lab.test),权威服务器返回一个 NSEC 记录,其中包含“下一个存在的域名”。攻击者读取该域名,再以它为起点继续查询下一个不存在的名称,如此循环,即可在线性时间内枚举整个区域。这种技术被称为 Zone Walking,与需要区域传送(AXFR)权限的传统枚举方式不同,它不需要任何特殊授权,仅依赖标准的 DNS 查询。
通配符记录并不能阻止 NSEC 遍历。即使区域中存在通配符(如 *.example.com),通配符本身也被签名为 * 并出现在 NSEC 链中,攻击者仍然可以完成遍历
测试方式
接下来看看如何验证该遍历是否存在
- 找到权威服务器
dig +short NS example.com
假设返回:
ns1.example.com.
ns2.example.com.
后面直接向权威服务器查询,避免递归解析器缓存干扰。
- 查询区域顶点的 NSEC 记录
dig @ns1.example.com +dnssec +norecurse example.com NSEC
重点看 ANSWER SECTION:
;; ANSWER SECTION:
example.com. 3600 IN NSEC a.example.com. A NS SOA MX RRSIG NSEC DNSKEY
这表示:
l当前名字:example.com.
l下一个名字:a.example.com.
l中间没有其他名字。
如何返回了NSEC则证明存在
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:信安路漫漫 信安路漫漫 信安路漫漫《DNSSEC NSEC 遍历(Zone Walking)》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论