概述
:small_blue_diamond:
用法
:small_blue_diamond:
贡献
SubScraper 是一个子域名枚举工具,使用多种技术来发现给定目标的子域名。子域名枚举在渗透测试和漏洞赏金猎人中尤其有用,可以揭示组织的攻击面。
根据应用的 CMD 参数,SubScraper 可以解析 DNS 名称、请求 HTTP(S) 信息,并在枚举过程中执行 CNAME 查找以寻找劫持机会。这有助于识别后续步骤并发现利用模式。
.txt 或 STDIN 读取。.txt 或 .csv 格式的输出文件。
以下命令可用于在 Windows、Linux 和 MacOS 上安装 SubScraper:
git clone https://github.com/m8sec/subscraper
cd subscraper
pip3 install -r requirements.txt
使用 Poetry 安装和运行 SubScraper:
git clone https://github.com/m8sec/subscraper
cd subscraper
poetry install
poetry run subscraper -h
你可以构建一个 Docker 镜像并从 Docker 运行 SubScraper:
git clone https://github.com/m8sec/subscraper
cd subscraper
docker build -t m8sec/subscraper .
# 显示帮助信息
docker run --rm m8sec/subscraper
# 示例:扫描一个站点
docker run --rm m8sec/subscraper -d example.com
使用位于 ~/.config/subscraper/config.json 的配置文件来存储 API 密钥,以便重复使用。
如果从 v4.0.0 之后更新到新版本,使用 -update 参数来拉取配置文件的副本并确保兼容性 - 注意:这将删除任何现有的密钥条目。
可以使用 -ls 命令行参数查看完整的模块列表:
bevigil - BeVigil OSINT API,用于从移动应用中抓取子域名(需要 API 密钥)
crt.sh - 使用 cert.sh 进行子域名枚举。
virustotal - 在 VirusTotal 上查找子域名(需要 API 密钥)
dnsrepo - 无需 API 密钥解析 dnsrepo.noc.org - 150 条结果限制
chaos - Project Discovery 的 Chaos(需要 API 密钥)
certspotter - 使用 Certspotter API 收集子域名
bufferover - 查询 Bufferover.run API(需要 API 密钥)
alienvault - 使用 AlienVault OTX 查找子域名
redhuntlabs - RedHunt Labs 侦察 API(需要 API 密钥)
archive - 使用 archive.org 查找子域名。
dnsdumpster - 使用 DNS Dumpster 枚举子域名。
censys.io - 通过 censys.io SSL 证书查找收集子域名。(需要 API 密钥)
shodan - 使用 Shodan 获取子域名(需要 API 密钥)
SubScraper 选项:
-debug 启用调试日志
-update 更新配置文件(将删除现有条目)
-config CONFIG 覆盖默认配置位置
-silent 仅输出子域名
-threads THREADS, -T THREADS 枚举的最大线程数(默认 65)。
-t TIMEOUT 设置连接超时(默认 3 秒)
-d DOMAIN, --domain DOMAIN 目标域名输入(域名、.txt、STDIN 等)
模块选项:
-ls 列出 SubScraper 枚举模块。
-m MODULES 按名称或组执行模块(默认 all)。
-module-only 仅执行模块,不进行暴力破解
暴力破解选项:
-w WORDLIST 用于 DNS 暴力破解的自定义字典。
-ns NS 逗号分隔的域名服务器列表
枚举选项:
-r, -resolve 为每个识别的子域名解析 IP 地址。
-c, -cname 执行 CNAME 查找以检查子域名劫持
-http 探测活跃的 HTTP 服务。
-http-port HTTP_PORT 要检查的 HTTP 端口,逗号分隔(默认 80,443)
输出选项:
-nc, -no-color 禁用颜色输出
-active 仅报告已解析 IP 的活跃子域名
-csv 创建 CSV 输出报告
-o REPORT 输出文件
python3 subscraper.py -d example.com -resolve -http -module-only
python3 subscraper.py -d example.com -cname -m none -o sub_report.csv -csv
cat domains.txt | python3 subscraper.py -active -silent
通过以下方式为项目做出贡献: