michenriksen/aquatone

GitHub: michenriksen/aquatone

Aquatone 是一款基于 Chromium 的域名/主机可视化侦察工具,通过批量截图和技术指纹分析,帮助安全人员快速了解目标的 HTTP 攻击面概况。

Stars: 5904 | Forks: 909

# AQUATONE Aquatone 是一个用于对大量主机的网站进行可视化检查的工具,便于快速了解基于 HTTP 的攻击面概况。 ## 安装说明 1. 安装 [Google Chrome](https://www.google.com/chrome/) 或 [Chromium](https://www.chromium.org/getting-involved/download-chromium) 浏览器 —— **注意:** Google Chrome 目前在 *headless* 模式下运行的结果不稳定,因此建议安装 Chromium 以获得最佳效果。 2. 下载适用于您操作系统的 Aquatone [最新版本](https://github.com/michenriksen/aquatone/releases/latest)。 3. 解压缩 zip 文件并将 `aquatone` 二进制文件移动到您 desired 的位置。您可能希望将其移动到您的 `$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 服务的端口扫描,并转换为具有正确 scheme 的 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 还支持内置端口列表的别名,以便您更轻松地使用: - **small**:80, 443 - **medium**:80, 443, 8000, 8080, 8443(与默认相同) - **large**:80, 81, 443, 591, 2082, 2087, 2095, 2096, 3000, 8000, 8001, 8008, 8080, 8083, 8443, 8834, 8888 - **xlarge**: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 旨在与各种工具良好配合。以下是一些示例: #### Amass DNS 枚举 [Amass](https://github.com/OWASP/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 应该也能与任何其他工具良好配合: - [Sublist3r](https://github.com/aboul3la/Sublist3r) - [Subfinder](https://github.com/subfinder/subfinder) - [Knock](https://github.com/guelfoweb/knock) - [Fierce](https://www.aldeid.com/wiki/Fierce) - [Gobuster](https://github.com/OJ/gobuster) #### Nmap 或 Masscan Aquatone 可以针对使用 [Nmap](https://nmap.org/) 或 [Masscan](https://github.com/robertdavidgraham/masscan) 端口扫描器扫描的主机生成报告。只需将 XML 输出提供给 Aquatone,并使用 `-nmap` 标志告诉它将输入解析为 Nmap/Masscan XML: ``` $ cat scan.xml | aquatone -nmap ``` ### 致谢 - 感谢 [EdOverflow](https://twitter.com/EdOverflow) 的 [can-i-take-over-xyz](https://github.com/EdOverflow/can-i-take-over-xyz/) 项目,Aquatone 的域名接管功能基于此。 - 感谢 [Elbert Alias](https://github.com/AliasIO) 的 [Wappalyzer](https://github.com/AliasIO/Wappalyzer) 项目的技术指纹,Aquatone 的技术指纹识别功能基于此。
标签:Chromium, EVTX分析, EVTX分析, Go语言, HTML报告生成, HTTP服务探测, Masscan, Nmap解析, 域名侦察, 多模态安全, 子域名侦测, 子域名接管, 实时处理, 密码管理, 攻击面分析, 数据统计, 无头浏览器, 日志审计, 程序破解, 端口扫描, 网站截图