要拿到一个目标DNS服务器的所有A记录,通常可以尝试下列方法:
DNS区域传输
区域传输原本是发生在DNS服务器之间信息同步的一个过程。
比如.域有14个域名服务器,如果说在其中一个域名服务器上对DNS的数据库做了修改,比如说又增加了一个.域的域名服务器或主机记录,在一台服务器上做了修改,DNS服务器之间 有同步机制,同步机制使用的就是DNS区域传输的方法。可以将一台服务器上数据的变更同步到其他服务器上。
正常情况下,区域传输只发生在本域的域名服务器之间,但是有一些粗心大意的服务器管理员配置错误有问题,会造成任何人都可以对这台区域服务器进行区域传输,如果进行区域传输,那么任何人都可以拿到这个域下的所有主机记录。
如果可以使用区域传输,就可以使用常见的一下两条命令对目标的DNS服务器进行一个区域传输。
dig命令
dig @nsl.example.com example.com axfr #必须知道example.com的一个域名服务器
#想要对example.com这个域做域名传输的话,首先要知道example.com的一个域名服务器,因为只有这个域名服务器里面有example.com所有的这些主机记录,区域传输成功才能获得所有记录。
#nsl.example.com域名服务器中可能不只有example.com域的记录,所以后面要指定example.com这个域。
例子:
1.先查找sina.com的ns记录
2.从ns记录中挑选一个域名服务器执行域名传输
3.抓包分析
先向本地DNS服务器查询“ns2.sina.com”的A记录和AAAA记录,本地DNS服务器给我返回结果,这是前四条抓包信息。
之后主机向114.134.80.145发出了tcp连接请求。
NS原本是基于UDP的53端口的,但是下一步我做区域传输的时候使用的不是UDP,而是TCP的53,UDP53端口只是用来域名查询。
建立TCP连接之后,还是进行DNS
目标服务器没有接受我的请求,而是拒接我的请求。
host命令
host -t -l example.com a.example.com
#-l的作用就是进行axfr的全区域传输
#-t是使用tcp的传输方式
#同dig的命令,查询谁的域名就要知道其中一个域名服务器名称
补充:
想要学会一个命令的使用,可以用一下:
host --help
man host
info host
DNS字典爆破
fierce
fierce -dnsserver 8.8.8.8 -dns sina.com.cn -wordlist a.txt
#需要指定一个任意的本地缓存DNS服务器,这里指定的是8.8.8.8
#使用-dns来指定要查的域
#-wordlist指定后面跟的字典文件
#这个命令自身已经集成了axfr的区域传输的功能,该命令会先执行区域传输,执行失败了才会之后后面的字典
现在我主机中没有字典文件,所以我要去查看fierce的包中是否有字典文件,通过下面命令查找
dpkg -L fierce
#-L:列出来这个程序相关的在系统安装生成的所有文件
或者
find / -name fierce
dnsdict6
dnsdict6 -d4 -t 16 -x sina.com
#-t 指定线程数,他可以并发,并发16个线程
#-x 指定使用什么级别的字典,字典级别是smlxu
因为我本机没有安装dnsdict6,所以我需要安装它。下载地址:
https://src.fedoraproject.org/lookaside/pkgs/thc-ipv6/thc-ipv6-2.7.tar.gz/2975dd54be35b68c140eb2a6b8ef5e59/,下载后拖进虚机共享文件夹中解压并完成以下步骤:
#进入到解压好的文件夹
cd thc-ipv6-2.7
apt-get install libpcap-dev libssl-dev
make
cp dnsdict6 /usr/bin/
dnsenum
dnsenum -f /usr/share/dnsenum/dns.txt -dnsserver 8.8.8.8 sina.com -o sina.xml
#-f 指定一个字典。不需要指定一个具体的字典,他会在程序运行的目录中自己找自己带的字典。
#-dnsserver 指定一个本地DNS服务器
#-o 将输出的结果保存到一个文件中
dnsmap
dnsmap sina.com -w dns.txt
#-w 指定一个字典
dnsrecon
dnsrecon -d sina.com --lifetime 10 -t brt -D dnsbig.txt
#-d 指定域名
#--lifetime 指定超出时间
#-t 指定查询强度,std标准破解;brt暴力破解;
#-D 指定一个字典,需要指定一个具体的字典
DNS注册信息
还需要收集一些DNS注册的信息。
whois 域名
whois ip
需要确认是运营商的信息还是渗透目标的信息。比如有些公司会租用IDC机房,把IDC当做渗透目标就失去了正确的方向。