
Sub404 是一款用 Python 编写的工具,用于检测子域名接管漏洞的可能性,并且由于采用异步处理,速度非常快。
在信息收集过程中,你可能会得到大量子域名(例如超过 1 万个)。用传统 requests 或 urllib 方法逐一测试非常缓慢,几乎不可行。使用 Sub 404 可以更快地自动化完成这个任务。Sub 404 使用 aiohttp/asyncio,使工具具备异步处理能力,速度更快。
Sub 404 从文本文件读取子域名列表,检查返回 404 Not Found 状态码的 URL,同时获取 CNAME(规范名称),并移除 CNAME 中包含目标域名的 URL。如果你没有目标子域名,它还会结合 subfinder 和 sublist3r(子域名枚举工具)的结果,因为两个工具总比一个好。但使用此功能需在系统中预先安装 sublist3r 和 subfinder。Sub 404 可在 5 分钟内检测 7K 个子域名。
- 快速(异步处理)
- 结合另外两个工具提高效率
- 将结果保存至文本文件以备后续参考
- 嗯,就这些,没什么特别的!
注意:仅适用于 Python 3.7 及以上版本
另一种方式,也可以构建 Docker 镜像,这样无需安装任何前置依赖。
$ docker build -t sub404 .
$ docker run --rm sub404 -h
注意:如果已安装 subfinder 和 sublist3r。
以下命令结合 sublist3r 和 subfinder 的结果,检测接管可能性。
$ python3 sub404.py -d anydomain.com
- 如果未安装 subfinder 和 sublist3r,请将子域名放在文本文件中
$ python3 sub404.py -f subdomain.txt

此工具主要在 Linux 上测试,但也应能在其他操作系统上运行。
$ python3 sub404.py -h
这将显示工具帮助信息。以下是所有支持的参数。
此工具会获取 404 响应码 URL 的 CNAME,并移除所有 CNAME 中包含目标域名的 URL。因此误报的可能性较高。
- 报告 bug 和缺失的最佳实践
- 私信我提出新想法
- 帮助修复 bug
打个招呼 @hackw1thproxy
Ice3man543 - 使用了 Projectdiscovery 的 subfinder 工具枚举子域名
aboul3la - 使用了 aboul3la 的 sublist3r 工具枚举子域名
| 标志 | 说明 | 示例 |
|---|
| -d | 目标域名。 | python3 sub404.py -d noobarmy.tech |
| -f | 提供子域名文件路径,用于在不安装 subfinder 时检测接管。 | python3 sub404.py -f subdomain.txt |
| -p | 设置请求协议。默认值为 "http"。 | python3 sub404.py -f subdomain.txt -p https 或 python3 sub404.py -d noobarmy.tech -p https |
| -o | 将 sublist3r 和 subfinder 的唯一子域名输出到文本文件。默认值为 "uniqueURL.txt" | python3 sub404.py -d noobarmy.tech -o output.txt |
| -h | 显示此帮助信息并退出 | python3 sub404.py -h |