3.1 DNS域传送漏洞

前言

在《安全参考》第一期中有:区域传送操作指的是一台后备服务器使用来自主服务器的数据刷新自己的 zone 数据库。这为运行中的 DNS 服务提供了一定的冗余度,其目的是为了防止主域名服务器因意外故障变得不可用时影响到全局。一般来说,DNS区域传送操作只在网络里真的有后备域名 DNS 服务器时才有必要执行,但许多 DNS 服务器却被错误地配置成只要有人发出请求,就会向对方提供一个 zone 数据库的拷贝。如果所提供的信息只是与连到因特网上且具备有效主机名的系统相关,那么这种错误配置不一定是坏事,尽管这使得攻击者发现潜在目标要容易得多。真正的问题发生在一个单位没有使用公用/私用 DNS 机制来分割外部公用 DNS 信息和内部私用 DNS 信息的时候,此时内部主机名和 IP 地址都暴露给了攻击者。把内部 IP 地址信息提供给因特网上不受信任的用户,就像是把一个单位的内部网络完整蓝图或导航图奉送给了别人。对系统管理员来说,允许不受信任的因特网用户执行 DNS 区域传送(zone transfer)操作是后果最为严重的错误配置之一。

同时,在WooYun WiKi中也说道,利用DNS域传送漏洞可以有效地收集相关企业的子域名,收集信息也是渗透过程中很关键的一步。

DNS服务器使用的TCP/UDP端口号是53。

最常用的DNS记录有以下几类:

  A记录       IP地址记录,记录一个域名对应的IP地址

  AAAA记录    IPv6 地址记录,记录一个域名对应的IPv6地址

  CNAME记录   别名记录,记录一个主机的别名

  MX记录    电子邮件交换记录,记录一个邮件域名对应的IP地址,比如my[at]lijiejie.com
             后面的部分lijiejie.com,邮件服务器对应的IP地址

  NS记录      域名服务器记录 ,记录该域名由哪台域名服务器解析

  PTR记录     反向记录,也即从IP地址到域名的一条记录

   TXT记录     记录域名的相关文本信息

nslookup命令

常用参数:

注意两点: 1、使用type参数可以设置记录类型。 2、 使用ls命令,可以列出一个域下面所有的域名。

下面的例子通过114.114.114.114查询域名的IP地址:

下面的例子查询taobao.com使用的邮件交互服务器名称:

测试是否存在域传送漏洞

操作基本的步骤是:

1) 输入nslookup命令进入交互式shell

2) Server 命令参数设定查询将要使用的DNS服务器

3) Ls命令列出某个域中的所有域名

4) Exit命令退出程序

攻击者能获取的敏感主要包括:

1)网络的拓扑结构,服务器集中的IP地址段

2)数据库服务器的IP地址,例如上述nwpudb2.nwpu.edu.cn

3)测试服务器的IP地址,例如test.nwpu.edu.cn

4)VPN服务器地址泄露

5)其他敏感服务器

nmap

使用nmap扫描器附带的脚本,可以扫描DNS服务器是否存在域传送漏洞。语法为:

对上述命令命令说明如下:

nmap –script dns-zone-transfer表示加载nmap文件夹下的脚本文件dns-zone-transfer.nse,扩展名.nse可省略 –script-args dns-zone-transfer.domain=zonetransfer.me向脚本传递参数,设置列出记录的域是nwpu.edu.cn -p 53设置扫描53端口 -Pn设置通过Ping发现主机是否存活

Dig命令

查询类型设定为axfr,就能得到域传送数据。这也是我们要用来测试DNS域传送泄露的命令:

请注意,参数axfr后跟需要列出的域的名称。上面的例子是nwpu.edu.cn。只要命令输出中存在“XFR size”即代表该服务器存在漏洞。

tools

https://github.com/lijiejie/edu-dns-zone-transfer

修复方案

解决域传送问题非常简单,只需要在相应的zone、options中添加allow-transfer限制可以进行同步的服务器就可以了,可以有两种方式:限制IP、使用key认证。

Last updated

Was this helpful?