rafabd1/SecretHound

GitHub: rafabd1/SecretHound

一款基于 Go 的命令行敏感信息扫描工具,通过丰富的正则规则库和多线程架构,在网页、本地文件和目录中快速发现泄露的密钥与凭据。

Stars: 22 | Forks: 4

# SecretHound ![Go Version](https://img.shields.io/github/go-mod/go-version/rafabd1/SecretHound) ![Release](https://img.shields.io/github/v/release/rafabd1/SecretHound?include_prereleases) ![Build Status](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/01fd7a5012185244.svg) ![License](https://img.shields.io/badge/license-MIT-blue.svg) ![GitHub stars](https://img.shields.io/github/stars/rafabd1/SecretHound?style=social) ![Go Report Card](# SecretHound ![Go Version](https://img.shields.io/github/go-mod/go-version/rafabd1/SecretHound) ![Release](https://img.shields.io/github/v/release/rafabd1/SecretHound?include_prereleases) ![Build Status](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/01fd7a5012185244.svg) ![License](https://img.shields.io/badge/license-MIT-blue.svg) ![GitHub stars](https://img.shields.io/github/stars/rafabd1/SecretHound?style=social) ![Go Report Card# SecretHound ![Go 版本](https://img.shields.io/github/go-mod/go-version/rafabd1/SecretHound) ![发布版](https://img.shields.io/github/v/release/rafabd1/SecretHound?include_prereleases) ![构建状态](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/01fd7a5012185244.svg) ![许可证](https://img.shields.io/badge/license-MIT-blue.svg) ![GitHub stars](https://img.shields.io/github/stars/rafabd1/SecretHound?style=social) ![Go 报告卡](https://goreportcard.com/badge/github.com/rafabd1/SecretHound)

一个强大的 CLI 工具,专为在文件、网页和其他文本源中查找 Secret 而设计。

## 功能特性 - **多源扫描**:处理远程 URL、本地文件以及整个目录。 - **丰富的 Pattern 库**:超过 500 个正则表达式 Pattern(目前默认目录中有 555 个),可识别各种类型的 Secret,包括 API 密钥(AWS、Google Cloud、Stripe 等)、认证 Token(JWT、OAuth、Bearer)、数据库凭据、私钥、PII(电子邮件、电话)、Web3 Secret(加密货币地址、私钥)等。 - **URL/域名提取模式**:专属模式(`--scan-urls`),用于高效地从数据源中仅提取 URL 和域名 Pattern。 - **灵活的 Pattern 控制**:通过包含或排除特定的 Pattern 分类(例如 `--include-categories aws,pii`)来微调扫描。 - **基于 YAML 的 Pattern**:Pattern 现已在 `core/patterns/default_patterns.yaml` 中进行管理,更易于维护和扩展。 - **香农熵验证**:类似 Token 的 Pattern 可强制执行熵阈值以减少误报。 - **混合上下文评分**:检测置信度现在结合了熵、上下文信号和可复用的 Pattern 规则,而不是仅依靠硬性关键词过滤。 - **并发处理**:快速的多线程架构,实现高效扫描。 - **域名感知调度**:智能分配请求,在扫描远程 URL 时避免触发速率限制。 - **WAF/速率限制规避**:处理常见 Web 安全防护措施的策略。 - **上下文分析**:通过分析周围的代码和上下文来减少误报。 - **实时进度**:带有进度条和统计数据的实时更新(可在 `--no-progress` 或 `--silent` 模式下禁用)。 - **多种输出格式**:以标准文本、JSON 或原始值的形式输出结果。支持新的分组格式(`--group-by-source`)用于 TXT 和 JSON 输出,按源 URL/文件对发现结果进行组织。 ## 安装说明 ### 从源码安装 ``` # 克隆 repository git clone https://github.com/rafabd1/SecretHound.git cd SecretHound # 安装 dependencies go mod download # 构建 binary go build -o secrethound ./cmd/secrethound # 可选:移动到 path (Linux/macOS) sudo mv secrethound /usr/local/bin/ # 可选:添加到 PATH (Windows - 以管理员身份在 PowerShell 中运行) # Copy-Item .\secrethound.exe C:\Windows\System32\ ``` ### 使用 Go Install 安装 ``` go install github.com/rafabd1/SecretHound/cmd/secrethound@latest ``` ### 二进制发布版 您可以从[发布页面](https://github.com/rafabd1/SecretHound/releases)下载适用于您平台的预构建二进制文件。 ## 快速入门 扫描单个 URL: ``` secrethound https://example.com/script.js ``` 扫描多个 URL: ``` secrethound https://example.com/script1.js https://example.com/script2.js ``` 从 URL 列表扫描: ``` secrethound -i url-list.txt ``` 扫描本地文件: ``` secrethound -i /path/to/file.js ``` 扫描整个目录: ``` secrethound -i /path/to/directory ``` 将结果保存到文件: ``` secrethound -i url-list.txt -o results.txt ``` ## 命令行选项 SecretHound 支持以下选项: | 标志 | 描述 | 默认值 | |------|-------------|---------| | `-i, --input-file` | 输入文件(URL/路径)、目录,或作为目标参数的单个 URL/文件路径。 | - | | `-o, --output` | 结果的输出文件(默认:stdout)。格式(txt, json)根据扩展名推断。 | - | | `--raw` | 仅输出原始 Secret 值(影响 TXT 和分组的 JSON 文件输出)。 | false | | `--group-by-source` | 在 TXT 和 JSON 输出中按源 URL/文件对 Secret 进行分组。 | false | | `-t, --timeout` | HTTP 请求超时时间(以秒为单位)。 | 10 | | `-r, --retries` | HTTP 请求的最大重试次数。 | 2 | | `-c, --concurrency` | 并发 Worker 的数量。 | 50 | | `-l, --rate-limit` | 每个域名每秒的最大请求数(0 代表自动/无限制)。 | 0 | | `-H, --header` | 要添加的自定义 HTTP 标头(例如 "Authorization: Bearer token")。可多次使用。 | - | | `--insecure` | 禁用 SSL/TLS 证书验证。 | true | | `--include-categories` | 要包含的 Pattern 分类列表,以逗号分隔(例如 aws,gcp)。 | 全部启用 | | `--exclude-categories` | 要排除的 Pattern 分类列表,以逗号分隔(例如 pii,url)。 | 无 | | `--scan-urls` | URL 提取模式:仅扫描 URL/Endpoint Pattern(覆盖分类过滤器)。 | false | | `--patterns-file` | 用于替换内嵌默认值的自定义 YAML Pattern 文件路径。 | - | | `--max-file-size` | 要扫描的最大文件大小,以 MB 为单位(0 代表无限制)。 | 0 | | `--list-patterns` | 列出可用的 Pattern 分类和 Pattern,然后退出。 | false | | `-v, --verbose` | 启用详细日志输出。 | false | | `-n, --no-progress` | 禁用进度条显示。 | false | | `-s, --silent` | 静默模式(抑制进度条和信息日志)。 | false | ## 文档 有关更详细的信息,请参阅[文档目录](docs/): - [使用示例](docs/USAGE.md) - 详细的使用示例 - [技术细节](docs/TECHNICAL.md) - 内部架构与设计 - [支持的 Secret](docs/SUPPORTED_SECRETS.md) - 检测到的 Secret 类型列表 - [更新日志](CHANGELOG.md) - 查看最新更新和版本历史 ## 许可证 本项目基于 MIT 许可证授权 - 详见 [LICENSE](LICENSE) 文件。 第三方适配的 Pattern 内容记录在 [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) 中,包括导入/改编的正则表达式 Pattern 源的归属和许可证条款。
标签:API密钥, AWS密钥, EVTX分析, Golang, JWT令牌, PII检测, Shannon熵, StruQ, WAF绕过, Web3安全, YAML配置, 云安全监控, 关键词提取, 凭证审计, 多平台, 大数据, 安全助手, 安全编程, 数据库密码, 数据投毒, 数据泄露, 数据防泄漏DLP, 文档结构分析, 日志审计, 正则匹配, 白盒测试, 目录扫描, 网络安全, 隐私保护, 静态分析, 黑盒测试