DNS 域传送漏洞

1、域传送简介


DNS是整个互联网公司业务的基础,目前越来越多的互联网公司开始搭建自己的DNS服务器进行解析服务,同时由于DNS服务是一项非常重要的基础性服务,因此很多公司会对DNS服务器进行主备配置。为了保证DNS服务器主备之间数据的同步,DNS域传送因运而生。

2、DNS服务架设


测试机器为centos 6.6

安装bind服务

yum install bind -y

DNS服务刚安装好的时候只在本地监听,只允许本地查询,需要根据具体情况修改

vim /etc/named.conf
#监听端口
listen-on port 53 { localhost; };
#允许查询的ip
allow-query     { localhost; };

配置test.com的正向解析

vim /etc/named.rfc1912.zones 
#test
zone "test.com" IN {
       type master;
       file "test.com";
       allow-update { none; };
};
cp -p /var/named/named.localhost /var/named/test.com
 
vim /var/named/test.com
 
$TTL 86400
@	IN SOA	@ rname.invalid. (
				12	; serial
				1D	; refresh
				1H	; retry
				1W	; expire
				3H )	; minimum
NS	@
A	127.0.0.1
AAAA	::1
www		IN	A	192.168.5.6
test	IN	A	192.168.5.1
test1	IN	A	192.168.5.2
test2	IN	A	192.168.5.3
test3	IN	A	192.168.5.4

启动服务,并加入开机自启动

/etc/init.d/named start
chkconfig named on

如果有防火墙,需要调整防火墙规则

3、错误配置及利用


默认的bind允许任何人来同步数据,所有的dns解析记录都会被泄露,直接暴漏整体网络结构

win下DNS传送检测方法

4、实际案例

5、修复方法


只需要在相应的zone、options中添加allow-transfer限制可以进行同步的服务器就可以了,可以有两种方式:限制IP、使用key认证。

使用限制IP的方法:

vim /etc/named.conf
#在options中添加
allow-transfer {192.168.5.6;};

或者

vim /etc/named.rfc1912.zones
#对应的zone中添加
allow-transfer {192.168.5.1;};

6、漏洞发现


手工检测方法,使用dig直接请求

dig @192.168.5.6 test.com axfr

自动检测方法,调用nmap进行扫描

nmap --script dns-zone-transfer --script-args dns-zone-transfer.domain=test.com -p 53 -Pn 192.168.5.6

7、相关资源