Gitrob是一款帮助发现推送到GitHub公开仓库中潜在敏感文件的工具。Gitrob会以可配置的深度克隆属于某个用户或组织的仓库,遍历提交历史,并标记与潜在敏感文件签名匹配的文件。发现结果将通过Web界面呈现,方便浏览和分析。
gitrob [选项] 目标 [目标2] ... [目标N]
-bind-address string
Web服务器绑定地址(默认 "127.0.0.1")
-commit-depth int
处理的仓库提交数量(默认 500)
-debug
输出调试信息
-github-access-token string
用于API请求的GitHub访问令牌
-load string
加载会话文件
-no-expand-orgs
处理组织时,不将成员添加到目标中
-port int
Web服务器运行端口(默认 9393)
-save string
将会话保存到文件
-silent
除错误外,抑制所有输出
-threads int
并发线程数(默认逻辑CPU数量)
默认情况下,gitrob会将会话状态保存在内存中。这意味着Gitrob关闭后,评估结果会丢失。你可以使用 -save 选项将会话保存到文件:
gitrob -save ~/gitrob-session.json acmecorp
Gitrob会将所有收集到的信息以特殊JSON文档格式保存到指定文件路径。该文件可以在以后再次加载浏览,与其他分析人员共享,或解析以进行与其他工具和系统的自定义集成。
可以通过 -load 选项加载存储在文件中的会话:
gitrob -load ~/gitrob-session.json
Gitrob将启动其Web界面并提供分析结果。
每个版本均提供预编译版本,或者你可以使用此仓库中的最新源代码自行构建二进制文件。
确保你有一个正确配置的 Go >= 1.8 环境,并且 $GOPATH/bin 已在你的 $PATH 中
$ go get github.com/michenriksen/gitrob
此命令将下载gitrob,安装其依赖,编译它,并将 gitrob 可执行文件移动到 $GOPATH/bin。
Gitrob需要一个GitHub访问令牌才能与GitHub API交互。在 创建个人访问令牌 后,将其保存在 .bashrc 或类似的shell配置文件的环变量中:
export GITROB_ACCESS_TOKEN=deadbeefdeadbeefdeadbeefdeadbeefdeadbeef
或者,你也可以使用 -github-access-token 选项指定访问令牌,但要注意命令行历史记录!