DNS区域传送漏洞实验(nslookup交互式)及二级域名爆破

一、实验环境

服务器:Windows server 2008,安装DNS服务(创建A记录),安装IIS服务(搭建一个站点)

客户端:Windows 7,DNS设置为Windows server 2008的IP地址

二、实验步骤

1、在服务器端安装DNS服务

2、服务器端配置DNS,在正向查找区域中新建一个区域 — xianligong.edu.cn

 

将动态更新设置为’不允许动态更新’

3、创建主机记录

在DNS管理器中右键单击新建的区域,选择 ' 新建主机 ' 命令,弹出对话框,输入主机名和对应的IP地址,单击添加主机按钮。此步骤可重复多次。

4、配置DNS转发

5、配置服务器,将IP地址(要设置成静态的)与DNS服务器地址设置成一样的(Windows Service 2008 本身就是DNS服务器)

配置DNS客户机:将客户机DNS设置为服务器的IP地址,然后访问网站;访问成功,说明网站搭建成功以及DNS解析成功

6、检查服务端是否开启 ' 区域传送 ',可以看到下图没有开启DNS区域传送

7、在客户端使用nslookup查看DNS记录,可以看到www. xianligong.edu.cn解析的DNS记录

查看是否存在DNS区域传送漏洞(如果列出xianligong.edu.cn的所有二级域名,则存在传送漏洞)

从上图可以看到目标不存在DNS传送漏洞,那我们就在Windows server 2008开启区域传送,并不做任何限制并再创建几条主机记录。

再在客户端测试是否存在区域传递漏洞,我们可以看到几个主机记录,说明存在DNS区域传送漏洞

三、DNS子域名爆破

通过上面的DNS区域传送漏洞实验我们可以看出,如果爆破前存在域传送漏洞,那么我们就可以利用该漏洞来得到主机记录了,不需要进行子域名爆破了。

下面我们就对上面创建的xianligong.edu.cn的主机记录进行子域名爆破(运行之前需要自己准备一个常用域名的字典)

#利用 'nslookup 域名'暴力破解子域名
import os 
from threading import Thread
import time

#加载字典
with open('D://st13//python//3.4//dns.txt') as f:
    nlist=f.readlines()                        #readlines() 自动将文件内容按行返回一个列表(list) 

bz=0                                           #做标志位,用于后面结束循环读取字典
rlist=[]
def sm(astr):
    global bz
    cmd='nslookup %s.xianligong.edu.cn'%astr
    result=os.popen(cmd).read()
    if result.count('Address')>1:              #nslookup 执行成功返回的结果中有两个"Address",失败只返回一个
        rlist.append(astr+'.xianligong.edu.cn')#将存在的域名加入到字典中
    bz+=1    
      
if __name__=="__main__":
    print('扫描开始')
    for i in nlist:                            #开启多线程
        t=Thread(target=sm,args=(i.strip(),)) 
        t.start()
    while 1:                                   #如果bz等于字典的长度,则循环结束
        if bz==len(nlist):
            break
        time.sleep(1)
    print('扫描结束!')
    print('一共扫描到%s的个结果'%len(rlist))
    print(rlist)
        
    

 运行结果如下:

猜你喜欢

转载自blog.csdn.net/weixin_43625577/article/details/89052033