DNS区域传送(DNS zone transfer)指的是一台备用服务器使用来自主服务器的数据刷新自己的域(zone)数据库。这为运行中的DNS服务提供了一定的冗余度,其目的是为了防止主的域名服务器因意外故障变得不可用时影响到整个域名的解析。

一般来说,DNS区域传送操作只在网络里真的有备用域名DNS服务器时才有必要用到,但许多DNS服务器却被错误地配置成只要有client发出请求,就会向对方提供一个zone数据库的详细信息,所以说允许不受信任的因特网用户执行DNS区域传送(zone transfer)操作是后果最为严重的错误配置之一。

很多时候,我们需要批量检测站点,前期Google了一番,看到了DNS域传送相关的有李姐姐的两篇,讲到了在Linux下除了使用nmap扫描器,还可以用dig来测试DNS服务器是否存在域传送泄露。但是也没有真正的讲到批量。其他的讲的主要是域传送漏洞的发掘和利用。前一段时间检测一个站点DNS域传送的时候,在windows下进行的,后来知道Python中有一个dnspython(点我)的三方库,可以进行DNS域传送检测,就随手撸了这么一个工具。

代码拿去撸https://github.com/cc06/DNS_Transfer_Check

运行环境:Python2.7版本

主要的功能:单个站点域传送检测,同时也支持批量检测。

下面我们来拿天朝某国家级站点测试一下。

0×01:先在win下手工测试一下

C:\Users\Administrator>nslookup
默认服务器:  ns1.***.net.cn
Address:  2**.102.134.68
> set type=ns
> ***.gov.cn
服务器:  ns1.***.net.cn
Address:  2**.102.134.68
非权威应答:
***.gov.cn    nameserver = dns1.***.gov.cn
***.gov.cn    nameserver = dns.***.gov.cn
***.gov.cn    nameserver = odnssvr.***.gov.cn
> server dns.***.gov.cn
默认服务器:  dns.***.gov.cn
Address:  2**.99.59.110

> ls -d ***.gov.cn
[dns.***.gov.cn]
 ***.gov.cn.                  SOA    linux.site root.linux.site. (2008011803 10800 3600 604800 86400)
 ***.gov.cn.                  MX     10   mail.***.gov.cn
 ***.gov.cn.                  NS     dns.***.gov.cn
 ***.gov.cn.                  NS     dns1.***.gov.cn
 ***.gov.cn.                  NS     odnssvr.***.gov.cn
.................

0×02: 我们用Dns_Transfer_Check测试一下

可以看到,已经检测出来了

0×03:批量扫描

操作也很简单,只需要选择批量选项之后,添加上站点路径文件就可以了。

0×04:另外对域传送漏洞的挖掘

配合爬虫抓取url地址,然后用上加载到本程序,你懂得…

我自己撸了一个爬取国内政府网站的爬虫,分分钟检测出来很多。代码丑就不拿出来了,大家自己撸一个就是了。

* 作者:Layert,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

源链接

Hacking more

...