当用户访问域名时浏览器解析首先会查看浏览器缓存是否有对应的ip,如果没有则会到本地host文件中查看是否有对应的ip,如果没用则会将域名发送给本地区的DNS服务器.
DNS服务器分为递归服务器,根服务器,权威服务器
首先是递归服务器拿到域名后查看缓存,如果缓存没用则向根服务器查询顶级域名服务器的ip地址。递归服务器对应的顶级域名找到并询问顶级域名服务器二级域名,顶级服务器返回二级域名对应的ip。递归服务器根据二级域名的ip找对并访问权威服务器。权威服务器返回整个域名的ip给递归服务器。
DNS还分为主服务器,备份服务器,缓存服务器(递归服务器),备份服务器会实时从主服务器获取数据已更新自己的数据以备主服务器出错不能运作时维持正常的域名解析。正常只有私有备份服务器可以获取主服务器的数据。所谓的域传送是指备份服务器从主服务器拷贝数据,并使用得到的数据更新自身数据库。域传送是在主备服务器之间同步数据库的机制
但如果由于主服务器管理人员配置不当导致主服务器允许任意客户端请求数据。
?启动vulhub中漏洞的容器
cd vulhub/dns/dns-zone-transfer/
docker-compose up -d
启动后使用kali自带DNS信息查询工具dig?
dig @192.168.200.128 vulhub.org
?利用dig的选项axfr来向指请求传送某个区域的全部记录。用于伪装成DNS服务器向主服务器发送请求
dig @192.168.200.128 -t axfr vulhub.org
?可以看到主服务器带出了全部解析信息说明该服务器存在域传输漏洞
?DNS服务器应该对能执行该操作的服务器进行严格的限制如: