GitHub寻找敏感信息泄露

众所周知,当今是大数据时代,大规模数据泄露事情一直在发生,从未停止过,但有些人不知道的是很多时候一些敏感信息的泄露其实是我们自己无意中造成的,然而一个小疏忽,往往却造成一系列连锁反应……
Github上敏感信息的泄露,就是一个典型的例子,Github虽然方便开发者,但其中也埋藏着一些安全隐患。

下面介绍几种常用的姿势:

01

Github之邮件配置信息泄露

很多网站及系统都会使用pop3和smtp发送来邮件,不少开发者由于安全意识不足会把相关的配置信息也放到Github上,所以如果这时候我们动用一下google搜索命令语句,构造一下关键字,就能把这些信息给找出来了。

各种姿势:

 

site:Github.com smtp
site:Github.com smtp @qq.com
site:Github.com smtp @126.com
site:Github.com smtp @163.com
site:Github.com smtp @sina.com.cn
site:Github.com smtp password
site:Github.com String password smtp……

我们也可以锁定域名搜索结合厂商域名灵活运用

例如搜百度的

site:Github.com smtp @baidu.com
02

Github之数据库信息泄露

各种姿势:

site:Github.com sa password
site:Github.com root password
site:Github.com User ID='sa';Password
03

Github之svn信息泄露

各种姿势:

site:Github.com svn
site:Github.com svn username
site:Github.com svn password
site:Github.com svn username password
04

Github之数据库备份文件

各种姿势:

site:Github.cominurl:sql

……

这个往往能收到不少好东西一个数据库备份文件从而找到后台管理员账号密码 找到地址登陆后台这样的例子有不少

05

Github之综合信息泄露

各种姿势:

site:Github.com password
site:Github.com ftp ftppassword
site:Github.com 密码
site:Github.com 内部
顺便推荐几款用于查找GitHub敏感信息泄露的工具。

GitMAD是一个用于发现Github上的敏感信息和数据泄漏的工具。通过给定关键字或域,GitMAD便会搜索Github上托管的代码,以查找是否存在匹配项。一旦找到了匹配项,GitMAD将克隆存储库并在文件中搜索一系列可配置的正则表达式。然后,GitMAD会获取这些结果,并将它们插入到数据库中供后续的查看使用。这些结果也可作为邮件警报发送。另外,GitMAD将持续运行以发现与输入关键字匹配的新存储库。

输入

除此之外,用户还可以配置每次搜索的最大结果量,搜索间隔时间以及要克隆的存储库的大小范围。有两种模式,Monitor和Discovery。Discovery模式将在每次运行时提取并搜索新结果。Monitor模式则会首先下载给定关键字/域的所有匹配项搜索它们,然后继续搜索新结果。

处理

GitMAD从上面获取结果并搜索存储库的Git历史记录。搜索历史记录以查找一组可配置的正则表达式。GitMAD还可以对历史文件的每一行进行分解,并在信息熵(Shannonentropy)中搜索匹配项。

配置文件

regex_matches.py

这是将关键字和正则表达式放在存储库内容中进行搜索的位置,只需在下面的列表中添加字典即可:

to_match =[
    {'match_regex' : r'password', 'match_type''PasswordMatch'},
    {'match_regex': r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}', 'match_type':'IPMatch'}, 
   {'match_regex': r'username', 'match_type': 'UsernameMatch'}, 
   {'match_regex': r'\b[\w.]*@[\w]*\.[\w.]*\b', 'match_type': 'EmailMatch'}
    ]

entropy_whitelist.py

这是移除Entropy功能匹配你不想要的项目位置。只需在下面的列表中添加字典即可:

r_whitelist = [{'regex':r'\b[A-Za-z][a-z]+([A-Z][a-z]*)+\b'}] # Camel Case
输出

GitMAD获取上面的结果,并将它们插入到一个数据库中,该数据库包含有关找到匹配项的文件以及存储库的信息。它还插入了匹配的字符串和匹配的行。这些结果可通过邮件警报,数据库和Web应用获得。

安装

GitMAD最初是在Windows上用Python3.6编写的。它也在Ubuntu18.04上进行了测试。

环境要求:

 

Python3.6+Pipfor Python3GitMySQL8.0
如果是Windows系统你可以直接从Oracle网站下载MySQL8.0。如果是Ubuntu18.04,其默认版本仍为5.7,因此你必须升级你的当前版本:

 

wget-c https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.debsudo dpkg -i mysql-apt-config_0.8.12-1_all.deb#select version 8.0sudo apt updatesudo apt install mysql-serversudo mysql_secure_installation

Ubuntu18.04 安装步骤

01

克隆存储库并进入到目录:

 

git clone https://github.com/deepdivesec/GitMAD.gitcd GitMAD
02

安装依赖项:

 

pip3 install -r requirements.txt
03

向MySQL添加脚本:

 

$sudo mysql -u username -pmysql> source /<path-to-gitmad>/GitMAD/github_search_db.sql
04

运行main.py并在首次运行时输入配置信息:

 

python3 /<path-to-gitmad>/GitMAD/main.py -q <keyword-to-search> [seeother options below]
05

运行Web应用:

python3 /<path-to-gitmad>/GitMAD/web_home.py6)(可选)下载并安装MySQLWorkbench与结果直接进行交互。

Ubuntu安装动图请在此处查看:https://github.com/deepdivesec/GitMAD/tree/master/GitMAD-install

已知问题

有时,无论存储库的大小如何,GitHubAPI都会返回0。该问题尚未处理,而被克隆的存储库大于-mx/--max的大小这个问题,正在处理中。

gitrob
Ruby开发,支持通过postgresql数据库https://github.com/michenriksen/gitrob

weakfilescan
Python开发,多线程,猪猪侠开发中文注释,个性化定制,需要beautifulsoup4用于渗透人员在对网站进行网站渗透时查找敏感文件(配置文件、临时文件)、敏感目录,会首先爬取目标站点的三层目录资源,生成目录FUZZ和文件FUZZ
https://github.com/ring04h/weakfilescan

GitPrey
Python开发,国人开发中文支持,用于企业搜索关键词,及时发现潜在的敏感信息,需要登录https://github.com/repoog/GitPrey

GitMiner
Python开发,功能简单https://github.com/UnkL4b/GitMiner

详情参考微信公众号内容: