
gitGraber 是一款用 Python3 开发的工具,用于实时监控 GitHub,搜索并发现针对不同在线服务的敏感数据,例如:Google、Amazon (AWS)、Paypal、Github、Mailgun、Facebook、Twitter、Heroku、Stripe、Twilio……

需要明确的是,gitGraber 并非设计用于检查仓库的提交历史,许多工具已经能够很好地做到这一点。gitGraber 最初是为了监控和解析 GitHub 上最新索引的文件而开发的。如果 gitGraber 发现了有趣的内容,你将通过 Slack 频道收到通知。你也可以直接在命令行中获取结果。
根据我们的经验,我们确信泄漏不仅来自组织本身,还来自服务提供商和员工,他们不一定拥有表明其为特定组织工作的“个人资料”。
正则表达式应尽可能准确。有时,你可能会有误报,欢迎贡献改进检测并添加新的正则表达式模式。
我们更倾向于减少误报,而不是为 gitGraber 可能找到但与你监控无关的每个“标准”API 密钥发送通知。
gitGraber 会在 CLI 中直接显示一些内容:GitHub 请求、状态码滥用检测(200 或 403)……如果你没有看到类似 [+] POSSIBLE FOO TOKEN FOUND 的信息,那只是因为 gitGraber 没有为你的定义关键词找到机密令牌。
当 GitHub 检测到来自你的 GitHub 令牌的大量请求时,会出现此消息。不用担心,gitGraber 可以处理这种情况,它会尝试使用在 config.py 文件中定义的另一个令牌。注意:这是一个临时限制,你不需要创建另一个令牌。
不会,为了避免这种情况,gitGraber 会将所有仓库 URL 存储在一个名为 rawGitUrls.txt 的文件中。如果某个仓库已经被 gitGraber 扫描过并发现了 API 密钥,你将不会收到通知。
你需要编辑 tokens.py 文件,并在初始化令牌时将该模式作为列表参数添加。例如,要为 MAILCHIMP 令牌添加模式 XXXX,行 tokensList.append(Token('MAILCHIMP', '\W(?:[a-f0-9]{32}(-us[0-9]{1,2}))\W')) 变为 tokensList.append(Token('MAILCHIMP', '\W(?:[a-f0-9]{32}(-us[0-9]{1,2}))\W', ['XXXX']))。
用法: gitGraber.py [-h] [-k KEYWORDSFILE] [-q QUERY] [-s] [-w WORDLIST]
可选参数:
-h, --help 显示此帮助信息并退出
-k KEYWORDSFILE, --keyword KEYWORDSFILE 指定关键字文件(-k keywordsfile.txt)
-q QUERY, --query QUERY 指定你的 GitHub 查询(-q "apikey")
-m, --monitor 通过创建 cron 作业启用对搜索查询的监控(每30分钟)
-d, --discord 启用 Discord 通知
-s, --slack 启用 Slack 通知
-tg, --telegram 启用 Telegram 通知
-w WORDLIST, --wordlist WORDLIST 创建根据 GitHub 上发现的文件名动态填充的词表
-l LIMIT_DAYS, --limit LIMIT_DAYS 将结果限制在小于 N 天前的提交
例如,要在 GitHub 上搜索特定的词,并与 keywordsfile.txt 文件中的每个词组合,然后输出到 Slack:
python3 gitGraber.py -k keywordsfile.txt -q YOURWORD -s
可以搜索特定的域名,例如,但需要用双引号括起来:
python3 gitGraber.py -k keywordsfile.txt -q \"yahoo.com\" -s
如果你想基于 GitHub 上找到的文件构建自定义词表,以便随后与你喜欢的模糊测试工具一起使用,请添加参数 -w:
python3 gitGraber.py -k keywordsfile.txt -q \"yahoo.com\" -s -w mysuperwordlist.txt
如果你想每30分钟监控你的搜索查询,可以使用 -m 标志,告诉 gitGraber 根据你的查询创建一个 cron 作业:
python3 gitGraber.py -k keywordsfile.txt -q \"yahoo.com\" -s -m
上述命令将每30分钟对你的搜索查询进行机密检测,并在发现匹配时向你发送 Slack 通知。
gitGraber 需要一些依赖项,在你的环境中安装它们:
pip3 install -r requirements.txt
在启动 gitGraber 之前,你需要修改配置文件 config.py:
GITHUB_TOKENS = ['yourToken1Here','yourToken2Here']DISCORD_WEBHOOKURL = 'https://discordapp.com/api/webhooks/7XXXX/XXXXXX'SLACK_WEBHOOKURL = 'https://hooks.slack.com/services/TXXXX/BXXXX/XXXXXXX'TELEGRAM_CONFIG = { "token": "XXXXX:xXXXXXXXXXXXXX", "chat_id": -99999999 }启动 gitGraber:python3 gitGraber.py -k wordlists/keywords.txt -q "uber" -s
目前,gitGraber 支持31种不同的令牌。所有这些检测模型(正则表达式)都存储在文件 tokens.py 中:
部分词表和正则表达式由我们创建,另一些灵感来自其他仓库/研究人员:
感谢你们的贡献和帮助,改进了 gitGraber:
本项目仅供教育和道德测试使用。未经事先相互同意而使用此工具攻击目标是违法的。开发者不承担任何责任,并且不对因使用此工具造成的任何滥用或损害负责。
| 服务 | 链接 |
|---|
| GitHub | 如何创建 GitHub API 令牌 |
| Discord | 如何创建 Discord Webhook URL |
| Slack | 如何创建 Slack Webhook URL |
| Telegram | 如何创建 Telegram 机器人 |