首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DNS域传送漏洞(一)

DNS域传送漏洞(一)

作者头像
HACK学习
发布2019-08-07 16:03:18
1.8K0
发布2019-08-07 16:03:18
举报
文章被收录于专栏:HACK学习HACK学习

本文主要介绍: 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]

Option是可选的参数,不带参数执行nslookup命令,可进入交互式shell,在shell中输入help,可查阅参数说明,如下例所示:

D:\>nslookup

默认服务器:  public1.114dns.com

Address:  114.114.114.114

 

> help

命令:   (标识符以大写表示,[] 表示可选)

set OPTION      - 设置选项

    type=X              - 设置查询类型(如 A、AAAA、A+AAAA、ANY、CNAME、MX

                          NS、PTR、SOA 和 SRV)

ls [opt] DOMAIN [> FILE] - 列出 DOMAIN 中的地址(可选: 输出到文件 FILE)

    -a          -  列出规范名称和别名

    -d          -  列出所有记录

    -t TYPE     -  列出给定 RFC 记录类型(例如 A、CNAME、MX、NS 和 PTR 等)

                   的记录

exit            - 退出程序

上面是笔者精简后的输出,注意两点:1) 使用type参数可以设置记录类型。 2) 使用ls命令,可以列出一个域下面所有的域名。

Hostname选项指定需要查询的主机名,比如www.lijiejie.com。Server选项指定DNS服务器。为了查询结果的准确,可选用几个常用的公共DNS服务器:8.8.8.8是Google提供的DNS服务,114.114.114.144和114.114.115.115是114DNS提供的免费DNS服务。

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

1234567

d:\>nslookup www.lijiejie.com 114.114.114.114服务器: public1.114dns.comAddress: 114.114.114.114 非权威应答:名称: www.lijiejie.comAddress: 106.187.34.156

可以看到,www.lijiejie.com对应的IP主机是106.187.34.156。

下面的例子查询jd.com使用的DNS服务器名称:

d:\>nslookup www.lijiejie.com 114.114.114.114

服务器:  public1.114dns.com

Address:  114.114.114.114

 

非权威应答:

名称:    www.lijiejie.com

Address:  106.187.34.156

上述结果显示,京东商城的外部主DNS服务器有6个。下面的例子展示如何查询taobao.com的邮件交换记录:

D:\>nslookup -type=ns jd.com

服务器:  public1.114dns.com

Address:  114.114.114.114

 

非权威应答:

jd.com  nameserver = ns1.jdcache.com

jd.com  nameserver = ns4.jdcache.com

jd.com  nameserver = ns1.jd.com

jd.com  nameserver = ns2.jd.com

jd.com  nameserver = ns3.jd.com

jd.com  nameserver = ns2.jdcache.com

jd.com  nameserver = ns4.jd.com

jd.com  nameserver = ns3.jdcache.com

从上表可看出,淘宝的邮件交换服务器是mx1.alibaba-inc.com。

下例反向查询一个IP地址对应的域名:

D:\>nslookup -type=mx taobao.com

服务器:  public1.114dns.com

Address:  114.114.114.114

 

非权威应答:

taobao.com      MX preference = 10, mail exchanger = mx1.alibaba-inc.com

可以得到8.8.8.8对应的域名是google-public-dns-a.google.com。

笔者继续介绍在交互式shell中发现一个DNS服务器的域传送漏洞的过程:

D:\>nslookup

默认服务器:  public1.114dns.com

Address:  114.114.114.114

 

> server dns.nwpu.edu.cn

默认服务器:  dns.nwpu.edu.cn

Address:  202.117.80.2

 

> ls nwpu.edu.cn

[dns.nwpu.edu.cn]

nwpu.edu.cn.                   NS     server = dns.nwpu.edu.cn

nwpu.edu.cn.                   NS     server = dns1.nwpu.edu.cn

nwpu.edu.cn.                   NS     server = dns2.nwpu.edu.cn

nwpu.edu.cn.                   NS     server = dns3.nwpu.edu.cn

*                              A      222.24.192.99

(... 省略大量的记录)

npunecas                       NS     server = webcomp.npunecas.nwpu.edu.cn

webcomp.npunecas               A      202.117.85.146

nwpu03                         A      202.117.80.4

nwpudb2                        A      222.24.210.149

poj                            A      192.168.0.248

portal                         A      61.150.43.10

portal1                        A      222.24.192.31

portal2                        A      222.24.192.32

rei                            A      202.117.85.10

saip                           NS     server = saipserver.saip.nwpu.edu.cn

saipserver.saip                A      202.117.85.72

test                           A      222.24.192.29

yzb                            A      202.117.85.3

zsb                            A      202.117.87.130

zygx                           A      202.117.80.9

操作基本的步骤是:

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)V**服务器地址泄露

5)其他敏感服务器

以上示例了存在漏洞的DNS服务器,若是不存在漏洞的主机,则可能提示错误Query Refused:

D:\>nslookup

默认服务器:  public1.114dns.com

Address:  114.114.114.114

 

> server ns.pku.edu.cn

默认服务器:  ns.pku.edu.cn

Address:  202.112.7.13

 

> ls pku.edu.cn

[ns.pku.edu.cn]

*** 无法列出域 pku.edu.cn: Query refused

DNS 服务器拒绝将区域 pku.edu.cn 传送到您的计算机。如果这不正确,

请检查 IP 地址 202.112.7.13 的 DNS 服务器上 pku.edu.cn 的

区域传送安全设置。

以上是在交互式shell中测试DNS服务器是否存在域传送漏洞。为了能够非交互式运行,笔者编写以下批处理文件ls.bat:

echo ls %1 | nslookup – %2

为了测试dns.nwpu.edu.cn服务器,可以执行ls.bat nwpu.edu.cn dns.nwpu.edu.cn。 批处理中:

1) %1代表第一个参数,也即nwpu.edu.cn

2) %2代表第二个参数,即dns.nwpu.edu.cn

3) Echo是回声命令,原文输出传入的参数内容

4) “|”是管道符号,作用是把前一个命令执行的结果传给后一个命令。因此:执行ls.bat nwpu.edu.cn dns.nwpu.edu.cn,等价于执行echo ls nwpu.edu.cn | nslookup – dns.nwpu.edu.cn

5) nslookup -dns.nwpu.edu.cn是指定DNS服务器为dns.nwpu.edu.cn

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 HACK学习呀 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1)什么是DNS?
  • 2) nslookup命令
相关产品与服务
测试服务
测试服务 WeTest 包括标准兼容测试、专家兼容测试、手游安全测试、远程调试等多款产品,服务于海量腾讯精品游戏,涵盖兼容测试、压力测试、性能测试、安全测试、远程调试等多个方向,立体化安全防护体系,保卫您的信息安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档