DNS域传送漏洞:一场本可避免的传送数据裸奔
某天下午,某甲方公司的漏洞安全工程师老张收到一份渗透测试报告,其中一条高危漏洞写着“DNS域传送漏洞”。传送他皱眉——公司内网域名解析一直正常,漏洞这漏洞怎么来的传送?测试人员只发来一个curl命令的截图,上面赫然列着公司全部内部服务器IP、漏洞主机名,传送甚至包括尚未上线的漏洞测试环境。
这不是传送电影桥段。域传送(AXFR)本来是漏洞DNS服务器之间同步区域数据的合法机制,主服务器把整个域名解析记录推给备用服务器。传送问题在于,漏洞很多管理员在配置时,传送把“允许传送”的漏洞IP限制设成了“any”,或者干脆忘了写限制。传送于是,任何能触达DNS服务器的人,都能直接请求一份完整的域名记录副本。
攻击者拿到这份清单意味着什么?内部网络拓扑一览无余,哪些机器跑着数据库、哪些是邮件服务器、哪些连着打印机,全暴露了。更麻烦的是,有些企业把内部服务域名也放在同一区域里,比如“gitlab.internal.company.com”或“vpn-standby.corp.net”。攻击者不需要扫描端口,不需要猜子域,直接按图索骥,挑软柿子捏。
我见过一个真实案例:某金融机构的DNS服务器对外开放,域传送漏洞被利用后,攻击者发现一条指向老旧Windows Server 2003的A记录,机器名是“ERP-backup”。他们顺着这条线索发起针对性的漏洞利用,最终在内网横向移动了三个月才被察觉。事后溯源时,安全团队才意识到——最初的突破口就是这么个不起眼的配置疏漏。
修复方法其实简单得让人想笑。在BIND里,只要在zone配置中加上一句:
allow-transfer { 192.168.1.2; }; 只允许备用DNS服务器的IP来拉取数据。Windows DNS管理器里,也是在区域属性的“名称服务器”标签页里,取消勾选“允许区域传送”或明确指定IP。就这么几行配置的事,但现实中仍然有大量企业中招。根据公开数据,全球仍有数十万台DNS服务器暴露在公网上且允许任意域传送,其中不少属于政府和教育机构。
为什么这么容易修的问题,却长期存在?我观察到的原因有三:一是很多系统是多年前部署的,当时内网信任模型简单,后来暴露到公网却没跟着改;二是运维人员对DNS协议不熟,以为“域传送”只是内部同步,没意识到外部也能触发;三是安全扫描和渗透测试往往关注Web漏洞,DNS这类基础服务容易被忽略。
有意思的是,这个漏洞还有个“温和”的变种——即使禁止AXFR,如果服务器允许对某个子域进行递归查询,攻击者也能通过暴力枚举或字典猜测逐步拼出完整记录。所以,彻底的做法是同时关闭递归查询、限制域传送来源,并且把内部域名与外部域名分离到不同区域。
最后说句实在话:DNS域传送漏洞就像家里门没锁——小偷不需要撬锁工具,推门就进。检查一下你的DNS配置吧,用一条dig命令就能验证:
dig axfr @your-dns-server your-domain.com 如果返回了一大堆记录,别惊讶,你家的“门”确实开着。