DNS区域传送漏洞实验以及二级域名爆破

目录:

1.DNS服务器的域传送漏洞(nslookup交互式、非交互式、批处理三种方式)

2.写个二级域名爆破脚本

一、DNS服务器的域传送漏洞

实验环境:

服务端:Windows2008 安装DNS服务(创建A记录),安装IIS服务(搭建一个站点)

客户端:win10(DNS设置为windows 2008的IP地址)

实验步骤:

一、服务端搭建一个网站

1.服务端搭建一个网站并设置默认主页

  

2.服务端设置DNS,并创建一个主机记录

  

3.客户端测试网站以及DNS创建的主机记录(通过主机名访问)

通过下图可以说明,网站搭建完好以及DNS解析正常

  

4.检查服务端是否开启“区域传送”,可以看到下图没有开启DNS区域传送

  

5.客户端使用nslookup查看DNS记录,可以看到www. hnuahe.edu.cn解析的DNS记录

  

6.看看是否存在DNS区域传送漏洞,列出hnuahe.edu.cn的所有二级域名

  

7.从上图可以看到目标不存在DNS传送漏洞,那么我们就在windows 2008开启区域传送,并不做任何限制并再创建几条主机记录,方便下面测试实现效果,见下图

  

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

  

9.刚才的实验实在交互式模式下测试DNS服务器是否存在域传送漏洞, 为了能够非交互式运行,可以通过管道来实现。

echo ls (要列出的域名) | nslookup

#注:nslookup也可以指定DNS服务器  echo ls (要列出的域名) | nslookup  –  (DNS服务器)

10.也可以通过批处理来实现非交互式测试DNS服务器是否存在域传送漏洞

编写批处理文件:ls.bat

Echo ls %1 | nslookup - %2          #批处理通过%来获得命令行传递来的参数

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

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

2) %2代表第二个参数,即www.hnuahe.edu.cn

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

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

5) nslookup - www.hnuahe.edu.cn是指定DNS服务器为www.hnuahe.edu.cn

可以看到通过批处理来执行测试出来DNS服务器存在域传送漏洞

  

二、二级域名爆破

当我们在查找某个域名的有效子域名时,我们通常需要使用子域名枚举这项技术。但是,除非DNS服务器暴露了完整的DNS空间(涉及到AXFR协议),否则我们真的很难拿到目标域名的子域名列表。目前主要的技术是使用一个常用域名的字典,并通过对每一个域名尝试进行解析来查找子域名。虽然这种方法在某些情况下非常有效,但是对于那些名字非常奇怪或罕见的域名来说,这种方法就没多大用了。

当然了,查找子域名也可以通过网络爬虫,以及搜索引擎(常用,因为更加高效)

代码如下: #注意需要自己准备一个字典

#进行暴力破解DNS二级域名
#利用nslookup 域名 循环尝试
import os
from threading import Thread
import time
#加载字典
with open("C://Users//admin//Desktop//dnsyuming_dict.txt") as f:
nlist=f.readlines()
#print(nlist)
bz=0 #做标志位,用于后面的结束循环读取字典
rlist=[]
def f(astr):
global bz
cmd="nslookup %s.hnuahe.edu.cn"%astr #这里可以修改
result=os.popen(cmd).read()
if result.count("Address")>1: #nslookup 执行成功返回的字符串中有两个"Address",失败只有返回一个
rlist.append(astr+".hnuahe.edu.cn") #把nslookup 执行成功得到的二级域名加入到列表中
bz+=1 if __name__=="__main__":
print("扫描开始:")
ts=[] #线程池
for i in nlist:
t=Thread(target=f,args=(i.strip(),))
ts.append(t)
t.start() #开启多线程
for i in ts:
t.join()
while 1:
if bz==len(nlist): #如果标志位和字典的长度相等,则退出循环
break
time.sleep(1)
print("一共扫描到%d个结果:"%len(rlist))
print(rlist)
print("扫描结束!")

运行效果如下:

  

--------------------------------------------------------------------------------------------------

DNS安装与配置,请参考:https://www.cnblogs.com/yuzly/p/10474146.html

web安装与配置,请参考:https://www.cnblogs.com/yuzly/p/10459272.html

DNS区域传送漏洞实验以及二级域名爆破的更多相关文章

  1. <转>DNS服务系列之二:DNS区域传送漏洞的安全案例

    DNS区域传送(DNS zone transfer)指的是一台备用服务器使用来自主服务器的数据刷新自己的域(zone)数据库.这为运行中的DNS服务提供了一定的冗余度,其目的是为了防止主的域名服务器因 ...

  2. DNS区域传送漏洞的安全案例

      DNS区域传送(DNS zone transfer)指的是一台备用服务器使用来自主服务器的数据刷新自己的域(zone)数据库.这为运行中的DNS服务提供了一定的冗余度,其目的是为了防止主的域名服务 ...

  3. DNS域传送漏洞利用

    DNS区域传送(DNS zone transfer)指的是一台备用服务器使用来自主服务器的数据刷新自己的域(zone)数据库.这为运行中的DNS服务提供了一定的冗余度,其目的是为了防止主的域名服务器因 ...

  4. [测试技术分享]DNS域传送漏洞测试

    DNS域传送漏洞测试 1.简介: DNS(Domain Name System)也叫域名管理系统,它它建立在一个分布式数据库基础之上,在这个数据库里,保存了IP地址和域名的相互映射关系.正因为DNS的 ...

  5. DNS区域传送、子域授权

    前言 DNS服务器搭建参考上一篇: DNS主从复制,就是将主DNS服务器的解析库复制传送至从DNS服务器,进而从服务器就可以进行正向.反向解析了.从服务器向主服务器更新查询数据,保证数据一致性,此为区 ...

  6. 黑客是如何利用DNS域传送漏洞进行渗透与攻击的?

    一.DNS域传送 DNS :Domain Name System 一个保存IP地址和域名相互映射关系的分布式数据库,重要的互联网基础设施,默认使用的TCP/UDP端口号是53 常见DNS记录类型: 1 ...

  7. DNS域传送漏洞

    nslookup -type=ptr 8.8.8.8             #查询一个IP地址对应的域名 nslookup -type=ns baidu.com         #查询baidu.c ...

  8. DNS主从复制及区域传送

    前言 DNS主从复制,就是将主DNS服务器的解析库复制传送至从DNS服务器,进而从服务器就可以进行正向.反向解析了.从服务器向主服务器查询更新数据,保证数据一致性,此为区域传送.也可以说,DNS区域传 ...

  9. DNS域传输漏洞复现

    漏洞原理 DNS分类 常见的DNS记录类型 A IP地址记录,记录一个域名对应的IP地址 AAAA IPv6 地址记录,记录一个域名对应的IPv6地址 CNAME 别名记录,记录一个主机的别名 MX ...

随机推荐

  1. linux解压war包的命令

    网上很多人说用jar包解压,但jar命令解压时不能指定目录,推荐使用unzip解压war包. 一.命令名: unzip 功 能说明:解压缩zip文 件 语 法:unzip [-cflptuvz][-a ...

  2. 手把手在Ubuntu上面安装Docker

    一.环境准备 1.Ubuntu64位系统(目前docker仅支持64位系统) 2.官方支持的Ubuntu版本(1)Ubuntu Trusty 14.04(LTS)(2)Ubuntu Precise 1 ...

  3. Coder解压探索===冥想补蓝v.1.0

    主题是什么? 这是一篇是我自己在探索冥想术的过程中,有了一些浅薄的收获,所以写出来记录与分享. 我不太记得最早是因为什么原因去学习冥想,一开始对我而言,这个词带有很多成见,诸如“老僧入定”“三界六道” ...

  4. 再也不用被this苦恼了

    前端编程对于this再熟悉不过了,今日来个老调重弹温故知新,肯定有很多大佬已经完全吃透了this原理,敬请出门左拐.对于理解this似懂非懂的同学可以借鉴一波 1.this描述 this指的是当前执行 ...

  5. .NET记录-获取外网IP以及判断该IP是属于网通还是电信

    在工作时,需要获取服务器公网IP(外网IP),并且判断该IP地址是属于网通还是电信.花时间整理一下,自己实现的代码,以及后续遇到的问题. /// <summary> /// 获取外网IP ...

  6. ElasticSearch安装及HEAD插件配置

    1. 安装 ElasticSearch 直接下载 zip 包解压即可,假设解压到 E:\ESTool\elasticsearch-5.6.3 2. 安装 nodejs 和 npm head 插件本身是 ...

  7. sourcetree Authentication failed

    sourcetree 的 git 密码存在 mac 的 钥匙串里面, 需要在钥匙串里删除掉对应信息,再次打开就会让你重新输入密码, 问题就解决了。 参看: https://stackoverflow. ...

  8. Springboot整合Websocket遇到的坑

    Springboot整合Websocket遇到的坑 一.使用Springboot内嵌的tomcat启动websocket 1.添加ServerEndpointExporter配置bean @Confi ...

  9. redux 入门

    背景: 在react中使用redux 重点:不要滥用redux,如果你的页面非常简单,没有 那么多的互动,那么就不要使用redux,反而会增加项目的复杂性. 如果你有以下情况,则可以考虑使用redux ...

  10. jquery中找到元素在数组中位置,添加或者删除元素的新方法

    一:查找元素在数组中的位置 jQuery.inArray()函数用于在数组中搜索指定的值,并返回其索引值.如果数组中不存在该值,则返回 -1. jQuery.inArray( value, array ...