就算不是程序員,也一定知曉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上到底有多少數據啊”等等等等。不過,主要原因,還是在于要揭露這個安全缺口。
最后,神器奉上: