就算不是程序员,也一定知晓GitHub的大名。如果真不熟,那可以将此文看做入门指南。
GitHub是采用git协议的大型云软件库。任何人都可以很容易地创建GitHub账户,不仅免费,甚至不用提供真实的电子邮件地址。
登录GitHub,你便可以自由发布代码,而世界上任何人都能看到你的代码,下载它,或者以它为蓝本形成新的分支。
GitHub模式非常强大,使得软件开发能够轻松写意地协作完成。但正如事物都有两面性,方便的同时有那么几个安全问题也就不足为奇了。
GitHub对用户提交的内容不做任何过滤。因为对上传的内容没有任何限制,人们常将之用作个人存储和备份空间。而因为被用作了个人存储和备份空间,只要找到正确的打开方式,这里简直就是敏感数据的宝库。甚至,还准备好了宝矿探测的大法宝——搜索。
与谷歌的Dorks非常相像,GitHub也有一定数量的关键字可以用于精炼搜索结果。其中一些就是“filename(文件名)”、“extension(后缀)”和“path(路径)”。
顾名思义,“文件名”和“后缀”可用于检索特定文件名或文件后缀。“路径”这个关键字就比较有意思了,可以搜索文件路径中的特定目录。比如,你可以用检索项“path:etc”来查找“etc”文件夹下的文件。
如果想玩过界,尝试一下检索项的邪恶用法,你可以将这些关键字串联起来使用,检索结果会相当有趣。比如说,使用“filename:shadow path:etc”这个复合检索项。
成就此文时,用这个检索项可以找出736条Unix系统的shadow文件。对Unix稍有涉猎的人都知道,/etc/shadow文件包含了系统中所有用户密码的哈希值。
GitHub上暴露的/etc/shadow文件
GitHub上能看到的Unix密码哈希值
利用John或Hashcat之类广为流传的密码破解器,根据密码复杂度的不同,这些哈希值可在数秒到几年之间被破解出来。去年10月中旬检索出来的所有/etc/shadow文件哈希中,仅仅3天时间,就被破解出了60%。
Unix系统的shadow文件还仅仅只是个开始。在GitHub上,WordPress配置文件、SFTP服务器配置文件、RSA私钥、SQL转储文件等等,应有尽有。
很多人都已经开始意识到GitHub上的数据根本就是任君采撷,而且越多的人意识到他们自己或其他人可能无意中把敏感数据放到了GitHub上,也就意味着更多的人有机会去搜一下看看,并帮助将这些敏感数据撤下来。而一些威胁情报公司早已把GitHub当成一个重要的数据收集源。
那么问题来了:这么多数据摆在你面前,你该怎么做呢?收割啊!
GitHarvester就是这样一款辅助你从GitHub上收割数据的自动化工具。它可以利用GitHub检索字符串,拉出检索结果,然后应用正则表达式匹配结果数据,从中找出敏感文件及其中特定数据。
举个例子,如果你想查找含有root用户密码哈希的shadow文件,就可以使用GitHarvester达成目的。
为什么要写这么个能让坏人更容易地染指别家系统的工具呢?原因太多了,“因为这是开始一个新编程项目的借口啊”、“只是想看看GitHub上到底有多少数据啊”等等等等。不过,主要原因,还是在于要揭露这个安全缺口。
***,神器奉上:
https://github.com/metac0rtex/GitHarvester