安全基礎教育第一季:堡壘是從內部攻破的

鄭昀 創建於2015/4/10 最後更新於2015/4/28
關鍵詞: Web安全、系統安全、社工、社會工程學、弱密碼、github、svn

本文檔適用人員:廣義的技術人員
提綱:
  1. 堡壘是從內部攻破的
  • 員工無知者無畏
  • 運維配置暴露細節
  • 後臺不設防
常犯常新,屢戰屢敗 處處留心皆學問

0x00. 背景:

    技術團隊第一忙於業務邏輯,第二大量新人涌入,會把過去大家在安全上栽的跟頭重新趟一遍,因此該做的培訓咱還得做,該說的經驗教訓還得說,一次不行就兩次,兩次不行三次,重複再重複。
 

0x01. 堡壘是從內部攻破的:

    一次成功的入侵滲透,並不需要是什麼高危漏洞,幾個普普通通的中等漏洞,搭配一次社會工程學行動,就可以搞定。
    一個公司成千上萬人,往少裏說也有 80% 的人安全意識淡薄,有耐心的攻擊者會盯好幾年,窮盡各種招數,沒有攻不進去的堡壘。
 

員工無知者無畏

  大多數員工都圖省事兒,公司郵箱以及其他內部 IT 系統都用簡單密碼甚至空密碼,好些個知名 IT 系統也不對此做任何限制(甚至是專業企業級軟件製造商出品的IT系統)。

    弱密碼遇到不設防的 IT 系統,對攻擊者來說真是福音。
 
案例一,烏雲漏洞報告:重置某東任意內部郵箱用戶密碼
漏洞提交時間:
2013-10-26
原理:
公司做得越來越大的時候,總會出現那麼幾個安全意識薄弱的人員(俗稱豬一樣的隊友),他們往往會做出一些讓人無法理解的事情,比如:他會毫不猶豫地雙擊運行郵件內的 EXE 附件,或者使用跟用戶名一樣的密碼,或者用戶名+當前年份的密碼。
實施步驟:
1)通過社會工程學神器 theharvester 工具,和 baidu/google 搜索引擎,收集所有關於某東員工的信息;
2)找到了可用的登錄接口驗證口令 ,https://mail.....com/owa/auth/logon.aspx,某東的郵件服務使用了微軟的 Exchange 服務,並無驗證碼限制,可以直接 Fuzz;
注:Fuzz 指的是用隨機壞數據攻擊一個程序,然後等着觀察哪裏遭到了破壞。
3)成功 Fuzz 出某個用戶的密碼,再結合 Exchange 的通訊錄功能,導出所有用戶名列表;
4)是的,現階段,你已經擁有了所有某東員工的聯繫信息列表 。
重複使用 Fuzz 規則,測試後回顯找到了 2865 名員工的密碼,均爲弱口令。
 
    更有甚者,互聯網開發人員還會主動暴露自家機密。每家知名公司都有這麼幾個沒心沒肺的人,在開源社區泄露源碼或敏感信息:
……幾乎每個大公司都報過這個漏洞。
 
    開源社區暴露了郵箱用戶名密碼之後,又會怎麼樣?後果很可怕。
案例二,烏雲漏洞報告:一次成功地漫遊某東內部網絡的過程
漏洞提交時間:
2014-04-03
後果:
1)郵箱裏找到了 VPN 登錄方式:
圖1 某東VPN郵件截圖
2)撥 VPN 登 3389 進入堡壘機:
圖2 某東堡壘機登錄截圖
3)進入堡壘機,看瀏覽器歷史記錄,找到了各種高大上的管理系統:
圖3 某東內部各種應用入口
4)還找到了執行 SQL 刷庫的地方%#&……
圖4 某東執行SQL的內部界面
 
    總結一下:
以 github 爲首的版本控制信息泄漏:
由於 github 支持強大的搜索語法,可以很方便地搜索到一些常規搜索引擎無法搜索到的內容,如搜索內部項目、密碼、密鑰等。
還可以通過 github 來查找代碼安全問題,如輸入規則:extension:php mysql_query $_GET,可以搜索到大量包含 mysql_query $_GET 的請求,可以有針對性地進行代碼審計。
當你把自己的項目代碼上傳到 github 時,看看配置文件裏是不是有不能說的祕密,思量一下後果。
 

運維配置暴露細節

  生產環境配置不當,加上開源系統層出不窮的漏洞,敏感信息輕輕鬆鬆泄露,經常坑爹的服務有 Resin-doc、SVN、git……

案例三,烏雲漏洞報告:某公司源碼泄露導致配置信息泄漏
漏洞提交時間:
2011年
原理:
Caucho Resin 是一款 Web 應用服務器,它自帶一個 resin-doc app,這個破玩意兒在 Resin 3.0 上有一個漏洞,可以被當成一個後門。
Resin 的某個 CGI 程序實現上存在輸入驗證漏洞,遠程攻擊者可能利用此漏洞讀取 Web 主目錄下的任意文件,包括 JSP 源碼或類文件。如果系統中安裝了 resin-doc 就可能讀取 Web 主目錄中的所有文件,包括類文件,然後可以反編譯這些文件瀏覽 Java 源代碼。
實施步驟:
2011年時,你可以訪問這樣的路徑: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
 
    如果運維不強制規範上線部署 Resin 時一律刪除 resin-doc app,那麼類似的悲劇還會繼續發生,如:
    因爲你有可能部署一個低版本 Resin。
 
    SVN 的隱藏目錄問題,各家也遇到過。
案例四,烏雲漏洞報告:某財經網某處SVN泄露
漏洞提交時間:
2014-11-19
原理:
發佈流程不規範的情況下,代碼上線時,Java/PHP等都特別容易帶入 SVN 隱藏目錄。
在 svn 1.6 以下版本,通過訪問 .entries,可以下載到 svn 裏的代碼。在 svn 1.7 之後的版本,通過訪問 .svn/wc.db,對應的 metasploit 模塊也是有利用程序的。
實施步驟:
http://service.....com.cn/.svn/entries
就是這麼簡單。
這名白帽子還總結了兩點危害:
1.泄露 svn 地址和用戶信息,通過爆破可控制 svn 權限;
2.可以獲取截止到上一次 svn 操作的網站源碼。
    再比如樂視某分站源碼泄漏
 
git
    在 google 裏搜索關鍵詞 *".git" intitle:"Index of",還可以進一步找到 git 暴露在外的站點。
 
phpinfo
    生產環境裏,phpinfo 也隨便放,視搜索引擎爲無物?
 

後臺不設防

    Elastic Search 官方的控制檯本身沒有訪問控制,一般來說大家都會僅限內網訪問,但咱家在這上面也吃過虧。

案例五,烏雲漏洞報告:某站ElasticSearch遠程命令執行
漏洞提交時間:
2015-03-05
原理:
es 控制檯內網域名本來是有防火牆策略的,但某天調整策略時子網掩碼誤操作寫錯了,導致外網可以訪問到 es 控制檯。
剛好 ES 自己爆了一個高危安全漏洞(CVE-2015-1427),該漏洞可導致遠程代碼執行,危害極大。倆事兒撞一塊了。
es漏洞利用工具
圖5 es漏洞利用截圖
幸好是白帽子找出來的。
 

0x02. 小結:

    不一定非要出高危漏洞,白帽子就可以用社工+中等漏洞攻進來,開發、測試、運維,都要認真,前面這些環節不認真,就得等漏洞爆出來後再認真了。
 
參考文獻:
1,百度QA,將Fuzz進行到底
2,2014,烏雲知識庫,fuzzing XSS filter
3,2014,烏雲知識庫,被忽視的開發安全問題
4,2006,模糊測試
 
-EOF-
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章