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

一,DNS域名传送漏洞

1,实验环境:
服务器

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

(2)配置桥接模式(即,VMnet0)

  • 打开VMware Workstation虚拟机——>编辑——>虚拟网络编辑器——>点击“DHCP设置(P)——>“桥接到:自动”,选择为物理机的网卡——>点击“确定”
    在这里插入图片描述
  • 虚拟机——>网络适配器——>选择“桥接模式”和勾选“复制物理网络连接状态(P)”——>点击“添加(A)”,将该网络设配器设置成NAT模式。这样既win2008中既可以实现“NAT模式”网络连接,又可以实现“桥接模式”网络连接。
    在这里插入图片描述
  • 虚拟网卡按装成功
    在这里插入图片描述
    (3)win2008的通过ipconfig获得,即:IP:

客户端

虚拟机Win7的DNS设置为Windows server 2008的IP地址;

2,实验步骤:
(1)首先在Windows 2008上安装DNS服务
  • 在服务管理器上新建角色,选择DNS服务器;
  • 在服务管理器上添加完DNS角色后,在“开始——>程序——>管理工具中会出现DNS”,利用它可以启动DNS管理器,并对DNS服务器进行设置。

在这里插入图片描述在这里插入图片描述
(2)服务器配置DNS,在正向查找区域中新建一个区域——xianligong.edu.cn
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述(3)创建主机记录;
在DNS管理器中右键单击新建的区域,选择“新建主机”命令,弹出对话框,输入主机名和对应的IP地址(即,Win2008的IP地址),单击添加主机按钮。此步骤可重复多次。
在这里插入图片描述(4)配置DNS转发
在这里插入图片描述在这里插入图片描述
(5)配置服务器,将IP地址(需设置成静态IP)与DNS服务器地址设置成一样的(Windows
service 2008本身就是DNS服务器)
在这里插入图片描述
(6)配置客户端DNS:将客户端DNS设置为DNS服务器的IP地址,然后访问网页。若访问成功,说明网站搭建成功以及DNS解析成功。

  • windows2008登录成功

在这里插入图片描述

  • Windows7上自建网站登录成功

在这里插入图片描述
(7)检查服务端是否开启“区域传送”,可以看到下图没有开启DNS区域传送;

在这里插入图片描述(8)在客户端中在CMD命令下,使用nslookup命令查看DNS记录,可以看到www.xianligong.edu.cn的DNS解析记录;

在这里插入图片描述

  • 查看是否存在DNS区域传送漏洞(假设,如果列出xianligong.edu.cn的所有二级域名,则存在传送漏洞);
    在这里插入图片描述

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

在这里插入图片描述再在客户端测试是否存在区域传送漏洞,我们可以看到几条主机记录,说明存在DNS区域传送漏洞;

在这里插入图片描述

三、DNS子域名爆破

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

  • 当我们在查找某个域名的有效子域名时,可以使用的技术是通过一个常用的域名字典(需要自己准备一个字典),对字典中的每一个域名通过nslookup尝试进行解析来查找子域名。这种方式有一定的局限性,就是对那些主机名不常见的,这种方法就没什么实际的效益。

下面我们就对上面创建的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)

运行结果如下:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值