原理
DNS服务器分为:主服务器、备份服务器和缓存服务器。在主备服务器之间同步数据库,需要使用“DNS域传送”。域传送是指后备服务器从主服务器拷贝数据,并用得到的数据更新自身数据库。
设置方式为两种:一种设置在options配置域;一种设置在zone配置域。优先级为如果zone没有进行配置,则遵守options的设置。如果zone进行了配置,则遵守zone的设置。
漏洞成因
若DNS服务器配置不当,可能导致匿名用户获取某个域的所有记录。
默认情况配置项没有allow-transfer 项。如果直接使用默认配置文件进行配置的话(不手动添加allow-transfer项),就会存在dns 域传送漏洞。
在vulhub里进行复现
cd vulhub/dns/dns-zone-transfer
进入目录
docker-compose up -d
启动环境
使用dig命令检测,出现XFR就说明有漏洞
使用
nmap
进行扫描
nmap --script dns-zone-transfer --script-args dns-zone-transfer.domain=vulhub.org -p 53 -Pn 121.4.217.103
nmap –script dns-zone-transfer
表示加载
nmap
文件夹下的脚本文件
dns-zone-transfer.nse
,扩展名
.nse
可省略
–script-args dns-zone-transfer.domain=vulhub.org
-p 53
设置扫描
53
端口
-Pn
设置通过
Ping
发现主机是否存活
漏洞的原因就是默认情况下,对所有要求从主服务器请求拷贝数据的“备份服务器”没有进行验证,造成只要请求就返回的结果。所以解决域传送问题非常简单,只需要在相应的zone、options中添加allow-transfer限制可以进行同步的服务器就可以了,可以有两种方式:限制IP、使用key认证。
文章评论