靶机遇漏洞系列,记录在打靶机过程中遇到的漏洞,学习其原理和利用方式。

靶机地址:​​https://www.vulnhub.com/entry/hacker-kid-101,719/​

漏洞原理

DNS协议支持使用axfr类型的记录进行区域传送,用来解决主从同步的问题。如果管理员在配置DNS服务器的时候没有限制允许获取记录的来源,将会导致DNS域传送漏洞。

靶机遇漏洞系列(一):DNS域传送漏洞_DNS


漏洞复现

1.环境搭建

使用​​vulhub​​搭建一个漏洞测试靶场。

下载好vulhub后,DNS传送漏洞在vulhub文件夹的/dns/dns-zone-transfer路径下。

在该路径下启动漏洞测试镜像。(前提:安装好docker环境)

docker-compose up -d

靶机遇漏洞系列(一):DNS域传送漏洞_DNS_02

环境运行后,将会监听TCP和UDP的53端口,DNS协议同时支持从这两个端口进行数据传输。

查看docker的IP地址

docker ps #显示在运行的容器名及容器id等信息
docker inspect [容器ID] | grep IPAddress # [容器ID]为漏洞环境所在容器,此处为f1d8b2ce3b14

靶机遇漏洞系列(一):DNS域传送漏洞_DNS_03

这里docker的IP地址为172.18.0.2

2.漏洞扫描

可以分别使用以下两种工具测试DNS域传送漏洞是否存在。

nmap

nmap --script dns-zone-transfer.nse --script-args "dns-zone-transfer.domain=vulhub.org" -Pn -p 53 your-ip

靶机遇漏洞系列(一):DNS域传送漏洞_域传送漏洞_04

dig

dig @your-ip -t axfr vulhub.org

靶机遇漏洞系列(一):DNS域传送漏洞_域传送漏洞_05

可见,我获取到了“vulhub.org”的所有子域名记录,这里存在DNS域传送漏洞。

这里补充一个DNS解析中的各种记录的意义:

A


将域名指向一个IPv4地址(例如:100.100.100.100),需要增加A记录

NS

域名解析服务器记录,如果要将子域名指定某个域名服务器来解析,需要设置NS记录

SOA

SOA叫做起始授权机构记录,NS用于标识多台域名解析服务器,SOA记录用于在众多NS记录中标记哪一台是主服务器

MX

建立电子邮箱服务,将指向邮件服务器地址,需要设置MX记录。建立邮箱时,一般会根据邮箱服务商提供的MX记录填写此记录

TXT

可任意填写,可为空。一般做一些验证记录时会使用此项,如:做SPF(反垃圾邮件)记录

3.漏洞利用

DNS域传送漏洞会造成整个网络的拓扑结构泄露给潜在的攻击者,包括一些安全性较低的内部主机,如测试服务器等。攻击者通过快速地枚举该域内的所有主机信息来筛选攻击目标,进而利用域中的安全薄弱环节进行后续的渗透攻击。

漏洞修复

区域传送是 DNS 常用的功能,为保证使用安全,应严格限制允许区域传送的主机,例如一个主 DNS 服务器应该只允许它的备用 DNS 服务器执行区域传送功能。

默认情况配置项没有allow-transfer 项。如果直接使用默认配置文件进行配置的话(不手动添加allow-transfer项),就会存在dns 域传送漏洞。

设置方式为两种:一种设置在options配置域;一种设置在zone配置域。优先级为如果zone没有进行配置,则遵守options的设置。如果zone进行了配置,则遵守zone的设置。


在相应的 zone、options 中添加 allow-transfer,对执行此操作的服务器进行限制。如:

  1、严格限制允许进行区域传送的客户端的 IP:

    allow-transfer {1.1.1.1; 2.2.2.2;}
  2、设置 TSIG key:

    allow-transfer {key "dns1-slave1"; key "dns1-slave2";}