Aquatone
Aquatone 是一种用于对大量主机上的网站进行可视化检查的工具,方便快速了解基于 HTTP 的攻击面。
安装
- 安装Google Chrome或Chromium浏览器——注意: Google Chrome 目前在无头模式下运行时结果不可靠,因此建议安装 Chromium 以获得最佳效果。
- 为您的操作系统下载最新版本的 Aquatone。
- 解压 zip 文件并将
aquatone
二进制文件移动到所需位置。您可能希望将其移动到$PATH
更方便使用的位置。
编译源代码
如果您出于某种原因不信任预编译的二进制文件,您也可以自己编译代码。如果您想这样做,您只能靠自己了。我不支持编译问题。祝你好运!
用法
命令行选项:
-chrome-path string
Full path to the Chrome/Chromium executable to use. By default, aquatone will search for Chrome or Chromium
-debug
Print debugging information
-http-timeout int
Timeout in miliseconds for HTTP requests (default 3000)
-nmap
Parse input as Nmap/Masscan XML
-out string
Directory to write files to (default ".")
-ports string
Ports to scan on hosts. Supported list aliases: small, medium, large, xlarge (default "80,443,8000,8080,8443")
-proxy string
Proxy to use for HTTP requests
-resolution string
screenshot resolution (default "1440,900")
-save-body
Save response bodies to files (default true)
-scan-timeout int
Timeout in miliseconds for port scans (default 100)
-screenshot-timeout int
Timeout in miliseconds for screenshots (default 30000)
-session string
Load Aquatone session file and generate HTML report
-silent
Suppress all output except for errors
-template-path string
Path to HTML template to use for report
-threads int
Number of concurrent threads (default number of logical CPUs)
-version
Print current Aquatone version
提供 Aquatone 数据
Aquatone 的设计尽可能简单易用,可以与您现有的工具集无缝集成,无需或只需极少的粘合剂。Aquatone 通过将命令的输出管道传输到工具中来启动。它并不关心管道数据的外观,因为 URL、域和 IP 地址将通过正则表达式模式匹配提取。这意味着您几乎可以将用于主机发现的任何工具的输出提供给它。
数据中的 IP、主机名和域名将接受通常用于 Web 服务的端口扫描,并转换为具有正确方案的 URL。如果数据包含 URL,则假定它们处于活动状态,不会接受端口扫描。
例子:
$ cat targets.txt | aquatone
输出
当 Aquatone 完成对目标主机的处理后,它会在当前目录中创建一堆文件和文件夹:
- aquatone_report.html:在浏览器中打开的 HTML 报告,显示所有收集到的屏幕截图和按相似性聚类的响应标头。
- aquatone_urls.txt:包含所有响应 URL 的文件。可用于输入到其他工具中。
- aquatone_session.json:包含统计数据和页面数据的文件。对自动化很有用。
- headers/:包含已处理目标的原始响应标头的文件的文件夹
- html/:包含已处理目标的原始响应主体的文件的文件夹。如果您正在处理大量主机,并且不需要将其用于进一步分析,则可以使用该
-save-body=false
标志禁用此功能以节省一些磁盘空间。 - screenshots/:包含已处理目标的 PNG 截图的文件夹
输出可以轻松压缩并与他人共享或存档。
更改输出目的地
如果您不希望 Aquatone 在当前工作目录中创建文件,您可以使用-out
标志指定其他位置:
$ cat hosts.txt | aquatone -out ~/aquatone/example.com
还可以通过定义环境变量来设置永久的默认输出目的地:
export AQUATONE_OUT_PATH="~/aquatone"
指定要扫描的端口
默认情况下,Aquatone 将使用一小组常用的 HTTP 端口扫描目标主机:80、443、8000、8080 和 8443。您可以使用以下标志将其更改为您自己的端口列表-ports
:
$ cat hosts.txt | aquatone -ports 80,443,3000,3001
Aquatone 还支持内置端口列表的别名,以方便您使用:
- 小:80, 443
- 中等:80、443、8000、8080、8443(与默认值相同)
- 大号:80、81、443、591、2082、2087、2095、2096、3000、8000、8001、8008、8080、8083、8443、8834、8888
- 特大:80、81、300、443、591、593、832、981、1010、1311、2082、2087、2095、2096、2480、3000、3128、3333、4243、4567、4711、4712、4993、5000、5104、5108、5800、6543、7000、7396、7474、8000、8001、8008、8014、8042、8069、8080、8081、8088、8090、8091, 8118、8123、8172、8222、8243、8280、8281、8333、8443、8500、8834、8880、8888、8983、9000、9043、9060、9080、9090、 9091、9200、9443、9800、9981、12443、16080、18091、18092、20720、28017
例子:
$ cat hosts.txt | aquatone -ports large
使用示例
Aquatone 的设计旨在与各种工具完美兼容。以下是一些示例:
大量 DNS 枚举
Amass是目前我首选的 DNS 枚举工具。它使用大量 OSINT 源以及主动暴力破解和巧妙排列来快速识别域上的数百甚至数千个子域:
$ amass -active -brute -o hosts.txt -d yahoo.com alerts.yahoo.com ads.yahoo.com am.yahoo.com - - - SNIP - - - prd-vipui-01.infra.corp.gq1.yahoo.com cp103.mail.ir2.yahoo.com prd-vipui-01.infra.corp.bf1.yahoo.com $ cat hosts.txt | aquatone
目前还有很多其他的 DNS 枚举工具,Aquatone 应该可以与任何其他工具配合使用:
Nmap 或 Masscan
Aquatone 可以生成使用Nmap或Masscan端口扫描器扫描的主机的报告。只需将 XML 输出提供给 Aquatone,并为其添加-nmap
标志,告诉它将输入解析为 Nmap/Masscan XML:
$ cat scan.xml | aquatone -nmap
致谢
- 感谢EdOverflow提供的can-i-take-over-xyz项目,Aquatone 的域名接管功能即基于该项目。
- 感谢Elbert Alias为Wappalyzer项目提供技术指纹,Aquatone 的技术指纹识别功能即以此为基础。