處處留心皆學(xué)問(wèn)
0x00. 背景:
技術(shù)團隊第一忙于業(yè)務(wù)邏輯,第二大量新人涌入,會(huì )把過(guò)去大家在安全上栽的跟頭重新趟一遍,因此該做的培訓咱還得做,該說(shuō)的經(jīng)驗教訓還得說(shuō),一次不行就兩次,兩次不行三次,重復再重復。
0x01. 堡壘是從內部攻破的:
一次成功的入侵滲透,并不需要是什么高危漏洞,幾個(gè)普普通通的中等漏洞,搭配一次社會(huì )工程學(xué)行動(dòng),就可以搞定。
一個(gè)公司成千上萬(wàn)人,往少里說(shuō)也有 80% 的人安全意識淡薄,有耐心的攻擊者會(huì )盯好幾年,窮盡各種招數,沒(méi)有攻不進(jìn)去的堡壘。
員工無(wú)知者無(wú)畏
大多數員工都圖省事兒,公司郵箱以及其他內部 IT 系統都用簡(jiǎn)單密碼甚至空密碼,好些個(gè)知名 IT 系統也不對此做任何限制(甚至是專(zhuān)業(yè)企業(yè)級軟件制造商出品的IT系統)。
弱密碼遇到不設防的 IT 系統,對攻擊者來(lái)說(shuō)真是福音。
案例一,烏云漏洞報告:重置某東任意內部郵箱用戶(hù)密碼
漏洞提交時(shí)間:
2013-10-26
原理:
公司做得越來(lái)越大的時(shí)候,總會(huì )出現那么幾個(gè)安全意識薄弱的人員(俗稱(chēng)豬一樣的隊友),他們往往會(huì )做出一些讓人無(wú)法理解的事情,比如:他會(huì )毫不猶豫地雙擊運行郵件內的 EXE 附件,或者使用跟用戶(hù)名一樣的密碼,或者用戶(hù)名+當前年份的密碼。
實(shí)施步驟:
1)通過(guò)社會(huì )工程學(xué)神器
theharvester 工具,和 baidu/google 搜索引擎,收集所有關(guān)于某東員工的信息;
2)找到了可用的登錄接口驗證口令 ,https://mail.....com/owa/auth/logon.aspx,某東的郵件服務(wù)使用了微軟的 Exchange 服務(wù),并無(wú)驗證碼限制,可以直接 Fuzz;
注:
Fuzz 指的是用隨機壞數據攻擊一個(gè)程序,然后等著(zhù)觀(guān)察哪里遭到了破壞。
3)成功 Fuzz 出某個(gè)用戶(hù)的密碼,再結合 Exchange 的通訊錄功能,導出所有用戶(hù)名列表;
4)是的,現階段,你已經(jīng)擁有了所有某東員工的聯(lián)系信息列表 。
重復使用 Fuzz 規則,測試后回顯找到了 2865 名員工的密碼,均為弱口令。
更有甚者,互聯(lián)網(wǎng)開(kāi)發(fā)人員還會(huì )主動(dòng)暴露自家機密。每家知名公司都有這么幾個(gè)沒(méi)心沒(méi)肺的人,在開(kāi)源社區泄露源碼或敏感信息:
……幾乎每個(gè)大公司都報過(guò)這個(gè)漏洞。
開(kāi)源社區暴露了郵箱用戶(hù)名密碼之后,又會(huì )怎么樣?后果很可怕。
案例二,烏云漏洞報告:一次成功地漫游某東內部網(wǎng)絡(luò )的過(guò)程
漏洞提交時(shí)間:
2014-04-03
后果:
1)郵箱里找到了 VPN 登錄方式:
圖1 某東VPN郵件截圖
2)撥 VPN 登 3389 進(jìn)入堡壘機:
圖2 某東堡壘機登錄截圖
3)進(jìn)入堡壘機,看瀏覽器歷史記錄,找到了各種高大上的管理系統:
圖3 某東內部各種應用入口
4)還找到了執行 SQL 刷庫的地方%#&……
圖4 某東執行SQL的內部界面
總結一下:
以 github 為首的版本控制信息泄漏:
由于 github 支持強大的搜索語(yǔ)法,可以很方便地搜索到一些常規搜索引擎無(wú)法搜索到的內容,如搜索內部項目、密碼、密鑰等。
還可以通過(guò) github 來(lái)查找代碼安全問(wèn)題,如輸入規則:extension:php mysql_query $_GET,可以搜索到大量包含 mysql_query $_GET 的請求,可以有針對性地進(jìn)行代碼審計。
當你把自己的項目代碼上傳到 github 時(shí),看看配置文件里是不是有不能說(shuō)的秘密,思量一下后果。
運維配置暴露細節
生產(chǎn)環(huán)境配置不當,加上開(kāi)源系統層出不窮的漏洞,敏感信息輕輕松松泄露,經(jīng)??拥姆?wù)有 Resin-doc、SVN、git……
案例三,烏云漏洞報告:某公司源碼泄露導致配置信息泄漏
漏洞提交時(shí)間:
2011年
原理:
Caucho Resin 是一款 Web 應用服務(wù)器,它自帶一個(gè) resin-doc app,這個(gè)破玩意兒在 Resin 3.0 上有一個(gè)漏洞,可以被當成一個(gè)后門(mén)。
Resin 的某個(gè) CGI 程序實(shí)現上存在輸入驗證漏洞,遠程攻擊者可能利用此漏洞讀取 Web 主目錄下的任意文件,包括 JSP 源碼或類(lèi)文件。如果系統中安裝了 resin-doc 就可能讀取 Web 主目錄中的所有文件,包括類(lèi)文件,然后可以反編譯這些文件瀏覽 Java 源代碼。
實(shí)施步驟:
2011年時(shí),你可以訪(fǎng)問(wèn)這樣的路徑:http://www.....com/resin-doc/viewfile/?file=index.jsp。
攻擊者可以設置 resin-doc 外的上下文路徑,讀取其他 Web 目錄的任意文件:
http://localhost/resin-doc/viewfile/?contextpath=/otherwebapp&servletpath=&file=WEB-INF/web.xml。
如果運維不強制規范上線(xiàn)部署 Resin 時(shí)一律刪除 resin-doc app,那么類(lèi)似的悲劇還會(huì )繼續發(fā)生,如:
因為你有可能部署一個(gè)低版本 Resin。
SVN 的隱藏目錄問(wèn)題,各家也遇到過(guò)。
案例四,烏云漏洞報告:某財經(jīng)網(wǎng)某處SVN泄露
漏洞提交時(shí)間:
2014-11-19
原理:
發(fā)布流程不規范的情況下,代碼上線(xiàn)時(shí),Java/PHP等都特別容易帶入 SVN 隱藏目錄。
在 svn 1.6 以下版本,通過(guò)訪(fǎng)問(wèn) .entries,可以下載到 svn 里的代碼。在 svn 1.7 之后的版本,通過(guò)訪(fǎng)問(wèn) .svn/wc.db,對應的 metasploit 模塊也是有利用程序的。
實(shí)施步驟:
http://service.....com.cn/.svn/entries
就是這么簡(jiǎn)單。
這名白帽子還總結了兩點(diǎn)危害:
1.泄露 svn 地址和用戶(hù)信息,通過(guò)爆破可控制 svn 權限;
2.可以獲取截止到上一次 svn 操作的網(wǎng)站源碼。
git
在 google 里搜索關(guān)鍵詞 *".git" intitle:"Index of",還可以進(jìn)一步找到 git 暴露在外的站點(diǎn)。
phpinfo
生產(chǎn)環(huán)境里,phpinfo 也隨便放,視搜索引擎為無(wú)物?
后臺不設防
Elastic Search 官方的控制臺本身沒(méi)有訪(fǎng)問(wèn)控制,一般來(lái)說(shuō)大家都會(huì )僅限內網(wǎng)訪(fǎng)問(wèn),但咱家在這上面也吃過(guò)虧。
案例五,烏云漏洞報告:某站ElasticSearch遠程命令執行
漏洞提交時(shí)間:
2015-03-05
原理:
es 控制臺內網(wǎng)域名本來(lái)是有防火墻策略的,但某天調整策略時(shí)子網(wǎng)掩碼誤操作寫(xiě)錯了,導致外網(wǎng)可以訪(fǎng)問(wèn)到 es 控制臺。
剛好 ES 自己爆了一個(gè)高危安全漏洞(CVE-2015-1427),該漏洞可導致遠程代碼執行,危害極大。倆事兒撞一塊了。
圖5 es漏洞利用截圖
幸好是白帽子找出來(lái)的。
0x02. 小結:
不一定非要出高危漏洞,白帽子就可以用社工+中等漏洞攻進(jìn)來(lái),開(kāi)發(fā)、測試、運維,都要認真,前面這些環(huán)節不認真,就得等漏洞爆出來(lái)后再認真了。
參考文獻:
-EOF-