序言
当我们要对一个目标进行渗透时,我们往往需要去尽可能的挖掘目标可能存在的攻击面。就拿一个域名来说,当主站防御的比较死的时候,我们通常就会考虑其子站。因为相对主站而言,子站的安全性做的可能不那么全面。那么,我们该如何最大程度的将目标子域枚举出来呢?靠人工当然不行,其实在网上已经有很多专门用于挖掘子域的神器,例如 Fierce, SubBrute和Gobuster等。此外,还有一些在线网站也为我们提供了强劲的子域枚举功能,例如站长之家等。
这里小编要向大家推荐一款名为AQUATONE的子域挖掘神器。相比前面提及的枚举工具,AQUATONE不仅仅只是通过简单的子域爆破,它还会利用各种开放的互联网服务和资源,来协助其完成子域枚举任务,这也大大提高了子域的爆破率。当发现子域时,我们还可以使用AQUATONE来探测主机的公共HTTP端口,并收集响应头,HTML和屏幕截图,并能最终为我们生成一个报告,便于我们后续的分析利用。
此外,AQUATONE被分为三个独立的命令(阶段)。如果你只想使用它来进行子域的发现,而无需任何的扫描或屏幕截图,你只需单独的执行其中一条命令即可。
发现
为了向大家演示AQUATONE的用法,这里我将以corp.yahoo.com这个域名为例。之所以选择这个域名是因为Yahoo的漏洞赏金计划包含了所有* .yahoo.com的域名,所以运行这类爆破工具也是可被接受的。
启动aquatone-discover工具:
首先aquatone-discover要确定目标域的权威名称服务器。使用这些名称服务器进行解决,可确保信息是最新的,并且发现最大化。
它还可以快速测试目标域是否配置为通配符域,因为域可能会产生大量的误报。如果域结果是通配符,它将识别可能的通配符响应并将其过滤掉。corp.yahoo.com幸运的是没有配置为通配符。
在名称服务器和通配符检测之后,它继续向每个子域收集器模块询问目标域下的潜在子域。 aquatone-discover装有以下收集器模块:
Dictionary brute force (see dictionary here)
DNSDB.org
Google Transparency Report
HackerTarget
Netcraft
Shodan (requires API key)
ThreatCrowd
VirusTotal (requires API key)
收集器模块返回了总共12.282个潜在的子域,aquaone发现尝试解决。
过了一段时间,aquatone-discover已经排在榜单上,共发现了一个1.958个活的子域名。它还分析了IP,并列出了可用于进一步探测的潜在IP子网范围:
它还将发现的主机写入自动为目标域创建的aquatone评估目录中的文件。hosts.txt 包含逗号分隔的域名及其IP:
224-si1.corp.yahoo.com,207.126.224.4
224-si2.corp.yahoo.com,207.126.224.5
227-si1.corp.yahoo.com,207.126.227.4
227-si2.corp.yahoo.com,207.126.227.7
232-si1.corp.yahoo.com,207.126.232.4
232-si2.corp.yahoo.com,207.126.232.5
351-si1.corp.yahoo.com,216.145.51.4
351-si2.corp.yahoo.com,216.145.51.96
998-dmz-foundry1.corp.yahoo.com,216.145.48.25
998-dmz-foundry2.corp.yahoo.com,216.145.48.39
aa-dc1.wpe.stg.test.corp.yahoo.com,98.137.139.80
aa-dc2.wpe.stg.test.corp.yahoo.com,98.137.139.81
aaa1-1-a-gci.corp.yahoo.com,216.145.50.84
aaa1-2-a-gci.corp.yahoo.com,216.145.50.87
aahost1.stg.test.corp.yahoo.com,98.137.139.82
aahost2.stg.test.corp.yahoo.com,98.137.139.83
aahost3.stg.test.corp.yahoo.com,98.137.139.84
aahost4.stg.test.corp.yahoo.com,98.137.139.85
aape01.stg.test.corp.yahoo.com,98.137.139.93
aavm1.stg.test.corp.yahoo.com,98.137.139.87
该文件可以使用通用命令行工具进行切片和切割,并加载到您可能使用的其他工具中。hosts.json包含与JSON格式相同的信息,并由其他AQUATONE工具使用,但如果要将自定义脚本使用信息也可以使用。
扫描
发现一堆子域名corp.yahoo.com已经很有用了。我们可以在这里停下来,开始使用其他工具或手动浏览,但是让aquatone-scan我们努力寻找哪些主机可能会提供网页内容:
aquatone-scan在不同的主机上找到了一堆开放的HTTP端口。默认情况下,它将扫描以下TCP端口:80,443,880,8080和8443,它们都是非常常见的Web服务端口。您当然可以使用该—ports 选项将其更改为您自己的端口列表,或指定其中一个内置列表别名:
small:80,443
medium:80,443,880,8080,8443(与默认相同)
large:80,81,443,591,2082,2087,2095,2096,3000,8000,8001,8008,8080,8083,8443,8834,8888
huge:80,81,300,443,591,593,832,981,1010,1311,2082,2087,2095,2096,2480,3000,3128,3333,44243,4567,4711,4712,4993,5000,5104 ,5108,58,6543,7000,7396,77474,8,000,8001,8008,8014,8042,8069,8080,8081,8088,8090,8091,8118,8133,8172,8222,8243,88080,8281,8333 ,8443,8500,8834,8880,8888,8893,9000,903,49060,99080,99091,991,992,9443,99800,99981,12443,16080,18091,18092,20720,28017
使用较大的端口列表当然会让您发现更多的Web服务,但它也将增加aquatone-scan完成所需的时间。
aquatone-scan在评估目录中创建了两个新文件corp.yahoo.com:open_ports.txt是一个简单的逗号分隔的主机及其打开的端口列表:
117.104.189.54,443
124.108.98.253,443
124.108.98.254,443
203.83.249.10,443
203.83.249.4,443
203.83.249.5,443
203.83.249.8,443
203.83.249.9,443
209.131.62.228,443
209.131.62.229,443
209.131.62.230,443
209.131.62.231,443
216.145.48.148,443
216.145.48.149,443
216.145.48.150,443
216.145.48.151,443
216.145.48.152,443
216.145.48.153,443
72.30.2.113,443,80
77.238.184.150,80
98.136.163.125,80,443
98.136.205.152,443,80
98.136.205.216,443
urls.txt 包含可用于在打开的端口上请求网页的URL列表:
http://bomgar.corp.yahoo.com/
http://bouncer.gh.corp.yahoo.com/
http://buzz.corp.yahoo.com/
http://cloud.corp.yahoo.com/
http://fifa.corp.yahoo.com/
http://gemini.corp.yahoo.com/
http://guest.corp.yahoo.com/
http://insights.corp.yahoo.com/
http://ipv6.corp.yahoo.com/
http://marketingcentral.corp.yahoo.com/
http://messenger.corp.yahoo.com/
http://request.corp.yahoo.com/
http://sas.corp.yahoo.com/
http://services.corp.yahoo.com/
http://shop.corp.yahoo.com/
http://si.corp.yahoo.com/
http://wireless.corp.yahoo.com/
https://bomgar.corp.yahoo.com/
https://bouncer.gh.corp.yahoo.com/
https://fast.corp.yahoo.com/
...
这些文件用于评估的下一阶段,但也方便地加载到其他工具,如EyeWitness 或切片和切割grep, cut, awk,等。
收集
经过上面两个阶段,我们已经获取了* .corp.yahoo.com的子域名和开放端口。下面我们将进入最后一个环节,使用aquatone-gather来收集HTTP响应和截图,并将结果生成报告:
aquatone-gather会从之前AQUATONE创建的文件加载数据,并请求文本中的URL来收集HTTP响应和截图。aquatone-gather是基于Nightmare来完成繁重的请求任务和屏幕截图的。
过了一会儿,aquatone-gather完成了所有的web请求。但从截图可以看到,当中出现了部分的failed。 Nightmare和许多其他的浏览器自动化工具一样,会在某些页面处理中出现失败的情况。
最终aquatone-gather为我们打印了,成功和失败的页面处理简短摘要,以及生成了一份html格式的报告文件。但aquatone-gather为我们生成的文件远不止这些,我们查看评估文件夹可以看到,这里为我们创建了三个新的文件夹:headers, html,report和screenshots。
该headers文件夹包含来自所有页面访问的响应标题的文本文件:
root@kali:~/aquatone/corp.yahoo.com/headers# cat bomgar_corp_yahoo_com__98_136_205_152__443.txt
Cache-Control: no-cache
Connection: Keep-Alive
Content-Type: text/html; charset=utf-8
Date: Wed, 14 Jun 2017 12:22:01 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive: timeout=15, max=100
Pragma: no-cache
Server: Bomgar
Set-Cookie: ns_s=c9b9309296cf5babeb7e193125cb2cf0f3c7f13c; path=/; secure; HttpOnly
Strict-Transport-Security: max-age=31536000
Transfer-Encoding: chunked
X-Ua-Compatible: IE=edge
root@kali:~/aquatone/corp.yahoo.com/headers#
这些文件grep与其他工具非常有用,可以从安全角度快速查找有关服务器技术和其他有趣事项的信息。
该html文件夹包含所有页面访问的HTML主体:
root@kali:~/aquatone/corp.yahoo.com/html# cat bomgar_corp_yahoo_com__98_136_205_152__443.html
...
root@kali:~/aquatone/corp.yahoo.com/html#
这些文件可以用于大量的东西。稍后再说
该screenshots文件夹包含所有页面访问的PNG屏幕截图,顾名思义,
root@kali:~/aquatone/corp.yahoo.com/screenshots# ls
bomgar_corp_yahoo_com__98_136_205_152__443.png
bomgar_corp_yahoo_com__98_136_205_152__80.png
bouncer_gh_corp_yahoo_com__72_30_2_113__443.png
bouncer_gh_corp_yahoo_com__72_30_2_113__80.png
buzz_corp_yahoo_com__77_238_184_150__80.png
cloud_corp_yahoo_com__77_238_184_150__80.png
...
si_corp_yahoo_com__77_238_184_150__80.png
vpn1-1-gci_eglbp_corp_yahoo_com__203_83_249_4__443.png
vpn1-1-ptn_corp_yahoo_com__216_145_48_151__443.png
vpn1-1-ptn_eglbp_corp_yahoo_com__203_83_249_10__443.png
vpn1-2-gci_sv6_corp_yahoo_com__209_131_62_228__443.png
vpn-1-gci_hongkong_corp_yahoo_com__117_104_189_54__443.png
vpn2-1-gci_eglbp_corp_yahoo_com__203_83_249_5__443.png
vpn2-1-ptn_corp_yahoo_com__216_145_48_152__443.png
vpn2-2-gci_sv6_corp_yahoo_com__209_131_62_229__443.png
vpn-2-gci_sv6_corp_yahoo_com__209_131_62_230__443.png
wireless_corp_yahoo_com__77_238_184_150__80.png
root@kali:~/aquatone/corp.yahoo.com/screenshots#
您当然可以直接在文件夹中浏览这些屏幕截图,但是通过打开生成的HTML报告页面来分析它们可能更有用:
该报告将使用响应标题排列屏幕截图,以便您快速扫描收集到的信息以获取有趣的页面。AQUATONE将突出显示可能会增加安全性的标题,其中包含绿色背景和可能会导致红色背景的安全问题的标题。
总结
这里不是结束,只是开始。让我们继续去探索,去研究美好的世界。
欢迎关注网络安全、数据分析博客:
http://www.secange.com/
网络安全、数据分析公众号-杂术馆,扫描二维码关注