网络安全——DNS域传送漏洞

原理

DNS服务器分为:主服务器、备份服务器和缓存服务器。在主备服务器之间同步数据库,需要使用“DNS域传送”。域传送是指后备服务器从主服务器拷贝数据,并用得到的数据更新自身数据库。

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

漏洞成因

若DNS服务器配置不当,可能导致匿名用户获取某个域的所有记录。

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

综合渗透测试-DNS域传送漏洞

第一步,打开网络拓扑,启动实验虚拟机,分别查看虚拟机IP地址:

Kali Linux

CentOS Linux

 

第二步,进入靶机服务器CentOS Linux,启动靶机服务:

cd dns

ls

./start.sh

第三步,进入攻击机Kali Linux,使用Nmap扫描工具扫描目标靶机服务器:

nmap -sV -A 172.16.1.200(靶机IP地址)

根据扫描结果可以分析目标靶机服务器开放了53号端口,使用的DNS服务软件是BIND9。

BIND软件系列默认安装完毕后配置项没有allow-transfer项,直接使用默认配置文件进行配置,就会存在DNS域传送漏洞。

第四步,切换至渗透机Kali Linux,使用dig网络工具:

使用dig @172.16.1.200 www.vulhub.orgHYPERLINK "http://www.vulhub.org命令来从指定的dns服务器192.168.10.168/"命令来从指定的DNSHYPERLINK "http://www.vulhub.org命令来从指定的dns服务器192.168.10.168/"DNS服务器172.16.1.200HYPERLINK "http://www.vulhub.org命令来从指定的dns服务器192.168.10.168/"服务器服务器来查询www.vulhub.org域名在目标服务器上的A记录。

dig @172.16.1.200(靶机IP地址) www.vulhub.org

根据返回结果,分析得出www.vulhub.org网站的IP地址是10.1.1.1,并且他的域名记录是由ns1.vulhub.org和ns2.vulhub.org这两个域名服务器进行记录的。

ns1.vulhub.org这个域名服务器的IP地址是10.0.0.1; ns2.vulhub.org这个域名服务器的IP地址是10.0.0.2。

第五步,发送axfr类型的DNS请求,获取到vulhub.org的所有子域名记录:

dig @172.16.1.200 -t axfr vulhub.org

分析返回结果,admin.vulhub.org网站的IP地址是10.1.1.4,cdn.vulhub.org网站的IP地址是10.1.1.3,git.vulhub.org网站的IP地址是10.1.1.4,和admin.vulhub.org是同一个服务器,wap.vulhub.org和static.vulhub.org的别名是www.vulhub.org等,由此可见DNS域传送漏洞有很严重的危害性。

第六步,使用Nmap加载dns-zone扫描模块来扫描靶机DNS服务。

1)进入攻击机Kali Linux,打开一个终端,使用ls –l /usr/share/nmap/scripts/ | grep dns-zone命令查看是否存在dns-zone域传送漏洞扫描模块

.nse脚本是由Lua语言编写的。

2)使用--script参数指定脚本名称,Nmap会自动去默认脚本目录去寻找,使用--script-args参数提供必要的参数,其中使用dns-zone-transfer.domain=vulhub.org指定了域名是vulhub.org,使用-p指定了53端口:

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

分析扫描结果,Nmap获取到vulhub.org域名的所有子域名记录。

第七步,修复加固DNS靶机服务器的常见方式:

恶意用户可以通过DNS域传送获取被攻击域下所有的子域名,会导致一些非公开域名泄露,比如测试域名、内部域名。而泄露类似的内部域名,其安全性相对较低,更容易遭受攻击者的攻击,比较典型的譬如内部的测试机往往就会缺乏必要的安全设置,所以我们接下里将学习两种加固方式。

其中限制IP加固是现在最常用的加固方式,因为简单高效,所以使用范围很广,而Key的认证加固使用过程复杂而且还需要备份服务器的同步配置,所以使用范围很少见,只有在一些极端的特殊场合才会使用到。

第八步,使用限制IP的方式对DNS服务器进行修复加固:

这种加固方式是最常见的使用范围最广的加固方式,所以必须重点掌握。

1)进入靶机服务器CentOS Linux,使用docker ps命令查看靶机容器ID:

docker ps

2)使用docker exec –it [容器id,填写前两位即可] /bin/bash进入靶机容器

3)进入BIND9的主要配置文件目录,找到named.conf配置文件:

cd /etc/bind

ls

4)编辑named.conf.options配置文件:

vim named.conf.options

插入代码allow-transfer{127.0.0.1;};

表示只允许本地进行数据同步。

使用/etc/init.d/bind9 restart命令重启BIND9服务

第九步,进入攻击机Kali Linux,使用dig命令发送请求:

1)使用dig命令发送DNS请求,获取域名www.vulhub.org在DNS服务器上的A记录:

dig @172.16.1.200 www.vulhub.org

2)发送axfr类型的DNS请求,此时已经获取不到vulhub.org的所有子域名记录,DNS域传送漏洞被修复:

dig @172.16.1.200 -t axfr www.vulhub.org

第十步,使用Key认证加固的方式修复加固主DNS服务器:

1)切换至CentOS Linux中的Docker主机,使用cd /tmp命令进入tmp目录,使用ls命令查看当前文件为空,使用dnssec-keygen密钥生成工具,指定加密算法为HMAC-MD5强制实现,指定密钥的长度为128位,指定密钥的所有者类型位HOST主机类型,密钥的名称为testkey。

再次使用ls命令发现已经生成了Ktestkey.+157+42462.key和Ktestkey.+157+42462.private两个文件,其中Ktestkey.+157+42462.key为公钥文件,Ktestkey.+157+42462.private为私钥文件:

cd /tmp

ls

dnssec-keygen -a HMAC-MD5 -b 128 -n HOST testkey

ls

2)使用cat Ktestkey.+157+08702.private命令打开私钥文件,找到其中的Key值并复制:

cat Ktestkey.+157+[你的文件名].private

3)使用vim /etc/testkey命令新建并打开testkey文件,将生成的key复制到secret文件中,其中hmac-md5为最开始生成的密钥时所指定的加密算法,所以必须保持一致。

vim /etc/testkey

输入内容:

key "testkey" {

algorithm hmac-md5;

secret "+ChafZ0nlDSMwXgjJABveQ==";

}

第十一步,重新配置BIND9的配置文件:

1)使用cd /etc/bind命令进入bind程序的配置主目录,使用ls命令查看当前目录下的所有文件:

cd /etc/bind

2)使用vim named.conf命令打开named.conf文件,添加一条 include “/etc/testkey”这语句,表示将刚才新建并保存的testkey文件包含到了当前的配置文件中:

vim named.conf

插入一行:

include "/etc/testkey";

3)使用vim named.conf.options命令打开named.conf.options文件,修改allow-transfer{127.0.0.1;};为allow-transfer{key testkey;};并且添加notify yes到文件中,然后保存退出:

vim named.conf.options

编辑内容:

allow-transfer{key testkey;};

notify yes;

第十二步,切换至Kali Linux攻击机,使用dig命令发送axfr类型的dns请求:

dig @172.16.1.200 -t axfr vulhub.org

此时已经获取不到vulhub.org的所有子域名记录了,所以DNS域传送漏洞被修复了。

第十三步,进入靶机服务器CentOS7,使用./stop.sh命令执行stop.sh脚本,关闭靶机虚拟环境

猜你喜欢

转载自blog.csdn.net/qq_48609816/article/details/125900698