haxxm0nkey/credshound

GitHub: haxxm0nkey/credshound

一款基于 Go 的数据驱动型凭证面扫描工具,可审计本地主机上暴露的密钥与配置机密,并支持将结果导入 BloodHound 进行攻击路径可视化。

Stars: 44 | Forks: 4

# CredsHound CredsHound 是一个轻量级、数据驱动的凭证面扫描工具,使用 Go 编写。它用于审计本地主机上暴露或遗忘的应用凭证、会话 token、API 密钥和配置机密信息。 它使用 [LOLCreds](https://lolcreds.haxx.it/) 模板数据进行产品感知检查,并内置了一组高性能、厂商中立的检查规则。除了经典的云和 DevOps 产物外,CredsHound 还针对现代环境进行了全面优化,目标扫描范围涵盖了从 DBeaver 加密数据库到 AI-agent 设置(OpenCode、GitHub Copilot CLI、Hugging Face、OpenAI)的所有内容。 ### 📸 演示 #### CLI 输出 ![CredsHound CLI](https://static.pigsec.cn/wp-content/uploads/repos/cas/15/15efd3c2c783ba7366641d49ac6bb7747a9844115e3359998c92d31312d41963.png) #### BloodHound 中的攻击路径映射 ![BloodHound Graph](https://static.pigsec.cn/wp-content/uploads/repos/cas/78/784593ec893a0ca600c6b5925748e80ccac0404586b64f45a939c47f92ad735b.png) ## ⚡ 检查内容 * **环境变量**(扫描正在运行的进程环境以查找暴露的密钥)。 * **配置文件**和项目本地配置。 * **常见凭证产物**,例如 Git 凭证、Docker auth 配置、kubeconfig、shell 历史记录(`.bash_history`、`.zsh_history`、PowerShell 历史记录)、`.netrc`、`.pgpass`、私钥及类似文件。 ## 🐶 BloodHound 集成(`-bh` / `-bloodhound`) CredsHound 不会向您输出杂乱的文本日志,而是可以将本地暴露直接映射为兼容图形的 JSON。 当导入 BloodHound 后,它可以直观地展示被入侵主机或构建服务器的确切影响范围: ``` CHHost ➔ CHLocalUser ➔ CHUserProfile ➔ CHLocation ➔ CHCreds ➔ CHProduct ``` 有关导入说明、图形模型详细信息、实用的 Cypher 查询以及可选的图标指南,请参阅 [BloodHound 集成文档](docs/integrations/bloodhound.md)。 ## 📥 安装 如果已安装 Go: ``` go install github.com/haxxm0nkey/credshound/cmd/credshound@latest ``` 或者在本地构建: ``` go build -o credshound ./cmd/credshound ``` ## 🗂️ 模板 CredsHound 使用来自以下位置的 LOLCreds 数据: ``` https://github.com/haxxm0nkey/lolcreds-data ``` 下载/更新模板: ``` credshound -ut ``` 使用下载的 zip 包进行离线扫描: ``` credshound -t /path/to/lolcreds-data-main.zip . ``` 使用本地模板目录: ``` credshound -t ~/lolcreds-templates . ``` ## ⚙️ 用法 扫描当前目录以及主机级别的默认位置: ``` credshound . ``` 扫描多个根目录: ``` credshound ~/project /etc ``` 在根目录中递归搜索裸配置文件名,例如 `.env` 或 `values.yaml`: ``` credshound -recursive . ``` 仅扫描环境变量: ``` credshound -sources env ``` 写入 JSONL: ``` credshound -silent -j -o findings.jsonl . ``` 写入 BloodHound OpenGraph JSON: ``` credshound -bloodhound -o credshound-bloodhound.json . ``` 检查模板覆盖率: ``` credshound inspect-templates -t ~/lolcreds-templates ``` ## 输出 默认情况下,CLI 输出是彩色的,类似于 Nuclei 的结果: ``` [github:classic-personal-access-token] [file] [high] [/home/alice/.git-credentials:1] [token] [ghp_****abcd] [https://lolcreds.haxx.it/github#classic-personal-access-token] ``` 🔒 安全提示:结果默认会被脱敏。仅当您明确需要完整的明文值并且能够保证输出目标的安全性时,才使用 `-show-secrets` 标志。 ## 💻 开发 运行测试: ``` go test ./... ``` 交叉编译健全性检查: ``` GOOS=windows GOARCH=amd64 go test -exec=/usr/bin/true ./... ``` ## ⚠️ 安全 CredsHound 旨在对您拥有或被授权评估的系统进行防御性审计。它可能会揭示敏感的本地数据。请将扫描输出视为机密。
标签:EVTX分析, 日志审计, 时序数据库