ahmetartuc/DigHub

GitHub: ahmetartuc/DigHub

DigHub 是一款基于 Go 的 GitHub dorking CLI 工具,用于自动化检测公开仓库中暴露的密钥、凭证和敏感文件。

Stars: 3 | Forks: 0

# DigHub [![Go Version](https://img.shields.io/badge/Go-1.21+-00ADD8?style=for-the-badge&logo=go)](https://go.dev) [![License](https://img.shields.io/badge/License-MIT-blue.svg?style=for-the-badge)](LICENSE) [![GitHub Stars](https://img.shields.io/github/stars/ahmetartuc/dighub?style=for-the-badge)](https://github.com/ahmetartuc/dighub/stargazers) Dighub 是一款强大的 CLI 工具,通过执行高级 GitHub dorking 来检测公开代码仓库中暴露的密钥、凭证、webhook 和敏感文件。借助并发扫描、多种输出格式以及智能过滤功能,Dighub 可以帮助安全研究人员和 DevOps 团队高效地识别安全漏洞。 ## 功能 - 🚀 **并发扫描** - 最多支持 20 个并行 worker,扫描速度提升 10 倍 - 🎯 **智能过滤** - 按优先级(high/medium/low)过滤,支持包含/排除模式 - 📊 **多种输出格式** - Terminal、JSON、CSV、HTML 报告 - 🎨 **精美的终端输出** - 带进度条的彩色输出 - ⚡ **速率限制处理** - 自动重试并智能计算等待时间 - 🔍 **100+ Dork 模式** - 全面检测 AWS、GitHub、SSH key、数据库、webhook 等 - 📈 **详细的统计数据** - 按优先级和类别跟踪检测结果 - 🎛️ **灵活的配置** - 提供丰富的 CLI 标志供自定义 ## 安装 ### 从源码安装 ``` git clone https://github.com/ahmetartuc/dighub.git cd dighub go mod download go build -o dighub sudo mv dighub /usr/local/bin/ ``` ### 使用 Go Install ``` go install github.com/ahmetartuc/dighub@latest ``` ## 快速入门 ### 基本用法 ``` # 扫描 organization dighub -org -token # 扫描 user dighub -user -token ``` ### 高级用法 ``` # 仅高优先级 findings,保存为 JSON dighub -org myorg -token ghp_xxx -priority high -output json # 使用 10 个 worker 进行并发扫描 dighub -org myorg -token ghp_xxx -workers 10 # 过滤特定 patterns dighub -org myorg -token ghp_xxx -include "AWS,GitHub" -exclude "backup,log" # 导出为 HTML 报告 dighub -org myorg -token ghp_xxx -output html -out-file report.html # Quiet 模式(仅 URL) dighub -org myorg -token ghp_xxx -quiet # Verbose 模式(详细输出) dighub -org myorg -token ghp_xxx -verbose ``` ## 命令行选项 ### 必需标志 ``` -org, -o GitHub organization to scan -user, -u GitHub user to scan (alternative to org) -token, -t GitHub Personal Access Token (required) ``` ### 输出选项 ``` -output, -f Output format: terminal, json, csv, html (default: terminal) -out-file, -w Output file path (auto-generated if not specified) -quiet, -q Quiet mode - only show matches -verbose, -v Verbose output with detailed information -no-color, -n Disable colored output ``` ### 过滤选项 ``` -priority, -p Priority level: all, high, medium, low (default: all) -include, -i Include specific dorks (comma-separated patterns) -exclude, -e Exclude specific dorks (comma-separated patterns) ``` ### 性能选项 ``` -workers, -W Number of concurrent workers (1-20, default: 5) -rate-limit, -r Requests per minute (default: 30) -delay, -d Delay between requests in seconds (default: 2) ``` ## Dork 类别 Dighub 包含用于检测以下内容的 dork: ### 高优先级 🔴 - **AWS Credentials** - Access key、Secret key、Session token - **GitHub Tokens** - Personal access token、OAuth token - **SSH Keys** - 私钥(RSA、DSA、Ed25519) - **私钥和证书** - PEM 文件、key 文件 - **数据库凭证** - 连接字符串、密码 - **支付网关密钥** - Stripe、PayPal、Braintree - **API Keys** - OpenAI、Cloudflare、Vercel 等 ### 中优先级 🟡 - **Webhooks** - Discord、Slack、Teams、Office 365 - **邮件服务** - SendGrid、Mailgun、SMTP 凭证 - **云服务** - Firebase、Google Services、Azure - **CI/CD 配置** - GitHub Actions、Travis、GitLab CI - **基础设施** - Terraform、Kubernetes 配置 ### 低优先级 🔵 - **配置文件** - 设置、属性、ini 文件 - **日志文件** - Debug 日志、Error 日志 - **备份文件** - SQL 转储、数据库备份 - **历史文件** - Bash history、zsh history ## 输出格式 ### Terminal 输出(默认) 带有颜色的、分组整齐的输出,按优先级分组并带有进度条。 ### JSON 输出 ``` { "scan_info": { "target": "myorg", "scan_date": "2024-01-14T...", "duration": "5m23s", "total_dorks": 100 }, "summary": { "total_matches": 45, "unique_files": 23, "high_priority": 12, "medium_priority": 20, "low_priority": 13 }, "findings": [...] } ``` ### CSV 输出 包含所有检测详情的结构化 CSV,方便在电子表格中进行分析。 ### HTML 输出 美观且具有交互性的 HTML 报告,包含: - 带有统计信息的执行摘要 - 颜色编码的优先级徽章 - 可排序的检测结果 - 指向 GitHub 文件的直接链接 - 响应式设计 ## GitHub Token 设置 1. 前往 [GitHub Settings → Developer Settings → Personal Access Tokens](https://github.com/settings/tokens) 2. 点击“Generate new token (classic)” 3. 选择范围:`public_repo`(仅适用于公开仓库) 4. 复制 token(以 `ghp_` 开头) 5. 将其与 `-token` 标志结合使用 ## 性能提示 1. **使用并发 worker** 加快扫描速度: dighub -org myorg -token xxx -workers 10 2. **按优先级过滤** 以专注于关键发现: dighub -org myorg -token xxx -priority high 3. **使用特定的包含项** 来定位重要目标: dighub -org myorg -token xxx -include "AWS,GitHub,SSH" 4. **根据您的 token 限制调整速率限制**: dighub -org myorg -token xxx -rate-limit 50 -delay 1 ## 示例 ### 示例 1:快速安全审计 ``` dighub -org mycompany -token ghp_xxx -priority high -output html ``` ### 示例 2:导出 JSON 格式的全面扫描 ``` dighub -org mycompany -token ghp_xxx -workers 10 -output json -out-file security-audit.json ``` ### 示例 3:专注查找 AWS Credentials ``` dighub -org mycompany -token ghp_xxx -include "AWS" -verbose ``` ### 示例 4:排除误报 ``` dighub -org mycompany -token ghp_xxx -exclude "test,example,demo" ``` ## 安全最佳实践 1. **切勿提交密钥** - 使用环境变量或密钥管理服务 2. **立即轮换暴露的凭证** - 如果 Dighub 发现了密钥,请立即轮换 3. **使用 .gitignore** - 防止将敏感文件提交到仓库 4. **启用 GitHub secret scanning** - GitHub 的内置保护机制 5. **定期审计** - 定期在您的仓库上运行 Dighub ## 📋 扫描结果解读 ### 高优先级发现 🔴 **需要采取行动**:立即轮换/撤销这些凭证 - 可直接访问关键系统 - 可能导致数据泄露或服务中断 ### 中优先级发现 🟡 **需要审查**:评估风险并采取适当的行动 - 可能提供间接访问权限或导致信息泄露 - 应将其从公开仓库中移除 ### 低优先级发现 🔵 **最佳实践**:进行清理以保持安全卫生 - 通常是配置文件或不太敏感的数据 - 仍应进行审查,不需要时将其移除 ### 添加新的 Dork 要添加新的 dork 模式,请编辑 `internal/dorks/dorks.go`: ``` {Pattern: "filename:.env NEW_SECRET", Priority: PriorityHigh, Category: "Category", Description: "Description"}, ``` ## 📄 许可证 本项目采用 MIT 许可证授权 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。 ## ⚠️ 免责声明 **本工具仅供授权的安全研究和教育目的使用。** - 仅在您拥有测试权限的代码仓库和组织上使用 Dighub - 请勿用于恶意目的或未经授权的访问 - 作者不对滥用本工具的行为负责 - 务必遵守适用法律和 GitHub 的服务条款 - 尊重速率限制和 API 使用政策 **用 ❤️ 为安全社区打造** 如果您觉得此工具实用,请考虑在 GitHub 上给它点个 ⭐!
标签:DevSecOps, EVTX分析, Go, Ruby工具, StruQ, 上游代理, 对抗攻击, 敏感信息检测, 日志审计, 漏洞探测