Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
GitMonitor — 一种持续监控可能在Github上暴露的敏感信息的方式 | Kitploit
工具/GitHubGitHub/talkaboutcybersecurity/gitmonitor
OSINT (开源情报)侦察信息收集秘密检测
GitHubtalkaboutcybersecurity/gitmonitor

GitMonitor

一种持续监控可能在Github上暴露的敏感信息的方式

查看仓库
17240186年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

GitMonitor

License: GPL v3

GitMonitor

一种持续监控可能在 Github 上暴露的敏感信息的方法

概述

我知道有很多其他工具可以用于查找当前泄露在 Github 上的敏感信息,我自己也在使用其中一些。但我认为它们仍然缺少一些功能,例如:

  • 其他工具更侧重于查找已传入 Git 地址的仓库中存在的敏感信息。在我开发 GitMonitor 时,只有极少数类似工具专注于先发现需要关注的仓库、找到所有相关仓库,然后检查这些仓库中是否存在敏感信息。

  • 除了用于检查敏感信息的规则外,该工具还需要用于搜索感兴趣仓库的规则。需要考虑的仓库可能是那些包含公司或项目相关关键字的仓库。

  • 如果你是漏洞赏金猎人,你一次只会关注几个目标。但如果你是公司的安全工程师,你需要知道何时出现与公司或项目相关的仓库,并且这些仓库可能包含敏感信息。这类仓库可能出现在 Github 的任何地方,名称任意,由任何账户发布。你应该在出现此类仓库时立即收到警报(持续监控)。

  • 该工具具有灵活的报告机制。

正是出于这些原因,我创建了这个工具——GitMonitor。GitMonitor 使用两组不同的规则来查找你需要的内容。搜索规则集将搜索可能与你的组织或内部项目或其他任何内容相关的仓库,将匹配的仓库克隆到本地。然后,敏感过滤规则集检查这些仓库中是否存在敏感信息。最后,工具将通过 Slack 报告。你可以将此工具与 Cronjob 配合使用,创建一个持续监控系统,跟踪与组织相关的泄露在 Github 上的敏感信息,并通过 Slack 接收结果。

更新 2020 年 6 月 15 日: 我们已更新至 1.0 版本。该版本修复了一些错误,使 Gitmonitor 能稳定工作。如果你使用的是之前的版本,建议执行 git pull。

功能

  • 使用两组不同的规则:一组搜索规则集(yaml)用于搜索感兴趣的仓库,一组过滤规则集(正则表达式)用于检查这些感兴趣的容器是否包含敏感信息。搜索规则(yaml)和过滤规则(正则表达式)分别定义。用户可以轻松直观地定义 yaml 规则和正则表达式。

  • 搜索规则集:你可以通过使用不同的 yaml 文件创建许多不同的规则。规则允许你灵活地定义搜索仓库的方式,可以使用关键字,或者关键字与语言、文件名和扩展名的组合,也可以定义根据语言、文件名或扩展名排除仓库。关键字将在仓库名称、仓库代码以及提交中进行搜索。

  • 过滤规则集:你可以轻松添加或修改正则表达式,以查找仓库中可能存在的敏感信息。

  • 第一个匹配搜索规则集的仓库将被克隆到本地。然后,过滤规则集将检查此仓库是否存在敏感信息。检查完成后,Gitmonitor 会记录结果,并自动从本地删除该仓库以节省空间,然后继续重复此过程,直到所有相关仓库都被找到并检查完毕。

  • 通过 Slack 报告。

  • 此工具可通过 Cronjob 调度实现持续监控。

工作流程图

要求

  • Python3
  • Python3-pip
  • 已在 Ubuntu 18.04 和 MacOS 上测试。我们相信 Gitmonitor 也能在其他系统上良好运行。

设置

1. 安装依赖

> python3 -m pip install -r requirements.txt

请确保你安装了 Pyyaml 5.x 或更高版本(pip3 install --ignore-installed PyYAML)

2. 确保已在配置文件(config.ini)中配置所有必要信息

下表解释了配置文件中每个键的含义:

键描述
userGithub 用户名 - 如果已通过环境变量设置 Github 凭据,则留空
passGithub 密码 - 如果已通过环境变量设置 Github 凭据,则留空
webhooks从 GitMonitor 向 Slack 发送消息的 Webhook 令牌
rule包含搜索规则集的目录
source下载仓库的目录
log包含记录每次扫描后状态的 JSON 文件的目录,该 JSON 文件用于比较扫描结果(以识别新仓库)
start定义开始扫描的横幅和敏感过滤规则集扫描结果的横幅 - 将显示在发送到 Slack 的结果中
end定义结束扫描的横幅和搜索规则集扫描结果的横幅 - 将显示在发送到 Slack 的结果中
all定义显示所有仓库的横幅 - 将显示在发送到 Slack 的结果中

3. 定义 Github 账户凭据。有两种方法:

  • 在环境变量中定义凭据信息:
> export GIT_USERNAME=你的 Github 用户名
> export GIT_PASSWORD=你的 Github 个人密钥或密码
  • 或者在配置文件中定义凭据信息(不推荐):

    • 打开 config.ini 文件。
    • 将凭据信息填入 user 和 password 键的值。

当你在环境变量中定义凭据信息时的配置文件示例

示例配置文件

4. 编写规则(搜索规则)。将规则放在 rules 目录中

你可以创建多个不同的 yaml 文件(如规则模板)来定义多个关键字。规则文件如下图所示:

示例规则文件

5. 向 libs/regex.py 文件中添加更多正则表达式——敏感过滤规则(可选)

6. 运行 Gitmonitor

> python3 gitmonitor.py

7. 你可以使用 Cronjob 安排工具自动运行。

例如:

示例 cronjob

待办事项

  • 功能:通过邮件报告
  • 功能:将结果发送到 Elasticsearch
  • 开发:编写 setup.py
  • 开发:编写 Dockerfile

我的团队

  • Tony - 项目负责人
  • musashi137 - 核心开发

特别感谢

  • GitMAD 提供了基于正则表达式的敏感信息搜索机制

贡献

该项目的许多方面都可以改进,并在重构现有代码和实现新功能时发生重大变化。欢迎社区提供改进反馈和拉取请求。

一般来说,我们遵循“fork-and-pull”的 Git 工作流。

  1. 在 Github 上 Fork 本仓库
  2. 将项目克隆到本地
  3. 将更改提交到自己的分支
  4. 将你的工作推送到你的 Fork
  5. 提交 Pull Request,以便我们审查你的更改

注意:在发起拉取请求之前,请确保合并来自“上游”的最新内容!

捐赠

Buy Me A Coffee

下载工具