背景

​ 大概半年前遇到过一次DNS Zone transfer漏洞,今天利用长亭科技phith0n开源的vulhub环境来搭建了下漏洞环境,简单的跑了下实验。

​ DNS域名解析服务算是很多公司的基础服务,很多公司会对DNS服务器进行主备配置。DNS服务器分为主服务器、备份服务器和缓存服务器。Zone Transfer指的是备份服务器使用主服务器的数据来更新自己的域数据库。有些环境下DNS服务器配置不当,对于匿名client发起的请求,也会返回一个域数据库的详细信息,攻击者可能会获取到被攻击域下的所有子域名、服务器IP地址等。

​ DNS Zone Transfer关键配置关注两个点

1
2
3
4
5
options {
...
allow-transfer {any; };//通过IP或Key限制可域传送的服务器
allow-query {any;};
};

实验

​ 阿里云ECS运行docker,将环境跑起来

​ docker-compose up -d

​ 设置安全组策略:vulhub使用bind9搭建的dns服务器,环境运行后将会监听TCP和UDP的53端口。阿里云默认安全组的入口方向53端口是关闭的,这里需要配置下开放端口,否则后面dig发请求的时候无响应。

Linux下用dig命令发送dns请求来测试是否由DNS Zone Transfer漏洞

dig @your-ip www.vulhub.org 这里ip是阿里云ECS的公网IP





发送axfr类型的dns请求:dig @your-ip -t axfr vulhub.org





可以获取vulhub.org的所有子域名记录。

利用nmap script脚本也可以自动扫描获取

1
nmap --script dns-zone-transfer.nse --script-args "dns-zone-transfer.domain=vulhub.org" -Pn -p 53 your-ip




参考

https://github.com/vulhub/vulhub/tree/master/dns/dns-zone-transfer

http://vulhub.org/#/docs/

http://sunu11.com/2017/03/16/8/

http://drops.xmd5.com/static/drops/papers-64.html

后记

赞赏了24块钱支持下这个项目,phith0n这种分享精神我特别感激。phith0n的小密圈也是干活满满,安全娱乐圈里面的一股清流啊