通过DNS蛮力扫描黑客可以获得目标相对完整的子域名清单,利用这些子域名黑客可以:
1)了解目标的业务系统架构及清单。
2)找到隐藏的域名,隐藏的域名可能是还在处于开发阶段的系统,比较容易被突破。
3)了解目标的网络出口及办公地点,后续通过网络扫描方式寻找突破口。
4)对目标网段进行DNS反解并找到目标使用的其它主域名。
5)寻找可能泄漏的内网IP,并判断目标内网的结构。
这里我给大家介绍的是Kali系统上带的dnsmap工具,它功能很单一,比较适合小白上手:
root@Hacker:~# dnsmap
dnsmap 0.30 - DNS Network MApper by pagvac (gnucitizen.org)
usage: dnsmap <target-domain> [options]
options:
-w <wordlist-file>
-r <regular-results-file>
-c <csv-results-file>
-d <delay-millisecs>
-i <ips-to-ignore> (useful if you're obtaining false positives)
e.g.:
dnsmap target-domain.foo
dnsmap target-domain.foo -w yourwordlist.txt -r /tmp/domainbf_results.txt
dnsmap target-fomain.foo -r /tmp/ -d 3000
dnsmap target-fomain.foo -r ./domainbf_results.txt
root@Hacker:~#
dnsmap仅支持几个简单的参数:
- -w:指定字典文件,默认为/usr/share/wordlists/dnsmap.txt。
- -r:指定保存普通格式的结果文件路径。
- -c:指定保存csv格式的结果文件路径。
- -d:指定每次查询后需要等待的时间,默认为10毫秒。
- -i:指定需要忽略的IP。
在Kali系统中,除了dnsmap自带的字典,我们还可以使用其它工具的字典,可以通过locate命令查找:
root@Hacker:~# updatedb
root@Hacker:~# locate -A wordlist | grep dns
/usr/share/dnsmap/wordlist_TLAs.txt
/usr/share/golismero/wordlist/dns
/usr/share/golismero/wordlist/dns/all.txt
/usr/share/golismero/wordlist/dns/dnsrecon.txt
/usr/share/golismero/wordlist/dns/subbrute_large.txt
/usr/share/golismero/wordlist/dns/subbrute_small.txt
/usr/share/golismero/wordlist/dns/whitelist.txt
/usr/share/theharvester/wordlists/dns-big.txt
/usr/share/theharvester/wordlists/dns-names.txt
/usr/share/wordlists/dnsmap.txt
root@Hacker:~#
也可以使用crunk工具生成:
root@Hacker:~# crunch 3 3 > words.txt
Crunch will now generate the following amount of data: 70304 bytes
0 MB
0 GB
0 TB
0 PB
Crunch will now generate the following number of lines: 17576
root@Hacker:~# wc -l words.txt
17576 words.txt
root@Hacker:~#
这些字典有大有小,最大的all.txt有31660个词,可根据情况自己选择,如果需要全面扫描则用大字典,但花的时间会更多。
下面我们使用shuf命令从dnsmap.txt字典中随机挑100条对baidu.com进行测试,输出格式为csv,延时为10毫秒:
root@Hacker:~# shuf -n 100 /usr/share/dnsmap/wordlist_TLAs.txt > 100.txt
root@Hacker:~#
root@Hacker:~# dnsmap baidu.com -w 100.txt -c result.txt -d 10
dnsmap 0.30 - DNS Network Mapper by pagvac (gnucitizen.org)
[+] searching (sub)domains for baidu.com using 100.txt
[+] using maximum random delay of 10 millisecond(s) between requests
stj.baidu.com
IP address #1: 220.181.38.141
gnh.baidu.com
IP address #1: 220.181.33.6
xyx.baidu.com
IP address #1: 123.125.114.215
vsp.baidu.com
IP address #1: 180.97.93.78
IP address #2: 180.97.34.238
[+] 4 (sub)domains and 5 IP address(es) found
[+] csv-format results can be found on result.txt
[+] completion time: 7 second(s)
root@Hacker:~#
root@Hacker:~# cat result.txt
stj.baidu.com,220.181.38.141
gnh.baidu.com,220.181.33.6
xyx.baidu.com,123.125.114.215
vsp.baidu.com,180.97.93.78,180.97.34.238
root@Hacker:~#
这里使用baidu.com只是因为baidu的域名多,无意冒犯,不是可以针对,各位读者可自己选择域名进行测试。
主要注意的地方:
1)dnsmap不能指定用于查询的DNS服务器,所以它会使用系统当前配置的DNS。
2)比较知名的DNS服务器一般都会对DNS查询流量进行限制,如8.8.8.8/8.8.4.4,尽量不要使用。