DNS域传送漏洞(一)

本文主要介绍:

1)什么是DNS?

2)使用Nslookup命令探测DNS域传送漏洞

3)使用nmap扫描DNS域传送漏洞

4)使用dig命令检测

5)使用python + Dig批量扫描漏洞主机

6)使用python实现AXFR查询

1)什么是DNS?

DNS(Domain Name System,域名管理系统)是万维网WWW的重要基础。它建立在一个分布式数据库基础之上,在这个数据库里,保存了IP地址域名的相互映射关系。

正因为DNS的存在,我们才不需要记住大量无规则的IP地址, 而只需要知道对方计算机的名称,就可以访问对应服务。比如,笔者的博客是www.lijiejie.com,当用户在浏览器地址栏输入上述域名,浏览器就将向DNS服务器发送查询,得到目标主机的IP地址,再与对应的主机建立一个HTTP连接,请求网页。相对于记住106.187.34.156这个IP地址,域名www.lijiejie.com自然更有意义、更加清晰明了。

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记录     记录域名的相关文本信息

作为重要的互联网基础设施,难免成为黑客的重点攻击目标,服务的稳定性尤为重要。DNS服务器分为:主服务器、备份服务器和缓存服务器。在主备服务器之间同步数据库,需要使用“DNS域传送”。域传送是指后备服务器从主服务器拷贝数据,并用得到的数据更新自身数据库。

若DNS服务器配置不当,可能导致匿名用户获取某个域的所有记录。造成整个网络的拓扑结构泄露给潜在的攻击者,包括一些安全性较低的内部主机,如测试服务器。凭借这份网络蓝图,攻击者可以节省很少的扫描时间。

大的互联网厂商通常将内部网络与外部互联网隔离开,一个重要的手段是使用Private DNS。如果内部DNS泄露,将造成极大的安全风险。风险控制不当甚至造成整个内部网络沦陷。

 

2) nslookup命令 

笔者首先介绍DNS查询工具nslookup命令的使用。仅使用该命令,就可完成DNS域传送的测试。在windows命令提示符中输入“nslookup ?”,得到如下简略的用法说明:

d:\nslookup ?

用法:
nslookup [-opt ...]             # 使用默认服务器的交互模式
nslookup [-opt ...] - server    # 使用 "server" 的交互模式
nslookup [-opt ...] host        # 仅查找使用默认服务器的 "host"
nslookup [-opt ...] host server # 仅查找使用 "server" 的 "host"

Nslookup命令以两种方式运行:非交互式和交互式。本 文第一次提到“交互式”的概念,简单说明:交互式系统是指执行过程中允许用户输入数据和命令的系统。而非交互式系统,是指一旦开始运行,不需要人干预就可以自行结束的系统。因此,nslookup以非交互式方式运行,就是指运行后自行结束。而交互式,是指开始运行后,会要求使用者进一步输入数据和命令。

非交互式下命令的语法是是:

nslookup [-option] [hostname] [server]

继续阅读DNS域传送漏洞(一)