菜刀、冰蝎、蟻劍、哥斯拉的流量特征
菜刀流量特征
最開始是明文傳輸,后來采用base64加密:
PHP類WebShell鏈接流量
如下:
第一:“eval”,eval函數用于執行傳遞的攻擊payload,這是必不可少的;
第二:(base64_decode($_POST[z0])),(base64_decode($_POST[z0]))將攻擊payload進行Base64解碼,因為菜刀默認是使用Base64編碼,以避免被檢測;
第三:&z0=QGluaV9zZXQ...,該部分是傳遞攻擊payload,此參數z0對應$_POST[z0]接收到的數據,該參數值是使用Base64編碼的,所以可以利用base64解碼可以看到攻擊明文。
注:
1.有少數時候eval方法會被assert方法替代。
2.$_POST也會被$_GET、$_REQUEST替代。
3.z0是菜刀默認的參數,這個地方也有可能被修改為其他參數名。
蟻劍(PHP用base64加密):
PHP類WebShell鏈接流量
將蟻劍的正文內容進行URL解碼后,流量最中明顯的特征為@ini_set("display_errors","0");這段代碼基本是所有WebShell客戶端鏈接PHP類WebShell都有的一種代碼,但是有的客戶端會將這段編碼或者加密,而蟻劍是明文,所以較好發現,同時蟻劍也有eval這種明顯的特征。
蟻劍繞過特征流量
由于蟻劍中包含了很多加密、繞過插件,所以導致很多流量被加密后無法識別,但是蟻劍混淆加密后還有一個比較明顯的特征,即為參數名大多以“_0x.....=”這種形式(下劃線可替換為其他)所以,以_0x開頭的參數名,后面為加密數據的數據包也可識別為蟻劍的流量特征。
冰蝎(AES對稱加密):
通過HTTP請求特征檢測
1、冰蝎數據包總是伴隨著大量的content-type:application什么什么,無論GET還是POST,請求的http中,content-type為application/octet-stream;
2、冰蝎3.0內置的默認內置16個ua(user-agent)頭
3、content-length 請求長度,對于上傳文件,命令執行來講,加密的參數不定長。但是對于密鑰交互,獲取基本信息來講,payload都為定長
哥斯拉(base64加密):
特征檢測
1、發送一段固定代碼(payload),http響應為空
2、發送一段固定代碼(test),執行結果為固定內容
3、發送一段固定代碼(getBacisInfo)