copyleftdev/awesome-kai-moana

GitHub: copyleftdev/awesome-kai-moana

基于 strace 深度分析打造的高性能 Rust 侦察工具链,用 12.9MB 替代 152MB 的 Go 工具,实现更快更省资源的子域名发现、DNS 解析和 HTTP 探测。

Stars: 0 | Forks: 0

# awesome-kai-moana 这是一个精选的高性能 Rust 侦察工具集合,每个工具都源于在 syscall 层面对其 Go 前身进行 strace 分析,并重新设计以消除每一个已测量的瓶颈。没有猜测。没有过早优化。每个设计决策都可追溯到一个 `strace -c -f` 时间戳。 **12.9 MB 取代了 152 MB。相同的目标。更多的结果。更少的 syscall。** ## 舰队 三个工具。三种海洋掠食者。一条流水线。 ``` leviathan -d target.com -s | puhi --resp --recon | mano -s --title --status-code --tech-detect ``` 海怪发现它们。海鳗映射每条记录。鲨鱼吞噬它们。 ### leviathan — 子域名发现 取代 **subfinder** (ProjectDiscovery) | [GitHub](https://github.com/copyleftdev/leviathan) | 指标 | subfinder | leviathan | 变化 | |--------|-----------|-----------|-------| | 二进制大小 | 42 MB | 5.9 MB | **小 86%** | | 执行时间 (被动) | 30.4s | 4.8s | **快 6.3 倍** | | CPU 时间 | 2.58s | 0.04s | **少 64 倍** | | 发现子域名数 | 16 | 28 | **多 75%** | | 总 syscall 数 | 524,770 | 4,400 | **少 119 倍** | | Futex 调用 | 214,744 | 690 | **少 311 倍** | | nanosleep 调用 | 4,220 | 23 | **少 183 倍** | **消除的关键瓶颈:** - 每个源一个 Goroutine + 无缓冲 channel → tokio async + 有界 MPSC - 自旋等待速率限制器 → 基于定时器的 `governor` 令牌桶 - 每个源独立的 HTTP 客户端 → 共享的 `reqwest` 连接池 - IPv6 ENETUNREACH 回退浪费 → 客户端级仅 IPv4 **5 阶段流水线:** 1. 被动 OSINT 来源 (crt.sh, Wayback, AlienVault, CertSpotter, URLScan, RapidDNS, Anubis, HackerTarget) 2. DNS 记录挖掘 (SPF/DMARC/MX/NS/SOA/SRV/CNAME) + NSEC zone walking + TLS SAN 提取 3. HTTP 标头挖掘 (CSP, CORS, Location) + JavaScript 静态分析 4. 反向 DNS /24 CIDR 扫描 5. 基于发现标签的智能排列爆破 ``` # 仅被动 — subfinder 的直接替代品 leviathan -d example.com --passive -s # 完整 5 阶段深度侦察 leviathan -d example.com -s # 多域名 leviathan -d example.com,target.org -s ``` ### puhi — DNS 解析与爆破 取代 **dnsx** (ProjectDiscovery) | [GitHub](https://github.com/copyleftdev/puhi) | 指标 | dnsx | puhi | 变化 | |--------|------|------|-------| | 二进制大小 | 41 MB | 2.1 MB | **小 95%** | | 执行时间 | 1.09s | 0.10s | **快 10.3 倍** | | 发现 DNS 记录数 | 120 | 163 | **多 36%** | | 总 syscall 数 | 33,047 | 5,132 | **少 6.4 倍** | | Futex 调用 | 7,168 | 764 | **少 9.4 倍** | | epoll 调用 | 16,005 | 639 | **少 25 倍** | | nanosleep 调用 | 690 | 2 | **少 345 倍** | **消除的关键瓶颈:** - 100 个带有独立 UDP socket 的 goroutine → 单个带缓存的共享 `hickory-resolver` - 每个主机名并行查询 8 个解析器 → 单个解析器,缓存结果 - 无缓冲 channel → `buffer_unordered`,零调度开销 - 使用 `tokio::join!` 在单个任务内并行查询记录类型 **支持:** A, AAAA, CNAME, MX, NS, TXT, SOA, SRV, PTR, CAA ``` # 解析 A 记录 leviathan -d example.com -s | puhi -a # 包含响应值的所有记录类型 leviathan -d example.com -s | puhi --recon --resp # DNS 暴力破解 puhi -d example.com -w wordlist.txt -a --resp # JSON 输出 puhi -l hosts.txt --recon -j ``` ### mano — HTTP 探测与指纹 取代 **httpx** (ProjectDiscovery) | [GitHub](https://github.com/copyleftdev/mano) | 指标 | httpx | mano | 变化 | |--------|-------|------|-------| | 二进制大小 | 69 MB | 4.9 MB | **小 93%** | | 执行时间 | 1.59s | 0.25s | **快 6.4 倍** | | CPU 时间 | 1.98s | 0.04s | **少 49 倍** | | nanosleep 调用 | 1,222 | 3 | **少 407 倍** | | CPU 利用率 | 124% | 15% | **少 88% CPU** | **消除的关键瓶颈:** - `DisableKeepAlives: true` + `MaxIdleConnsPerHost: -1` → 带 keep-alive 的共享连接池 - Go 运行时调度器开销 (17 个目标占用 124% CPU) → tokio async (15% CPU) - 69MB 二进制 (wappalyzer, headless Chrome, 3 个数据库驱动) → 4.9MB,仅包含所需内容 - 每个目标查询 5 个 DNS 解析器 → 带缓存的系统解析器 **提取:** 状态码、页面标题、服务器标头、内容长度、技术指纹 (nginx, Cloudflare, WordPress, React, Django 等)、TLS 证书 (CN, SANs, 签发者)、正文哈希 (MD5, SHA-256)、行/词计数、响应时间 ``` # 基础探测 leviathan -d example.com -s | mano -s --status-code --title # 完整指纹 leviathan -d example.com -s | mano -a # 包含 TLS 的 JSON 输出 mano -l hosts.txt --json --tls-grab # 按状态码过滤 mano -l hosts.txt --mc 200,301 -s --title --tech-detect ``` ## 流水线 ``` ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ leviathan │────▶│ puhi │────▶│ mano │ │ 5.9 MB │ │ 2.1 MB │ │ 4.9 MB │ │ │ │ │ │ │ │ find subs │ │ map DNS │ │ probe HTTP │ │ 28 found │ │ 200 records │ │ 11 alive │ │ 4.8s │ │ 0.1s │ │ 0.25s │ └─────────────┘ └─────────────┘ └─────────────┘ replaces replaces replaces subfinder dnsx httpx 42 MB 41 MB 69 MB ``` **单行命令:** ``` leviathan -d hackerone.com -s | puhi --resp --recon | mano -s --title --status-code --tech-detect ``` ## 为什么侦察工具选 Rust 而不是 Go 这不是语言之争。这是测量结果。 | 测量项目 | Go (ProjectDiscovery) | Rust (Kai Moana) | |---|---|---| | **合并后二进制** | 152 MB | 12.9 MB | | **Futex 调用 (subfinder)** | 214,744 | 690 | | **epoll 调用 (dnsx)** | 16,005 | 639 | | **nanosleep 调用 (httpx)** | 1,222 | 3 | | **17 个 HTTP 探测的 CPU** | 124% | 15% | | **发现子域名数** | 16 | 28 | | **发现 DNS 记录数** | 120 | 163 | Go 运行时的 goroutine 调度器、垃圾回收器和 sysmon 线程产生的可测量开销会随着规模扩大而叠加。当你从 VPS、Lambda 函数或渗透测试期间的跳板机扫描数千个目标时,这种开销会成为瓶颈——而不是网络。 上面的每个数字都来自 `strace -c -f`。每个设计决策都可追溯到一个 syscall 计数。 ## 方法论 舰队中的每个工具都使用相同的流程构建: 1. **克隆** ProjectDiscovery 的 Go 工具 2. **构建** 二进制文件,记录大小 3. **strace -c -f** — 使用真实目标运行,捕获完整的 syscall 摘要 4. **strace -f -e trace=futex,nanosleep,connect** — 深入分析争用、休眠模式、网络行为 5. **分析** — 按执行时间识别前 5 个瓶颈 6. **映射** 每个瓶颈到一个 Rust 架构决策 7. **构建** 具有零开销 async、共享资源和最小依赖的替代品 8. **基准测试** — 在相同目标上使用相同标志进行正面交锋 9. **strace 替代品** — 验证瓶颈已消除 10. **发布** — 在 README 中包含完整的 strace 数据 没有猜测。没有“Rust 更快是因为它是 Rust”。测量、映射、消除。 ## 安装 每个工具都是独立的。按需安装: ``` # 整个 fleet git clone https://github.com/copyleftdev/leviathan.git && cd leviathan && cargo build --release && sudo cp target/release/leviathan /usr/local/bin/ && cd .. git clone https://github.com/copyleftdev/puhi.git && cd puhi && cargo build --release && sudo cp target/release/puhi /usr/local/bin/ && cd .. git clone https://github.com/copyleftdev/mano.git && cd mano && cargo build --release && sudo cp target/release/mano /usr/local/bin/ && cd .. ``` 需要 Rust 1.70+。无运行时依赖。 ## 命名 所有工具均以夏威夷海洋生物命名 —— **Kai Moana** 意为“来自大海的食物”。 | 工具 | 夏威夷语 | 英语 | 角色 | |------|----------|---------|------| | leviathan | — | 圣经海怪 | 从深处拖出子域名 | | puhi | puhi | 海鳗 | 探测 DNS 的每个角落 | | mano | mano | 鲨鱼 | 在水面吞噬 HTTP 目标 | ## 贡献 舰队遵循一条规则:**先测量,后构建。** 如果你想添加工具: 1. 选择一个 Go 侦察工具 (naabu, katana, ffuf, nuclei 等) 2. 使用真实目标运行 `strace -c -f` 3. 识别主要瓶颈 4. 构建 Rust 替代品 5. 展示正面交锋的数据 6. 以海洋生物命名 欢迎 PR。 ## 许可证 MIT — 适用于舰队中的所有工具。 ## 链接 - [leviathan](https://github.com/copyleftdev/leviathan) — 子域名发现 (取代 subfinder) - [puhi](https://github.com/copyleftdev/puhi) — DNS 解析器 (取代 dnsx) - [mano](https://github.com/copyleftdev/mano) — HTTP 探测器 (取代 httpx)
标签:DNS侦察, ESC4, GitHub, Hpfeeds, HTTP探测, OSINT, Rust, Tokio, 动态插桩, 可视化界面, 威胁情报, 子域名挖掘, 子域名枚举, 安全工具库, 实时处理, 密码管理, 底层优化, 开发者工具, 异步编程, 技术检测, 插件系统, 数据统计, 替代httpx, 替代Subfinder, 漏洞扫描前置, 端口扫描, 系统安全, 系统调用, 网络安全, 网络流量审计, 被动侦察, 轻量级工具, 隐私保护