fahmikemall/subcollector

GitHub: fahmikemall/subcollector

一款用 Go 编写的子域名枚举工具,结合被动 API 查询与主动字典爆破,并提供子域名接管检测功能。

Stars: 4 | Forks: 0

# Subcollector Subcollector 是一个为被动和主动子域名枚举而设计的工具。它可以通过被动枚举(通过公共 API)或主动枚举(通过字典进行暴力破解)来发现目标域名的子域名。Subcollector 在设计时充分考虑了性能和易用性,为安全研究人员和渗透测试人员提供了高级功能。 ## 功能 ✨ - **被动枚举**:使用公共 API 发现子域名,无需向目标发送直接请求。🌐 - **主动枚举**:结合字典使用暴力破解技术发现子域名,并通过 worker 池和 DNS 缓存进行了优化。🔍 - **内存高效扫描**:当字典超过 10,000 行时,会自动激活流式处理技术,逐行读取字典而不是将其全部加载到内存中。💾 - **DNS 解析**:支持自定义 DNS 解析器,以提高准确性和灵活性。🎯 - **速率限制与自适应退避**:控制请求速度并根据服务器响应进行调整,以避免被检测到或被限流。⏳ - **递归枚举**:允许进行具有可配置深度的递归子域名枚举。🔄 - **子域名接管检测**:识别容易受到接管攻击的子域名(AWS、Azure、GitHub Pages 等)。⚠️ - **匿名性**:支持 HTTP 代理进行接管检测请求,以保护用户隐私。🕵️‍♂️ - **实时结果显示**:在跟踪进度的同时实时显示结果。📊 - **增强的进度可视化**:带有预计剩余时间 (ETA) 和扫描统计信息的动画进度条。📈 - **彩色输出**:使用颜色编码的控制台输出来区分结果和警告。🎨 - **多种输出格式**:将结果保存为文本或 JSON 格式以供进一步分析。📄 - **优化的性能**:实现并发 worker、批处理和 DNS 缓存以实现更快的枚举。🚀 - **数据清洗**:确保敏感数据不会在输出中意外暴露。🔒 # 选项 ## 被动扫描 | 标志 | 长标志 | 类型 | 描述 | |------|-----------|------|-------------| | `-d` | `--domain` | string | 目标域名(例如:example.com) | | `-h` | `--help` | | 被动扫描帮助 | | `-j` | `--json-output` | string | 以 JSON 格式保存结果 | | `-l` | `--list` | string | 包含域名列表的文件路径 | | `-o` | `--output` | string | 将结果保存到文件(文本格式) | | `-s` | `--show-ip` | | 显示已发现子域名的 IP 地址 | | `-S` | `--stream` | | 找到扫描结果后直接流式传输到输出文件(减少大型扫描时的内存使用量) | | `-v` | `--version` | | 显示版本信息 | ## 主动扫描 | 标志 | 长标志 | 类型 | 描述 | |------|-----------|------|-------------| | `-D` | `--depth` | int | 主动扫描的递归深度(-1 代表无限制)(默认为 1) | | `-d` | `--domain` | string | 目标域名(例如:example.com) | | `-h` | `--help` | | 主动扫描帮助 | | `-j` | `--json-output` | string | 以 JSON 格式保存结果 | | `-l` | `--list` | string | 包含域名列表的文件路径 | | `-o` | `--output` | string | 将结果保存到文件(文本格式) | | `-p` | `--proxy` | string | HTTP 请求的代理 URL(例如:http://proxy:8090) | | `-t` | `--rate-limit` | int | 速率限制(毫秒)(默认为 100) | | `-R` | `--recursive` | | 启用递归枚举 | | `-r` | `--resolvers` | strings | 自定义 DNS 解析器(例如:8.8.8.8,1.1.1.1 或文件路径) | | `-s` | `--show-ip` | | 显示已发现子域名的 IP 地址 | | `-S` | `--stream` | | 找到扫描结果后直接流式传输到输出文件(减少大型扫描时的内存使用量) | | `-T` | `--takeover` | | 启用子域名接管检测 | | `-v` | `--version` | | 显示版本信息 | | `-w` | `--wordlist` | string | 自定义字典文件路径 | | `-W` | `--workers` | int | 并发 worker 数量(默认:10) | ## 示例 1. 基本被动枚举 subcollector passive -d example.com 2. 基本主动枚举 subcollector active -d example.com 3. 包含 IP、接管检测和代理的主动枚举 subcollector active -d example.com -s -T -p http://proxy:8080 4. 包含自定义字典和输出的递归枚举 subcollector active -d example.com -w wordlist.txt -R -D 2 -o results.txt ## 安装 🛠️ 1. 确保您的系统已安装 Go。如果尚未安装,可以从[这里](https://golang.org/dl/)下载。 2. 安装 Subcollector 及其依赖项: go install github.com/fahmikemall/subcollector/cmd/subcollector@latest 或者,您可以使用此命令 go install github.com/fahmikemall/subcollector/cmd/subcollector@v1.5.0 ## 贡献 随时欢迎向 GitHub 仓库提交 issue 或 pull request。我们欢迎任何旨在提升性能、添加新接管模式或实现 API 支持的贡献!
标签:DNS缓存, DNS解析, EVTX分析, GitHub, Linux安全, PoC, Rust, 主动枚举, 代理支持, 内存优化, 匿名性, 告警, 域名安全, 子域名接管, 子域名收集器, 子域名枚举, 字典爆破, 开源项目, 数据展示, 日志审计, 暴力破解, 爬虫与API, 白帽黑客, 系统安全, 红队, 网络安全, 网络流量审计, 被动枚举, 隐私保护