您好,登錄后才能下訂單哦!
怎樣從流量中檢測WebShell,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
HW期間,為防范釣魚,即日起FreeBuf將取消投稿文章的一切外部鏈接。給您帶來的不便,敬請諒解~
眾所周知,攻防演練過程中,攻擊隊入侵企業網站時,通常要通過各種方式獲取 webshell,從而獲得企業網站的控制權,然后方便實施之后的入侵行為。在冰蝎、哥斯拉這類加密型 webshell 工具出現之前,中國菜刀、蟻劍這類工具常被攻擊隊使用,與菜刀和蟻劍不同,冰蝎和哥斯拉使用加密隧道傳輸數據,不易被安全設備發現,同時,無文件內存 webshell 的興起,給檢測帶來了更大的壓力。因此,對這類加密型 webshell 和無文件內存 webshell 的檢測是非常有必要的。
當前,這類加密型 webshell 檢測存在以下難點:
使用加密隧道傳輸數據,無明文通訊特征。
內存 webshell 無文件落地。
通過攻防演練的實踐,總結一套關于加密 webshell 和內存 webshell 的檢測方法,分析和總結該類 webshell 通訊特征,通過流量及時準確的發現主機失情況,及時處理。
當出現一個新型 webshell 工具時,我們可以通過如下幾個方面總結相關特征,從而實現相關檢測。
webshell 樣本:分析 webshell 的執行邏輯,提取 webshell 執行過程中必須存在的函數、參數,對該類 webshell 實現上傳、寫入的檢測。
通訊過程中必存在參數:分析 webshell 服務端和客戶端,提取因實現問題而在交互過程中必須存在的參數。
加密算法特征:分析該 webshell 通訊過程中的加密方法,獲取該加密方法生成的密文所在集合。
工具本身 bug:因為工具是人力開發的,難以避免會存在一些 bug,這些 bug 可以成為識別該類工具的特征。
與正常業務不符:分析通訊過程中,該 webshell 和正常業務的不同,可以粗略的篩選出可能異常的通訊。
我們將從以上方法論總結的幾種方法,舉例說明如何提取特征。
可以通過對上傳的樣本進行檢測,從而發現威脅。我們可以通過分析這類 webshell 工具的源碼,提取生成的 webshell 的特征,從而實現檢測。以下以哥斯拉為例,可以看到其生成 webshell 時導入一個模板,根據模板生成相應的 webshell,所以我們總結生成模板的特征,即可對這類上傳行為進行準確的檢測。
在冰蝎 3.0 的服務端,是通過如下代碼讀取 post 請求。
request.getReader().readLine()
代碼的意思是,直接讀取 post 請求中 body 的內容。所以請求的 http 中,content-type 一定為 application/octet-stream。否則就會出現非預期 http 編碼的情況。這類特征屬于通訊過程中必存在參數,可以通過這類特征的組合,對相關 webshell 通訊進行檢測(這里僅做舉例,這類檢測肯定為多特征結合)。
冰蝎通訊時,會建立加密通訊隧道,主要請求體和返回體內容有如下三種情況:
請求體加密方式 | 返回體加密方式 |
AES 后 Base64 | AES 后 Base64 |
AES 后 Base64 | AES |
AES | AES |
對于 AES 后 Base64 加密,其加密后所有值落在 [a-zA-Z0-9+\=],很容易通過正則去覆蓋。
對于 AES 加密,其加密后的值無 Base64 中相關特征,但是,可以明顯看出,密文內容中不可見字符明顯增多。可以通過不可見字符進行檢測,從而覆蓋對 AES 這類加密后的請求體或返回體的識別。
這類僅為一些弱特征,僅舉例說明,需要多特征組合,才能實現準確的檢測。
這類工具都是人力開發的,難免存在一些 bug,我們可以通過找到這些 bug,從而在流量中識別出該類工具。如在冰蝎某一版本中,php 相關 webshell 通訊在一個 http 請求報文中存在兩個 PHPSESSID,這屬于工具的 bug,可以通過該 bug 以及其他一些特征,識別出該工具。
對于無文件內存 webshell,攻擊者為了隱藏攻擊行為,將注入 webshell 的路徑選為靜態文件路徑,如 jpg、ico、png 等,但這樣就會存在一些異于正常的行為,如請求靜態文件返回內容不同、帶請求體請求靜態文件等。以下為一個冰蝎內存 webshell 的示例。
在本文中,我們總結了從流量中尋找加密型 webshell 和無文件內存 webshell 的特征方法,分別是:
webshell 樣本
通訊過程中必存在參數
加密方法特征
工具本身的 bug
與正常業務不符
在實戰測試中,通過上述幾點,對加密型 webshell 和無文件內存 webshell 的通訊流量進行分析,總結相關弱特征和強特征,多種特征結合,可以準確識別這類 webshell 的通訊過程,及時處置和發現失陷主機。
看完上述內容,你們掌握怎樣從流量中檢測WebShell的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。