DNS传送漏洞
一、漏洞
(一)定义
DNS域传送漏洞(DNS Zone Transfers),是指一台备用DNS服务器使用来自主DNS服务器的数据刷新自己的域(zone)数据库,从而避免主DNS服务器因意外故障影响到整个域名解析服务,正常情况下,该操作仅在存在备用DNS服务器时才会进行,许多DNS服务器由于配置错误,只要有客户机发出请求,就会向对方提供一个zone数据库的详细信息,这就导致了安全风险。
(二)危害
1、信息泄露:攻击者可获取某个域的所有记录,包括网络拓扑结构、服务器集中的IP地址段、数据库服务器IP地址、测试服务器IP地址、VPN服务器地址等敏感信息,使整个网络架构暴露无遗。
2、辅助攻击:通过获取的域信息,攻击者能够快速判定出特定zone的所有主机,收集域信息以选择攻击目标,找出未使用的IP地址,绕过基于网络的访问控制窃取信息,为进一步的攻击提供便利。
二、漏洞原理
DNS服务器分为主服务器、备份服务器和缓存服务器,在主备服务器之间同步数据库时,需要使用“DNS域传送”,域传送是指备份服务器从主服务器拷贝数据,并用得到的数据更新自身数据库,若DNS服务器配置不当,如未限制允许获取记录的来源,就会导致任意客户端都能通过域传送获得主服务器的数据(zone数据库信息)。
三、常见DNS记录类型
DNS记录 | 类型 | 说明 |
A | IP地址记录 | 记录一个域名对应的IP地址 |
AAAA | IPv6地址记录 | 记录一个域名对应的IPv6地址 |
CNAME | 别名记录 | 记录一个主机的别名 |
MX | 电子邮件交换记录 | 记录一个邮件域名对应的IP地址 |
NS | 域名服务器记录 | 记录该域名由哪台域名服务器解析 |
PTR | 反向记录 | 从IP地址到域名的一条记录 |
TXT | 文本记录 | 记录域名的相关文本信息 |
四、漏洞检测方法
(一)手工检测(以nslookup为例)
1、进入交互式shell:nslookup
。
2、设定查询将要使用的DNS服务器:server dns.xx.yy.zz
(将dns.xx.yy.zz
替换为实际要检测的DNS服务器地址)。
3、列出某个域中的所有域名:ls xx.yy.zz
(将xx.yy.zz
替换为要检测的域名)。
4、若提示Query Refused
等错误信息,表示该DNS服务器可能不存在域传送漏洞;若成功列出域名,则可能存在漏洞。
(二)工具检测
1、Dnsenum:在BT5等系统下可使用该工具,进入相应目录,执行命令./dnsenum.pl enum domain.com
(将domain.com
替换为要检测的域名),可获取DNS相关信息,判断是否存在域传送漏洞。
2、nmap:利用nmap漏洞检测脚本dnszonetransfer
进行检测,执行命令nmap script dnszonetransfer scriptargs dnszonetransfer.domain=xxx.edu.cn p 53 Pn dns.xxx.edu.cn
(将相关参数替换为实际值),其中script dnszonetransfer
表示加载nmap漏洞检测脚本,scriptargs dnszonetransfer.domain=xxx.edu.cn
向脚本传递参数设置要列出的域名,p 53
设置扫描53端口,Pn
设置通过Ping发现主机是否存活。
3、dig:使用命令dig @dns.xxx.edu.cn axfr xxx.edu.cn
(将相关参数替换为实际值),axfr
是qtype类型的一种,指请求传送某个区域的全部记录,若DNS服务器存在域传送漏洞,会返回所有的解析记录值。
五、漏洞修复措施
(一)Windows系统
1、打开DNS管理器。
2、使用鼠标右键单击一个DNS区域,然后单击“属性”。
3、在“区域传输”选项卡,执行以下操作之一:
要禁用区域传输,请清除“允许区域传输”复选框。
要允许区域传输,请选中“允许区域传输”复选框,若允许进行区域传输,还需执行以下操作之一:
要允许向任何服务器进行区域传输,请单击“到所有服务器”。
要只允许向“名称服务器”选项卡上列出的DNS服务器进行区域传输,请单击“只有在名称服务器选项卡中列出的服务器”。
要只允许向特定DNS服务器进行区域传输,请单击“只允许到下列服务器”,然后添加一个或多个DNS服务器的IP地址。
(二)Bind 9系统
关闭BIND9对于ls命令功能,在named.conf.options
文件中这样写:allowtransfer { none; };
,对于有slave或者特殊需要的,用ip替换none即可。
(三)Bind 8系统
可以在“named.conf”文件(缺省路径是/etc/named.conf
)中对某个域的域传输进行限制,可以只允许自己本地主机以及某个可信主机(比如辅助域名服务器)对特定域进行域传输:
zone "linux.bogus" { allowtransfer { 192.168.1.4; localhost; }; };
注意:在修改完配置文件之后,需要重新启动named。
(四)通用安全策略
1、隔离DNS服务器,专机专用。
2、隐藏BIND的版本号。
3、使用备份域名服务器。
4、Chroot bind。
5、禁止区域传送,若非必要,尽量不开启区域传送功能。
六、相关问题与解答
(一)问题
如何判断DNS服务器是否存在域传送漏洞?
(二)解答
可以使用多种方法来判断,手工检测方面,可利用nslookup
工具,按照上述手工检测步骤,若成功列出域名则可能存在漏洞,工具检测方面,可使用Dnsenum、nmap或dig等工具,例如使用nmap时,执行相应命令,若返回结果显示存在域传送相关的信息,则表明该DNS服务器可能存在域传送漏洞,但需注意,检测结果可能需要结合多种方法进行综合判断,以提高准确性。
(二)问题
为什么会出现DNS域传送漏洞?
(二)解答
DNS域传送漏洞主要是由于DNS服务器配置不当导致的,正常情况下,域传送仅应在主备服务器之间进行数据同步,但在实际操作中,很多DNS服务器被错误地配置为只要有客户机发出请求,就会向对方提供一个zone数据库的详细信息,这种错误的配置使得任意客户端都有机会获取主服务器的数据,从而引发安全风险,导致网络信息泄露等问题。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/193589.html