簡介
冰蝎是一款基于Java開發(fā)的動態(tài)加密通信流量的新型Webshell客戶端,由于通信流量被加密,傳統(tǒng)的WAF、IDS 設(shè)備難以檢測,給威脅狩獵帶來較大挑戰(zhàn)。冰蝎其最大特點(diǎn)就是對交互流量進(jìn)行對稱加密,且加密密鑰是由隨機(jī)數(shù)函數(shù)動態(tài)生成,因此該客戶端的流量幾乎無法檢測。
github地址:https://github.com/rebeyond/Behinder/releases
在流量層,冰蝎的aes特征一直是廠商查殺的重點(diǎn),在主機(jī)層,aes相關(guān)的API也是一個強(qiáng)特征。既然是特征,那就一定存在一個一成不變的常量,那我們就把這個特征泛化一下,讓他成為變量。為了一勞永逸解決這個問題,v4.0版本提供了傳輸協(xié)議自定義功能,讓用戶對流量的加密和解密進(jìn)行自定義,實(shí)現(xiàn)流量加解密協(xié)議的去中心化。v4.0版本不再有連接密碼的概念,你的自定義傳輸協(xié)議的算法就是連接密碼
安裝
先要下載文件:
然后:
回車啟動:
使用
生成木馬
然后就會生成:
將shell.php上傳至web目錄,然后進(jìn)行添加:
保存后雙擊即可進(jìn)入:
平行空間
反彈shell
可以和MSF和CS聯(lián)動
按照提示,在msf中做好監(jiān)聽:
通信過程
冰蝎的通信過程可以分為兩個階段:
- 密鑰協(xié)商
- 加密傳輸
- 第一階段-密鑰協(xié)商
1)攻擊者通過 GET 或者 POST 方法,形如 http://192.168.3.60/shell.php?pass=645 的請求服務(wù)器密鑰;
2)服務(wù)器使用隨機(jī)數(shù) MD5 的高16位作為密鑰,存儲到會話的 $_SESSION 變量中,并返回密鑰給攻擊者。 - 第二階段-加密傳輸
1)客戶端把待執(zhí)行命令作為輸入,利用 AES 算法或 XOR 運(yùn)算進(jìn)行加密,并發(fā)送至服務(wù)端;
2)服務(wù)端接受密文后進(jìn)行 AES 或 XOR 運(yùn)算解密,執(zhí)行相應(yīng)的命令;
3)執(zhí)行結(jié)果通過AES加密后返回給攻擊者。
加密原理
1、本地對Payload進(jìn)行加密,然后通過POST請求發(fā)送給遠(yuǎn)程服務(wù)端;
2、服務(wù)端收到Payload密文后,利用解密算法進(jìn)行解密;
3、服務(wù)端執(zhí)行解密后的Payload,并獲取執(zhí)行結(jié)果;
4、服務(wù)端對Payload執(zhí)行結(jié)果進(jìn)行加密,然后返回給本地客戶端;
5、客戶端收到響應(yīng)密文后,利用解密算法解密,得到響應(yīng)內(nèi)容明文。
一個完整的傳輸協(xié)議由兩部分組成,本地協(xié)議和遠(yuǎn)程協(xié)議。由于客戶端使用Java開發(fā),因此本地協(xié)議的加解密算法需要用Java實(shí)現(xiàn)。遠(yuǎn)程協(xié)議根據(jù)服務(wù)端語言類型,可能為Java、PHP、C#、ASP。無論用哪種語言,同一個名稱的傳輸協(xié)議,本地和遠(yuǎn)程的加解密邏輯應(yīng)該是一致的,這樣才能實(shí)現(xiàn)本地加密后,遠(yuǎn)程可以成功解密,遠(yuǎn)程加密后,本地同樣也可以解密(因此如果修改默認(rèn)的aes協(xié)議的key,則需要同時修改本地和遠(yuǎn)程的加密函數(shù)和加密函數(shù)中的key)
一個傳輸協(xié)議必須包含一對本地加解密函數(shù),至少包含一對遠(yuǎn)程加解密函數(shù)(Java、PHP、C#、ASP中的一個或者多個)如下是傳輸協(xié)議中的本地加解密函數(shù)與遠(yuǎn)程加解密函數(shù):
這樣就能對應(yīng)上述的流程??!
流量特征
Accept字段
Accept: application/json, text/javascript, */*; q=0.01
檢測方式:
瀏覽器可接受任何文件,但最傾向application/json和 text/javascript
Content-Type
Content-type: Application/x-www-form-urlencoded
檢測方式:
可以把這個字段作為一個弱特征,輔助其他特征來檢測
User-agent
冰蝎設(shè)置了10種User-Agent,每次連接shell時會隨機(jī)選擇一個進(jìn)行使用。
這個主要是將冰蝎中的10種UA都記錄下來然后進(jìn)行匹配:
端口
冰蝎與webshell建立連接的同時,javaw也與目的主機(jī)建立tcp連接,每次連接使用本地端口在49700左右,每連接一次,每建立一次新的連接,端口就依次增加。
可以對符合該范圍內(nèi)的端口告警。
PHP webshell 中存在固定代碼
$post=Decrypt(file_get_contents(“php://input”));
eval($post);
content字段中,將eval($post)作為流量特征納入。
長連接
冰蝎通訊默認(rèn)使用長連接,避免了頻繁的握手造成的資源開銷。默認(rèn)情況下,請求頭和響應(yīng)頭里會帶有 Connection。
Connection: Keep-Alive
可以作為輔助的流量特征。
固定的請求頭和響應(yīng)頭
請求:
dFAXQV1LORcHRQtLRlwMAhwFTAg/M
響應(yīng):
TxcWR1NNExZAD0ZaAWMIPAZjH1BFBFtHThcJSlUXWEd文章來源:http://www.zghlxwxcb.cn/news/detail-431800.html
連接密碼
默認(rèn)時,所有冰蝎4.0 webshell都有“e45e329feb5d925b” 一串密鑰。該密鑰為連接密碼32位md5值的前16位,默認(rèn)連接密碼rebeyond文章來源地址http://www.zghlxwxcb.cn/news/detail-431800.html
到了這里,關(guān)于webshell管理工具-冰蝎(Behinder)的安裝和基礎(chǔ)使用(msf聯(lián)動,流量特征)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!