DNS :Domain Name System一个保存IP地址和域名相互映射关系的分布式数据库,重要的互联网基础设施,默认使用的TCP/UDP端口号是53
域传送 :DNS Zone Transfer
DNS服务器分为:主服务器、备份服务器和缓存服务器。域传送是指备份服务器从主服务器拷贝数据,并用得到的数据更新自身数据库。在主备服务器之间同步数据库,需要使用“DNS域传送”。
解析类型
1. A记录:域名->IP
1.1 泛解析:*.lsawebtest.top都能指向同一个IP
2. cname(别名)记录:多个名字映射到同一台计算机,如www和mail这两个别名都指向lsawebtest.top,分别提供www和mail服务。
3. NS记录:指定由哪个DNS服务器解析你的域名,如lsawebtest.top/ns2.lsawebtest.top
4. MX记录:将以该域名为结尾的电子邮件指向对应的邮件服务器以进行处理,如@lsawebtest.top结尾的邮件发到MX记录的邮件服务器上,权重小的优先。
5. TXT记录:域名的说明,可用于SPF(它向收信者表明,哪些邮件服务器是经过某个域名认可会发送邮件)和域名所有权验证。
6. AAAA记录:指向IPv6。
漏洞简介
DNS协议支持使用axfr类型的进行区域传送,用于解决主从同步的问题。如果管理员在配置DNS服务器的时候没有限制允许获取记录的来源,将会导致DNS区域传送漏洞。
环境搭建
Vulhub使用Bind9来搭建dns服务器,但不代表只有Bind9支持AXFR记录。
本环境使用vulhub进行搭建,执行以下命令完成搭建
docker-compose up -d
环境运行后,将监听TCP和UDP的53端口,DNS协议同时支持从这两个端口进行数据传输。
漏洞复现
在Linux下,我们可以使用dig命令来发送dns请求,可以通过dig @your-ip www.vulhub.org
获取域名www.vulhub.org
的A记录来找到dns服务器
发送axfr类型的dns请求:
dig @your-ip -t axfr vulhub.org
axfr指请求传送某个区域的全部记录。我们只要欺骗dns服务器发送一个axfr请求过去,如果该dns服务器上存在该漏洞,就会返回所有的解析记录值。
可以使用nmap进行扫描,获取到了vulhub.org的所有子域名
nmap --script dns-zone-transfer.nse --script-args "dns-zone-transfer.domain=vulhub.org" -Pn -p 53 your-ip
本文版权归作者和微信公众号平台共有,重在学习交流,不以任何盈利为目的,欢迎转载。
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。公众号内容中部分攻防技巧等只允许在目标授权的情况下进行使用,大部分文章来自各大安全社区,个人博客,如有侵权请立即联系公众号进行删除。若不同意以上警告信息请立即退出浏览!!!
敲敲小黑板:《刑法》第二百八十五条 【非法侵入计算机信息系统罪;非法获取计算机信息系统数据、非法控制计算机信息系统罪】违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。
原文始发于微信公众号(巢安实验室):DNS域传送漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论