DNS服务器提供域名解析的基础性服务,可以细分为主服务器、备份服务器、缓存服务器,备份服务器会从主服务器中拷贝数据来更新自己的数据库,而这个同步的过程中就需要用到DNS域传送,一旦配置不当,就可能会导致任何匿名用户都可以获取DNS服务器某一域的所有记录,泄露重要信息
漏洞成因
在域传送中关键的配置项有这两个
allow-transfer {ipaddress;}; 通过ip限制可进行域传送的服务器
allow-transfer { key transfer; }; 通过key限制可进行域传送的服务器
有两种设置方式,options或是zone,默认优先级为zone 如果为空则遵循options,示例
options {
listen-on { 1.1.1.1; };
listen-on-v6 { any; };
directory "/bind";
pid-file "/bind/run/pid";
dump-file "/bind/data/named_dump.db";
statistics-file "/bind/data/named.stats";
allow-transfer { any; };
allow-query {any;};
};
zone "wooyun.org" {
type master;
file "/bind/etc/wooyun.org.conf";
allow-transfer {any;};
};
如果没有手动添加allow-transfer
来限制获取记录的来源,就会存在DNS域传送漏洞
检测方式
dig / linux
以vulhub为例,以常规的8.8.8.8作为DNS服务器进行解析,如果发送axfr的请求会failed
如果使用存在漏洞的DNS服务器进行查询,则会返回域内所有的字域、A记录和CNAME等信息
nslookup / windows&linux
正常情况:
存在漏洞的情况(linux示例):
Nmap
nmap -script dns-zone-transfer -script-args dns-zone-transfer.domain=vulhub.org -p 53 -Pn 172.27.0.2
dnsrecon
dnsrecon -d example.com
dnsenum
dnsenum example.com