安全老司機 | Struts2漏洞爆發后,與黑客的一次正面交鋒
青藤雲安全:——用的是進程信息采集器
通過對用戶進程行為的實時監控,結合行為分析,及時發現非法shell連接引起的反彈shell行為,可以有效地感知0Day漏洞利用的行為痕跡,可以提供反向shell的詳細過程操作樹。
青藤雲安全將Agent安裝在服務器上,根據客戶業務運行狀況設立數萬個監測指標,對文件進程、主機訪問、業務關系等建立多維度、多層次的縱深檢測體系,可以無間斷對入侵行為進行監控,實現實時的入侵檢測和快速響應,一旦發現異常情況,進行毫秒級報警
青藤新一代主機入侵檢測系統的“反彈shell”功能,可以通過對用戶進程行為進行實時監控,結合異常行為識別,可及時發現進程中非法 Shell 連接操作產生的反彈 Shell行為,能有效感知“0Day”漏洞等利用的行為痕跡,並提供反彈 Shell 的詳細進程樹。
故事開始
“我們可能被黑客攻擊了!!!”接到客戶急匆匆的一個電話。
我趕緊打開電腦查看報警郵件,提示存在一個反彈Shell的攻擊行為。

這大半夜,客戶的服務器居然正在主動嘗試連接外部其它服務器。在那個瞬間,我都能想象得出來,服務器另一端那個穿着“黑衣服”的人,面對“冒着新鮮熱氣兒”的Shell唾手可得的那種狂喜。顯然,黑客正在瘋狂攻擊,情況甚是緊急,需要在黑客造成真正破壞之前阻止他們。
做技術的人都知道,反彈Shell一般是外網滲透的最后一步,也是內網滲透的第一步。反彈Shell對服務器安全乃至內網安全的危害不必多說。
多年的一線拼殺經驗告訴我,黑客一般是利用遠程命令執行、遠程代碼執行、Webshell、Redis未授權訪問可執行系統命令等漏洞,執行反彈命令,使目標服務器發出主動連接請求,從而繞過防火牆的入站訪問控制規則。
初試無果
因為客戶正好部署了青藤的大數據安全產品,能夠記錄展示每台服務器系統交互Shell的命令,包括操作者IP,操作終端,操作用戶,操作詳情等關鍵信息。但是出乎意料的是,在反彈Shell這十幾分鍾時間內,日志上居然沒發現任何黑客執行反彈Shell操作等相關的異常操作行為。
改變思路
顯然,黑客不是通過在服務器端執行命令的常規方式進行反彈,一定是有其它資產存在漏洞,被黑客利用了。為找到根本原因,我通過青藤資產清點工具對該主機上運行的資產(如虛擬機、web站點、web服務、web框架等)進行全面了解,發現該服務器上存在Struts 2的Web框架,湊巧的是該版本正好存在S2-045漏洞。很可能,這就是黑客入侵的源頭了。

要說著名RCE(遠程代碼執行)漏洞,Struts2框架漏洞最為“經典”,一經爆發就被各安全廠商作為高危緊急漏洞處理。S2-045漏洞是由報錯信息包含OGNL表達式,並且被帶入了buildErrorMessage這個方法運行,造成遠程代碼執行。S2-045只有一種觸發形式,就是將OGNL表達式注入到HTTP頭的Content-Type中。
柳暗花明
為確認真正攻擊源,通過查看Tomcat日志發現存在反彈Shell行為的惡意IP,正在通過post請求方式訪問客戶服務器上一個Struts2頁面。至此,基本可以判斷攻擊者正是通過Struts2的反序列化漏洞進行攻擊,從而完成反彈Shell的操作。值得慶幸,因為及時發現和快速響應,黑客的攻擊行為未對服務器造成任何傷害。
進行反擊
首先通過防火牆立即封堵該IP,同時在WAF上設置規則,攔截該請求,進一步對Struts2漏洞立馬打補丁。
寫在最后
攻防的較量從未停止,黑客與白帽子間的斗爭也越演越烈。在Struts2框架漏洞這個戰場上,需要持續深入地研究,才能占有主動權。雖然從過去出現的Struts漏洞看,惡意OGNL表達式的注入點無處不在,但隨着Struts2框架版本不停迭代,很多漏洞都被修補。
在這里筆者也提醒各位安全負責人,一定要及時打補丁以及使用最新版的Struts框架,避免被不法分子利用而造成損失。同時,對request請求的參數名、參數值、cookie參數名、action的名稱、Content-Type內容、filename內容、請求體內容(反序列化漏洞)進行驗證,降低后期被黑客利用可能性。
安全老司機 | Struts2漏洞爆發后,與黑客的一次正面交鋒
故事開始
“我們可能被黑客攻擊了!!!”接到客戶急匆匆的一個電話。
我趕緊打開電腦查看報警郵件,提示存在一個反彈Shell的攻擊行為。

這大半夜,客戶的服務器居然正在主動嘗試連接外部其它服務器。在那個瞬間,我都能想象得出來,服務器另一端那個穿着“黑衣服”的人,面對“冒着新鮮熱氣兒”的Shell唾手可得的那種狂喜。顯然,黑客正在瘋狂攻擊,情況甚是緊急,需要在黑客造成真正破壞之前阻止他們。
做技術的人都知道,反彈Shell一般是外網滲透的最后一步,也是內網滲透的第一步。反彈Shell對服務器安全乃至內網安全的危害不必多說。
多年的一線拼殺經驗告訴我,黑客一般是利用遠程命令執行、遠程代碼執行、Webshell、Redis未授權訪問可執行系統命令等漏洞,執行反彈命令,使目標服務器發出主動連接請求,從而繞過防火牆的入站訪問控制規則。
初試無果
因為客戶正好部署了青藤的大數據安全產品,能夠記錄展示每台服務器系統交互Shell的命令,包括操作者IP,操作終端,操作用戶,操作詳情等關鍵信息。但是出乎意料的是,在反彈Shell這十幾分鍾時間內,日志上居然沒發現任何黑客執行反彈Shell操作等相關的異常操作行為。
改變思路
顯然,黑客不是通過在服務器端執行命令的常規方式進行反彈,一定是有其它資產存在漏洞,被黑客利用了。為找到根本原因,我通過青藤資產清點工具對該主機上運行的資產(如虛擬機、web站點、web服務、web框架等)進行全面了解,發現該服務器上存在Struts 2的Web框架,湊巧的是該版本正好存在S2-045漏洞。很可能,這就是黑客入侵的源頭了。

要說著名RCE(遠程代碼執行)漏洞,Struts2框架漏洞最為“經典”,一經爆發就被各安全廠商作為高危緊急漏洞處理。S2-045漏洞是由報錯信息包含OGNL表達式,並且被帶入了buildErrorMessage這個方法運行,造成遠程代碼執行。S2-045只有一種觸發形式,就是將OGNL表達式注入到HTTP頭的Content-Type中。
柳暗花明
為確認真正攻擊源,通過查看Tomcat日志發現存在反彈Shell行為的惡意IP,正在通過post請求方式訪問客戶服務器上一個Struts2頁面。至此,基本可以判斷攻擊者正是通過Struts2的反序列化漏洞進行攻擊,從而完成反彈Shell的操作。值得慶幸,因為及時發現和快速響應,黑客的攻擊行為未對服務器造成任何傷害。
進行反擊
首先通過防火牆立即封堵該IP,同時在WAF上設置規則,攔截該請求,進一步對Struts2漏洞立馬打補丁。
寫在最后
攻防的較量從未停止,黑客與白帽子間的斗爭也越演越烈。在Struts2框架漏洞這個戰場上,需要持續深入地研究,才能占有主動權。雖然從過去出現的Struts漏洞看,惡意OGNL表達式的注入點無處不在,但隨着Struts2框架版本不停迭代,很多漏洞都被修補。
在這里筆者也提醒各位安全負責人,一定要及時打補丁以及使用最新版的Struts框架,避免被不法分子利用而造成損失。同時,對request請求的參數名、參數值、cookie參數名、action的名稱、Content-Type內容、filename內容、請求體內容(反序列化漏洞)進行驗證,降低后期被黑客利用可能性。