DFC302/waybackwhen

GitHub: DFC302/waybackwhen

一款整合 Wayback Machine、Common Crawl、VirusTotal 等多个被动数据源、对目标域名进行历史 URL 聚合与去重的安全侦察工具。

Stars: 0 | Forks: 0

# waybackwhen 一个多源被动 URL 枚举工具,可一次性聚合来自 Wayback Machine、Common Crawl、AlienVault OTX、URLScan、VirusTotal 等平台的历史端点。 ## 它的功能 对目标域名运行五个被动工具,并将结果合并为一个去重后的输出文件。适用于在不直接接触目标的情况下进行表面映射、端点发现和参数挖掘。 **涵盖的数据源:** | 工具 | 数据源 | |------|---------| | waybackurls | Wayback Machine | | gau | Wayback Machine, Common Crawl, AlienVault OTX, URLScan | | waymore | Wayback Machine, URLScan, VirusTotal, Common Crawl | | urlfinder | Wayback Machine, Common Crawl | | paramspider | Wayback Machine (侧重于参数) | **工具并发性:** `gau` 和 `urlfinder` 并行运行(不同的后端)。`waybackurls`、`waymore` 和 `paramspider` 按顺序运行,以避免同时过度请求 Wayback CDX API。 ## 安装说明 ### 前置依赖 安装 Go 工具: ``` go install github.com/tomnomnom/waybackurls@latest go install github.com/lc/gau/v2/cmd/gau@latest go install github.com/projectdiscovery/urlfinder/cmd/urlfinder@latest ``` 安装 waymore: ``` git clone https://github.com/xnl-h4ck3r/waymore.git ~/tools/waymore pip install -r ~/tools/waymore/requirements.txt ``` 安装 paramspider: ``` pip install paramspider ``` 安装 tldextract(`--apex` 参数必需): ``` pip install tldextract ``` ### 安装 waybackwhen ``` git clone https://github.com/DFC302/waybackwhen.git cd waybackwhen chmod +x waybackwhen sudo cp waybackwhen /usr/local/bin/ # optional: add to PATH ``` ### 验证设置 ``` waybackwhen --check ``` 这会打印一个状态表,显示哪些工具已安装及其位置: ``` waybackwhen — tool check TOOL STATUS PATH ----------------------------------------------- waybackurls [OK] /home/user/go/bin/waybackurls gau [OK] /home/user/go/bin/gau urlfinder [OK] /home/user/go/bin/urlfinder paramspider [OK] /usr/local/bin/paramspider waymore [OK] /home/user/tools/waymore/waymore.py python3 [OK] /usr/bin/python3 tldextract [OK] /usr/lib/python3/dist-packages/tldextract ``` 缺失的工具会在运行时被静默跳过——如果某个工具不存在,脚本不会崩溃,只是不会提供相应的结果。 ## 用法 ``` waybackwhen [options] [domain] ``` ### 选项 | 参数 | 完整形式 | 描述 | |------|-----------|-------------| | `-e` | `--exclude` | 从所有结果中过滤掉静态资源(图片、字体、CSS、JS 库等) | | `-a` | `--apex` | 去除子域名,转而针对已注册的顶级域名运行所有工具 | | `-c` | `--check` | 检查已安装的工具及其位置,然后退出 | | `-s TOOLS` | `--skip TOOLS` | 要跳过的工具的逗号分隔列表(例如 `waymore` 或 `gau,waybackurls`) | | `-f FILE` | `--file FILE` | 从文件中读取域名(每行一个) | | `-p N` | `--parallel N` | 并发处理的域名数量(默认:1) | | `-l FILE` | `--log FILE` | 将带有时间戳的运行日志写入 FILE(如果缺少则自动添加 `.log` 扩展名) | **用于 `--skip` 的有效工具名称:** `waybackurls`、`gau`、`urlfinder`、`waymore`、`paramspider` ### 输入方式 **单个域名:** ``` waybackwhen example.com ``` **从文件读取:** ``` waybackwhen -f domains.txt ``` **从标准输入读取:** ``` cat domains.txt | waybackwhen ``` ## 示例 **针对单个域名的基础运行:** ``` waybackwhen example.com ``` **针对子域名运行,但提取顶级域名级别的记录:** ``` waybackwhen --apex api.example.com # 剥离至 example.com 并对其运行所有工具 ``` **排除静态资源(为端点挖掘提供更简洁的输出):** ``` waybackwhen --exclude example.com ``` **并发运行多个域名并记录日志:** ``` waybackwhen -f domains.txt -p 5 -l run.log ``` **跳过较慢的工具以加快运行速度:** ``` waybackwhen --skip waymore example.com ``` **跳过多个工具:** ``` waybackwhen --skip gau,waybackurls example.com ``` **完整组合 —— 顶级域名、排除、跳过、并发、日志:** ``` waybackwhen -f subdomains.txt --apex --exclude --skip waymore -p 3 -l hunt.log ``` ## 输出 每个域名都会在当前目录下生成一个以该域名命名(点替换为下划线)的 `.wbw` 文件: ``` example_com.wbw api_example_com.wbw ``` 文件每行包含一个 URL,经过排序和去重。如果某个域名返回零结果,输出文件将被自动删除。 **输出示例:** ``` https://example.com/api/v1/users https://example.com/login?redirect=/dashboard https://example.com/search?q=FUZZ https://example.com/wp-login.php ``` ## 注意事项 - **Apex 参数与多段 TLD:** `--apex` 使用 `tldextract`,它能正确处理复杂的 TLD(例如 `api.example.co.uk` → `example.co.uk`)。如果未安装 `tldextract`,则回退为两段式拆分。 - **paramspider 输出:** paramspider 会将参数值替换为 `FUZZ` 占位符(例如 `?id=FUZZ`)。这是有意为之——它可以清晰地提取带有参数的端点。 - **速率限制:** 出于设计,waybackurls、waymore 和 paramspider 都会按顺序查询 Wayback CDX API。并发运行多个域名(`-p`)会成倍增加查询量——请设置合理的并发值。 - **waymore 配置:** 当配置了 URLScan 和 VirusTotal 的 API key 时,waymore 会返回明显更多的结果。有关设置,请参阅 [waymore 的 README](https://github.com/xnl-h4ck3r/waymore)。
标签:GitHub, Snort++, 实时处理, 应用安全, 攻击面挖掘, 被动扫描, 资产测绘, 逆向工具