suiyideali/subx

GitHub: suiyideali/subx

基于 Go 语言和原始套接字的超高速无状态子域名枚举工具,通过每秒 10 万+ DNS 查询实现大规模资产发现,内置智能 DNS 选择、泛解析过滤和反向 DNS 查询等功能。

Stars: 0 | Forks: 0

# subx [![Go Version](https://img.shields.io/badge/go-1.23+-blue.svg)](https://golang.org) [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE) 类似 `dnsx` + `masscan` 的子域名扫描工具。使用原始套接字,每秒可进行 10 万+ DNS 查询。 _____ _ _ __ __ / ____| | | |\ \ / / | (___ | | _| | \ V / \___ \| |/ / | > < ____) | <| | / . \ |_____/|_|\_\__/_/ \_\ v0.3.3 [subx] [INF] Target: example.com [subx] [INF] Dictionary: default (739 entries) [subx] [INF] DNS Servers: [8.8.8.8 1.1.1.1 223.5.5.5] [subx] [INF] Rate: 10000 pps | Timeout: 5s | Retry: 3 | Workers: 4 [English](README-EN.md) | 简体中文 ## 特性 - ⚡ **超高速扫描** - 原始套接字,每秒 10万+ DNS 查询 - 🎯 **智能扫描** - 智能 DNS 选择 + 自适应速率控制 - 🛡️ **泛解析过滤** - 自动检测和过滤泛解析 DNS - 🔄 **反向 DNS** - IP 反查域名,支持 CIDR 段扫描 - 📚 **内置字典** - 10+ 分类,25,000+ 条目 - 💾 **进度保存** - 支持中断后恢复扫描 - 🔌 **管道友好** - 与 httpx、nuclei 无缝衔接 - 🐧 **跨平台** - macOS、Linux、Windows ## 安装 ### 快速安装(推荐) go install github.com/suiyideali/subx/cmd/subx@latest **然后添加 PATH:** export PATH=$PATH:~/go/bin ### 双模式 | 模式 | 安装方式 | 特点 | 适用场景 | |------|---------|------|---------| | **非 CGO** (默认) | `go install` | 纯 Go,无需依赖,普通用户权限 | **推荐,适合大多数用户** | | **CGO** | 源码编译 | 需要 libpcap,使用原始套接字 | 需要极致性能 | **快速选择:** - 大多数用户:直接用上面的 `go install` 命令 - 需要高性能:从[源码编译 CGO 版本](docs/INSTALL.md) 📖 **详细安装指南** → [docs/INSTALL.md](docs/INSTALL.md) ## 使用方法 # 基础扫描 sudo subx enum -d example.com # 使用大字典 sudo subx enum -d example.com -dict large # 智能 DNS + 自适应速率(推荐) sudo subx enum -d example.com --smart-dns --adaptive # 输出到文件 subx enum -d example.com -o results.txt # 静默模式(用于管道) subx enum -d example.com --silent | httpx # 恢复扫描 subx enum -d example.com --resume # 验证域名列表 subx verify -f domains.txt # 反向 DNS 查询 subx rdns -ip 8.8.8.8 subx rdns -range 192.168.1.0/24 # 扫描 + 反向 DNS sudo subx enum -d example.com --rdns ### 内置字典 | 字典 | 条目数 | 描述 | |------|--------|------| | `default` | ~25,000 | 常用子域名(默认,含 20,000 文件字典) | | `common` | ~2000 | 扩展常用列表 | | `large` | ~5000 | 所有分类合并 | | `api` | ~150 | API 端点 | | `cloud` | ~200 | 云服务(AWS、Azure、GCP 等) | | `dev` | ~250 | DevOps/CI/CD 工具 | | `infra` | ~300 | 基础设施组件 | | `web` | ~200 | Web 服务/CMS | | `db` | ~250 | 数据库/存储 | | `security` | ~300 | 安全工具 | # 使用特定字典 subx enum -d example.com -dict api subx enum -d example.com -dict cloud subx enum -d example.com -dict security ### 输出格式 | 格式 | 描述 | 扩展名 | |------|------|--------| | `txt` | 制表符分隔的文本(默认) | .txt | | `json` | JSON 数组 | .json | | `jsonl` | JSON Lines(每行一个) | .jsonl | | `csv` | 逗号分隔值 | .csv | | `simple` | 仅域名 | .txt | ## 性能对比 | 工具 | 模式 | 10万域名耗时 | 成功率 | |------|------|-------------|--------| | subx | 验证 | ~25秒 | 1397 | | massdns | 验证 | ~3分29秒 | 1396 | | dnsx | 验证 | ~5分26秒 | 1396 | *测试环境:4核 CPU,5M 带宽* ## Go SDK ### 基础用法 package main import ( "fmt" "github.com/suiyideali/subx/pkg/sdk" ) func main() { // 简单扫描 results, err := sdk.SimpleScan("example.com", []string{ "www", "api", "mail", "admin", }) if err != nil { panic(err) } for _, r := range results { fmt.Printf("%s -> %v\n", r.Domain, r.IPs) } } ### 高级用法 // 自定义配置 cfg := &sdk.Config{ Bandwidth: "10m", Timeout: 10, Retry: 5, Predict: true, } scanner, err := sdk.NewScanner(cfg) if err != nil { panic(err) } defer scanner.Close() // 流式实时获取结果 results := scanner.EnumStream("example.com", wordlist) for r := range results { fmt.Printf("发现:%s\n", r.Domain) } ## 许可证 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件 ## 致谢 - 灵感来自 [ksubdomain](https://github.com/boy-hack/ksubdomain) 和 [masscan](https://github.com/robertdavidgraham/masscan) - 使用 [gopacket](https://github.com/google/gopacket) 进行数据包操作 - DNS 协议处理使用 [miekg/dns](https://github.com/miekg/dns) ## 免责声明 本工具仅供授权的安全测试使用。用户有责任遵守适用的法律法规。
标签:CDN识别, DNS查询, EVTX分析, GitHub, Go语言, GraphQL安全矩阵, SEO, 二进制发布, 原始套接字, 反向DNS, 子域名枚举, 子域名爆破, 安全扫描器, 开源工具, 插件系统, 无状态扫描, 日志审计, 泛解析过滤, 程序破解, 系统安全, 网络安全, 隐私保护