攻防演練 | 實戰加分,安芯網盾實時幫您輕鬆應對哥斯拉Webshell魔改

安芯網盾發表於2022-07-29

近日,安芯網盾安全團隊分析了一個從實戰中拿到的樣本,分析發現該樣本是基於“哥斯拉Webshell”進行魔改的記憶體馬,安芯網盾記憶體保護可實時幫您輕鬆應對哥斯拉Webshell魔改。  

自2020年開始,記憶體馬也成為攻防演練中RT手裡的“王牌手段”。 攻擊方透過操縱漏洞利用程式、合法工具、宏和指令碼,可以破壞系統、提升特權或在網路上橫向傳播惡意程式碼,並在執行後採取儘量隱藏自身或清除的手段,使其難以被檢測,以入口網站為例,其服務直接暴露在網際網路環境,十分容易成為紅隊攻擊目標,使用記憶體Webshell的攻擊手段可以輕鬆繞過現有的安全防護體系,達成攻擊目的。


01 哥斯拉魔改變化

安芯網盾團隊透過分析最新的樣本發現,與原始的“哥斯拉”程式相比較增強了: 

1. 流量加密,控制端與被控制端之間的網路流量進行了AES加密,加密金鑰在控制端生成,可實現“一次一密”。加密金鑰使用RSA演算法進行分發,防止分析人員解密。 

2. 受控端將控制響應偽裝成圖片檔案返回控制端,以繞過WAF/IPS等系統的檢測。 



02 程式碼主要邏輯分析

Step1. 從請求中提取引數: user, password的值, 將引數值進行base64解碼。

攻防演練 | 實戰加分,安芯網盾實時幫您輕鬆應對哥斯拉Webshell魔改


Step2. 獲取會話金鑰,檢查請求中的sessionId引數 

如果: 

(1) 引數存在,表明該會話未建立,需要從sessionId獲取會話金鑰。程式碼從sessionId引數值解密(rsaEncrypt(), 該函式名存在誤導性,rsaEncrypt()表示RSA公鑰加密操作,但根據RSA演算法原理,該操作可實現解密效果。明文 -> RSA私鑰解密 -> 密文 -> RSA公鑰加密 ->明文)獲得會話金鑰,並儲存到會話狀態(session物件)作為屬性“k”。 

攻防演練 | 實戰加分,安芯網盾實時幫您輕鬆應對哥斯拉Webshell魔改

(2) 如果引數不存在,但在會話狀態中以存在屬性“k”。表明會話已經建立。則直接從會話狀態獲取會話金鑰。 


Step3. 解密請求

攻防演練 | 實戰加分,安芯網盾實時幫您輕鬆應對哥斯拉Webshell魔改


Step4. 載入控制端傳送的程式碼(java class),執行並獲取執行結果

(1) 如果會話狀態不存在屬性“p”,從將請求資料作為java位元組碼,使用自定義類載入器載入,並將java class儲存在會話狀態作為屬性“p”。 

攻防演練 | 實戰加分,安芯網盾實時幫您輕鬆應對哥斯拉Webshell魔改

(2) 如果會話狀態存在屬性“p”,建立控制端傳送的程式碼(建立控制端傳送的java class的類例項),執行程式碼並獲取結果。



Step5 將執行結果封裝在圖片內加密返回  攻防演練 | 實戰加分,安芯網盾實時幫您輕鬆應對哥斯拉Webshell魔改



03 記憶體馬防護

對於記憶體馬攻擊的防護,單純依靠基於靜態特徵的傳統檢測方式是遠遠不夠的,需要深入Web程式內部進行威脅發現。目前對記憶體馬的防護,比較有效的方式是RASP技術,它採用程式注入的方式,透過監控Web應用程式異常行為來對記憶體馬攻擊進行檢測。 

RASP已演變成一個成熟的應用程式內部安全性概念,它可以根據開發人員希望在應用程式或伺服器中實現RASP安全層的方式(如Servlet過濾器、二進位制工具、JVM的替換、虛擬化)來消除威脅。安芯網盾在2021年年初,率先在行業內推出了基於記憶體保護+RASP技術的記憶體馬攻擊防護解決方案(web伺服器安全解決方案)。

與傳統RASP產品所提供的記憶體馬防護思路相比,安芯網盾在記憶體馬防護方面具有以下幾個優點: 

資料分析過程主要在Web容器外部進行,最大限度降低對業務記憶體的佔用,降低影響,確保業務系統執行的穩定性; 

採用輕侵入模式,部署或升級過程均不涉及業務系統重啟;

基於行為鏈結合記憶體行為進行判斷,提升檢測精確度,降低誤報;

能透過動態檢測發現記憶體馬攻擊,防止被繞過; 

能透過靜態檢測發現記憶體中已駐留的記憶體馬。



相關文章