溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

常見(jiàn)WebShell客戶端的流量特征及檢測(cè)思路有哪些

發(fā)布時(shí)間:2021-12-18 10:03:19 來(lái)源:億速云 閱讀:224 作者:小新 欄目:網(wǎng)絡(luò)安全

這篇文章將為大家詳細(xì)講解有關(guān)常見(jiàn)WebShell客戶端的流量特征及檢測(cè)思路有哪些,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

01

概述

開(kāi)始之前先明確什么是webshell客戶端?先問(wèn)個(gè)問(wèn)題,什么是客戶端,什么是服務(wù)端?

很簡(jiǎn)單,提供服務(wù)的就是服務(wù)端,要求被服務(wù)的就是客戶端。那么回到我們的場(chǎng)景中,如果已經(jīng)種了后門(mén),用于連接后門(mén)的程序是要求被服務(wù)的,比如執(zhí)行個(gè)ps,目的是為了得到后門(mén)所在主機(jī)的進(jìn)程列表,是“被服務(wù)“的,所以稱之為客戶端。本文將在后續(xù)介紹一系列有關(guān)webshell客戶端的流量監(jiān)測(cè)手法。

WebShell客戶端是一種用于服務(wù)器上WebShell后門(mén)與攻擊客戶端之間進(jìn)行通信的程序,我們通??梢愿鶕?jù)WebShell客戶端的流量來(lái)判斷服務(wù)器上是否存在WebShell后門(mén)。

如今國(guó)內(nèi)外常用的WebShell客戶端有如下幾種:

中國(guó)菜刀(使用量最大,適用范圍最廣的WebShell客戶端);

蟻劍(一種常用的WebShell客戶端);

冰蝎(流量加密客戶端);

Cknife(C刀,使用Java語(yǔ)言編寫(xiě))

Weevely(kali中的中國(guó)菜刀)。

接下來(lái)分別介紹其流量特征。

02

中國(guó)菜刀(Chopper)

常見(jiàn)WebShell客戶端的流量特征及檢測(cè)思路有哪些

中國(guó)菜刀自誕生以來(lái)已經(jīng)歷了多個(gè)版本的更新,其功能、隱秘性也隨著更新得到很大提升。菜刀現(xiàn)在主流有三個(gè)版本在使用,分別為2011版、2014版、2016版,這三個(gè)版本中從2011版本到2014版本是功能性上進(jìn)行了增強(qiáng),從2014版本到2016版本是在隱秘性上進(jìn)行了增強(qiáng),2016版本的菜刀流量加入了混淆,使其鏈接流量更具有混淆性。

中國(guó)菜刀基本支持PHP、JSP、ASP這三種WebShell的連接,這三種語(yǔ)言所對(duì)應(yīng)的流量各有差異,各個(gè)版本也有不用。下面將按照不同版本不同語(yǔ)言組合進(jìn)行分析。其中2011版和2014版菜刀流量特征基本一致,所以放在一起分析。

中國(guó)菜刀2011版本及2014版本各語(yǔ)言WebShell鏈接流量特征

(1)PHP類WebShell鏈接流量

其中特征主要在body中,將body中流量進(jìn)行url解碼后如下:

其中特征點(diǎn)有如下三部分,

第一:“eval”,eval函數(shù)用于執(zhí)行傳遞的攻擊payload,這是必不可少的;

第二:(base64_decode($_POST[z0])),(base64_decode($_POST[z0]))將攻擊payload進(jìn)行Base64解碼,因?yàn)椴说赌J(rèn)是將攻擊載荷使用Base64編碼,以避免被檢測(cè);

第三:&z0=QGluaV9zZXQ...,該部分是傳遞攻擊payload,此參數(shù)z0對(duì)應(yīng)$_POST[z0]接收到的數(shù)據(jù),該參數(shù)值是使用Base64編碼的,所以可以利用base64解碼可以看到攻擊明文。

注:

1.有少數(shù)時(shí)候eval方法會(huì)被assert方法替代。

2.$_POST也會(huì)被$_GET、$_REQUEST替代。

3.z0是菜刀默認(rèn)的參數(shù),這個(gè)地方也有可能被修改為其他參數(shù)名。

(2)JSP類WebShell鏈接流量:

該流量是WebShell鏈接流量的第一段鏈接流量,其中特征主要在i=A&z0=GB2312,菜刀鏈接JSP木馬時(shí),第一個(gè)參數(shù)定義操作,其中參數(shù)值為A-Q,如i=A,第二個(gè)參數(shù)指定編碼,其參數(shù)值為編碼,如z0=GB2312,有時(shí)候z0后面還會(huì)接著又z1=參數(shù)用來(lái)加入攻擊載荷。

注:其中參數(shù)名i、z0、z1這種參數(shù)名是會(huì)變的,但是其參數(shù)值以及這種形式是不會(huì)變得,最主要就是第一個(gè)參數(shù)值在A-Q,這種是不變的。

(3)ASP類WebShell鏈接流量:

其中body流量進(jìn)行URL解碼后

其中特征點(diǎn)有如下三部分,

第一:“Execute”,Execute函數(shù)用于執(zhí)行傳遞的攻擊payload,這是必不可少的,這個(gè)等同于php類中eval函數(shù);

第二:OnError ResumeNext,這部分是大部分ASP客戶端中必有的流量,能保證不管前面出任何錯(cuò),繼續(xù)執(zhí)行以下代碼。

第三:Response.Write和Response.End是必有的,是來(lái)完善整個(gè)操作的。

這種流量主要識(shí)別這幾部分特征,在正常流量中基本沒(méi)有。

注:OnError Resume Next這個(gè)特征在大部分流量中存在,極少數(shù)情況沒(méi)有。

中國(guó)菜刀2016版本各語(yǔ)言WebShell鏈接流量特征

PHP類WebShell鏈接流量

其中特征主要在body中,將body中部分如下:

這個(gè)版本中流量最大的改變就是將特征進(jìn)行打斷混淆,這也給我們識(shí)別特征提供一種思路。

其中特征點(diǎn)有如下三部分,

第一:“"Ba"."SE6"."4_dEc"."OdE”,這部分是將base64解碼打斷使用.來(lái)連接。

第二:@ev"."al,這部分也是將@eval這部分進(jìn)行打斷連接,可以識(shí)別這段代碼即可。

第三:QGluaV9zZXQoImRpc3BsYXlf...,該部分是傳遞攻擊payload,payload依舊使用Base64編碼的,所以可以利用base64解碼可以看到攻擊明文來(lái)識(shí)別。

注:1.有少數(shù)時(shí)候eval方法會(huì)被assert方法替代。

JSP類WebShell鏈接流量:

該版本JSPwebshell流量與之前版本一樣,

所以分析如上:該流量是WebShell鏈接流量的第一段鏈接流量,其中特征主要在i=A&z0=GB2312,菜刀鏈接JSP木馬時(shí),第一個(gè)參數(shù)定義操作,其中參數(shù)值為A-Q,如i=A,第二個(gè)參數(shù)指定編碼,其參數(shù)值為編碼,如z0=GB2312,有時(shí)候z0后面還會(huì)接著又z1=、z2=參數(shù)用來(lái)加入攻擊載荷。

注:其中參數(shù)名i、z0、z1這種參數(shù)名是會(huì)變的,但是其參數(shù)值以及這種形式是不會(huì)變得,最主要就是第一個(gè)參數(shù)值在A-Q,這種是不變的。

ASP類WebShell鏈接流量:

其中body流量為:

2016版本流量這鏈接流量最大的變化在于body中部分字符被unicode編碼替換混淆,所以這種特征需要提取出一種形式來(lái),匹配這個(gè)混淆特征,比如“字符+%u0000+字符+%u0000”這種形式來(lái)判斷該流量。

或者直接將這部分代碼直接進(jìn)行unicode解碼,可以獲取到如2011或2014版本的asp所示的流量??梢愿鶕?jù)上一段特征來(lái)進(jìn)行判斷。

這種流量主要識(shí)別這幾部分特征,在正常流量中基本沒(méi)有。

03

中國(guó)蟻劍(AntSword)

常見(jiàn)WebShell客戶端的流量特征及檢測(cè)思路有哪些

蟻劍的很多代碼源于中國(guó)菜刀,所以他的鏈接流量與中國(guó)菜刀很相似,但是蟻劍可以擴(kuò)充性很好,可以對(duì)進(jìn)行加密、混淆等繞過(guò)處理。蟻劍默認(rèn)支持ASP以及PHP的webshell鏈接。

蟻劍PHP類WebShell鏈接流量

其中body流量進(jìn)行URL解碼后為:

其中流量最中明顯的特征為@ini_set("display_errors","0");這段代碼基本是所有WebShell客戶端鏈接PHP類WebShell都有的一種代碼,但是有的客戶端會(huì)將這段編碼或者加密,而蟻劍是明文,所以較好發(fā)現(xiàn)。

蟻劍ASP類WebShell鏈接流量

其中body流量進(jìn)行URL解碼后為:

我們可以看出蟻劍針對(duì)ASP類的WebShell流量與菜刀的流量很像,其中特征也是相同,如OnError ResumeNext、Response.End、Response.Write,其中execute在蟻劍中被打斷混淆了,變成了拼接形式Ex"&cHr(101)&"cute,同時(shí)該流量中也使用了eval參數(shù),可以被認(rèn)為明顯特征。

蟻劍繞過(guò)特征流量

由于蟻劍中包含了很多加密、繞過(guò)插件,所以導(dǎo)致很多流量被加密后無(wú)法識(shí)別,但是蟻劍混淆加密后還有一個(gè)比較明顯的特征,即為參數(shù)名大多以“_0x......=”這種形式(下劃線可替換為其他),如下圖:

常見(jiàn)WebShell客戶端的流量特征及檢測(cè)思路有哪些

所以,以_0x開(kāi)頭的參數(shù)名,后面為加密數(shù)據(jù)的數(shù)據(jù)包也可識(shí)別為蟻劍的流量特征。

04

冰蝎

常見(jiàn)WebShell客戶端的流量特征及檢測(cè)思路有哪些

其中冰蝎是近幾年出現(xiàn)的一種WebShell客戶端,該鏈接器最大的特點(diǎn)就是流量進(jìn)行加密,且加密秘鑰是由使用者來(lái)設(shè)定,但是該攔截器對(duì)WebShell的需求比較高,無(wú)法連接一句話木馬,綜上,該客戶端的流量無(wú)法檢測(cè)。

05

Cknife

常見(jiàn)WebShell客戶端的流量特征及檢測(cè)思路有哪些

Cknife流量的特征就是在body部分的參數(shù)值均為base64編碼,將該部分進(jìn)行base64解碼后,其流量特征同中國(guó)菜刀一致,所以不再另行展開(kāi)分析

06

Weevely

常見(jiàn)WebShell客戶端的流量特征及檢測(cè)思路有哪些

Weevely是kail中自帶的一款功能強(qiáng)大的WebShell客戶端,該鏈接器首先自己生成webshell,在將該webshell上傳至目的服務(wù)器后,通過(guò)Weevely進(jìn)行鏈接,該鏈接流量屬于加密流量,但是在該流量中還可以發(fā)現(xiàn)特征,進(jìn)行區(qū)分。

該流量中的攻擊載荷存在于Referer中,其中Referer中的路徑中php的查詢參數(shù)有以下參數(shù)名或值,即sa=、source=web、cd=數(shù)字、url=、ei=,即可確定該流量為客戶端流量。

關(guān)于“常見(jiàn)WebShell客戶端的流量特征及檢測(cè)思路有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI