1.工具概述
凭据和API可能会泄露在公司的公共存储库或github公司的用户的存储库中,GSIL用于实时监控GitHub敏感信息泄露,并发送告警通知
2.安装
git clone git@github.com:FeeiCN/GSIL.git
pip install -r requirements.txt
官方给的requirements.txt容易发生错误,如果报错,需要在下面的pip包列表中手动进行安装
pip包(官方):
beautifulsoup4==4.6.0
PyGithub==1.35
IPy==0.83
tld==0.7.9
html5lib==0.999999999
requests>=2.20.0
colorlog==3.1.0
Jinja2==2.11.3
pyyaml
3.配置
复制config.gsil.cfg.example并重命名config.gsil.cfg,这是告警邮箱和Github配置
[mail]
host : smtp.qq.com
port : 25
mails : your_mail
from : test1234@gsil.com
# 注意QQ邮箱的密码为QQ邮箱的key,而不是邮箱登录密码
password : your_password
# to这是配置接受邮件的邮箱地址,cc则是邮件抄送的接受地址
to : 3390205563@qq.com
cc : 7klhsgsq@linshiyouxiang.net
[github]
# 扫描到的漏洞仓库是否立刻Clone到本地(~/.gsil/codes/)
# 此选项用作监控其它厂商,避免因为仓库所有者发现后被删除
clone: false
# GitHub Token用来调用相关API,多个Token使用逗号(,)分隔
# GitHub已调整最新的速度限制,请求数量大幅降低,单账户多Token将共享限速
# 建议你根据关键词数量配置多个GitHub账户的Token以避免超速
tokens : your_token # https://github.com/settings/tokens
复制rules.gsil.yaml.example并重命名rules.gsil.yaml,这是扫描规则的配置,例如,收集蘑菇街资产:
{
# 一级分类,一般使用公司名,用作开启扫描的第一个参数(python gsil.py mogujie)
"mogujie": {
# 二级分类,一般使用产品线
"mogujie": {
# 公司内部域名(内网域名)
"\"mogujie.org\"": {
# mode/ext默认可不填
"mode": "normal-match",
"ext": "php,java,python,go,js,properties"
},
# 公司代码特征
"copyright meili inc": {},
# 内部主机域名
"yewu1.db.mogujie.host": {},
# 外部邮箱
"mail.mogujie.com": {}
},
"meilishuo": {
"meilishuo.org": {},
"meilishuo.io": {}
}
}
}
规则的字段含义:
再例如,查看Github所以泄露的OSS存储桶信息:
{
"oss": {
"oss": {
"AccesskeySecret AccessKeyId oss": {
"mode": "normal-match",
"ext": "php,java,python,go,js,properties"
}
}
}
}
4.用法
首先,测试一下github token有效性:
python gsil.py --verify-tokens
启动扫描(以上文oss存储桶泄露的规则为例):
python gsil.py oss
在默认情况下该工具只会再搜素结果中匹配前200项的内容,但我们可以修改文件来更改搜索的范围页数等:
正在扫描:
邮件接收到结果:
发现一处真实泄露:
可以使用OSS-Browser进行连接: