预备知识
1. Dnsdict6
dnsdict6是一款DNS枚举工具,由gnucitizen.org开发。工具本身提供的一个字典或者内置的列表来方便枚举。为了方便实验,就直接用Kali中集成好的即可。直接在终端中输入dnsdict6即可查看用法,下面是常用的参数和用法:
dnsdict6 --help 查看帮助
dnsdict6 -d 查看DNS服务的NS,MX,ipv6的域名信息
dnsdict6 -4 查看ipv4信息
dnsdict6 -t 是指定线程。默认8,最大32
dnsdict6 -D 显示字典
dnsdict6 -[smlx] 选择字典大小[内置的] -s小型是50条 -m中等796条 -l大型1416条 -x最大3211条
2. Dnsenum
dnsenum是一款非常强大的perl语言编写的多线程域名信息收集工具。
dnsenum的目的是尽可能收集一个域的信息,它能够通过谷歌或者字典文件猜测可能存在的域名,以及对一个网段进行反向查询。它可以查询网站的主机地址信息、域名服务器、mx record(函件交换记录),在域名服务器上执行axfr请求,通过谷歌脚本得到扩展域名信息(google hacking),提取自域名并查询,计算C类地址并执行whois查询,执行反向查询,把地址段写入文件。
由于参数多较复杂以及实验环境的限制,实验不会对全部参数进行详解,尽量对常用的几个参数进行实验。 下面是常用的几个参数和用法:
dnsenum --help 查看帮助
dnsenum xxx.com 获取xxx.com的dns服务器信息
dnsenum -o 输出xml格式
dnsenum -f 从这个文件读取子域进行暴力破解
dnsenum -s 他最大的子域,将搜索结果的谷歌数(默认15)
dnsenum -p 当搜索关键词谷歌搜索页面的数量(默认5页),必须指定搜索页数是多少
实验目的
通过该实验了解dnsdict6和dnsenum这两个工具的原理和使用方法,能够了解并学会这个工具的利用方法,并尝试查询DNS服务器的相关信息。
实验环境
客户端(client):kali linux,IP地址:10.1.1.100
服务器(server):CentOS release 6.5 ,IP地址:10.1.1.101 域名:dns.dnstest.com
实验步骤一
任务描述:查看工具帮助信息和使用方法,尝试用工具对DNS服务器进行一次查询操作。利用dnsdict6多线程,加上自己的字典进行域名枚举
1. Dnsdict6使用帮助
进入客户端,打开终端直接输入dnsdict6 --help可以查看帮助
2. 修改客户端DNS服务器
在此之前本实验需要设置客户端(client)的DNS服务器指向10.1.1.101,在/etc/resolv.conf中加入nameserver 10.1.1.101
这是原来的内容
修改为下面这样
3. Dnsdict6使用
1)查询NDS服务器上的域名信息
然后执行下面命令查看查询结果 dnsdict6 -d4 dnstest.com 从下图可以看到,查到了3条NS记录,DNS服务器的地址是10.1.1.101
2)查询字典里面存在多少DNS服务器的域名信息
首先新建一个do.txt
输入vim do.txt 编辑内容
dnsdict6 -t 12 -d4 dnstest.com do.txt
域名后面就是接指定的字典。
最简单的命令可以这样:
dnsdict6 -4dD dnstest.com
这里查看的也是默认字典的内容。如果想要查看不同内置字典的内容可以这样,例如查看最小内置字典,其他内置字典也是如此。
实验步骤二
任务描述: dnsdict6工具使用总结以及是否可以用来检测DNS服务器域传送漏洞。
1. 多线程查询dns信息
以多线程的方式查询dnstest.com的NS和MX记录的IPV4和IPV6信息
dnsdict6 -d4 -t 12 dnstest.com
以多线程的方式查询dnstest.com的NS和MX记录的IPV4和IPV6信息,但是指定本地的do.txt文件为字典
上面两幅图对比可以看出,dnsdict6查询获取NS记录的多少是与字典相关的,如果不理解可以自己测试。
实验步骤三
任务描述:熟悉dnsenum工具的基本语法和使用,最重要的就是如何用dnsenum来检测DNS域传送漏洞。
1.Dnsenum的基本用法和使用
查看帮助信息 dnsenum --help 可以看到版本,语法格式和详细参数
简单获取dns服务器信息 dnsenum dnstest.com
后面直接跟域名,可以看到服务器的IP和域名。
2.用dnsenum来检测DNS域传送漏洞
在上一步的结果中我们还发现了一条:AXFR record query failed:REFUSED
AXFR请求简单点说就是从DNS服务器请求在主DNS服务器上更新信息的一类域名系统的请求。更深入的理解自行查找资料。
可以看到AXFR请求是被服务器拒绝的,这也是安全设置。现在把DNS服务器上的named.conf文件中注释掉一行,路径是/etc/named.conf
重启服务:service named restart,再次执行 dnsenum dnstest.com
查询出来DNS服务器上的所有子域名,证明存在域传送漏洞。
实验步骤四
任务描述:熟悉dnsenum工具的保存等参数。了解谷歌查找部分的用法,自行测试即可。
1.熟悉Dnsenum的保存参数
把查询结果保存到本地文件
dnsenum -o dnstest.txt dnstest.com
现在查看本地文件dnstest.txt
cat dnstest.txt
是以xml格式输出的。
在互联网环境中测试,这里仅做示范
用-f参数指定文件暴力破解域名,新建字典zi.txt
执行dnsenum -f zi.txt dnstest.com
只命中了test2一个子域名
使用subfile参数保存获取的有效子域名
dnsenum -f zi.txt -subfile sfile.txt dnstest.com
2.Google部分查找用法
Google查找常用的参数就是-s和-p,因为实验室环境所限,不能演示,自己可以测试查询。