32位md5解密_冰蝎特征檢測及報文解密

點擊“藍字”關注我們,不迷路~??前言

19年駐場于某金融單位。參加19年9月、11月兩次攻防演練,負責攻防演練組織、技術支持和復盤。期間,多個攻擊隊伍使用冰蝎 webshell ,防守方監測時確實各 IDS 確實報出 webshell 連接,但無法看到請求和返回詳情。現市場已存在可解密冰蝎密文的IDS,由于我所在部門,三家廠商的安全設備均不可判斷為冰蝎 webshell 和解密冰蝎,于是客戶要求想辦法做密文解密。下載pcap包截圖如下:

da4bdb607ed3c08850d0b33fcfb6b635.png注:本文以冰蝎v2.0.1版本PHP語言為闡述。

一、冰蝎-動態加密算法

(一)?冰蝎簡介

冰蝎是一款基于Java開發的動態加密通信流量的新型Webshell客戶端。老牌 Webshell 管理神器——中國菜刀的攻擊流量特征明顯,容易被各類安全設備檢測,實際場景中越來越少使用,加密 Webshell 正變得日趨流行。由于通信流量被加密,傳統的 WAF、IDS 設備難以檢測,給威脅狩獵帶來較大挑戰。冰蝎其最大特點就是對交互流量進行對稱加密,且加密秘鑰是由隨機數函數動態生成,因此該客戶端的流量幾乎無法檢測。冰蝎目前最新版本為v2.0.1,兼容性已經日益完善,包括虛擬終端、Socks代理、文件管理、反彈shell、數據庫管理等強大的功能,方便部署使用。3b3f4ee8c6efa3d46d457ed6f02a8fb8.png圖1-1?冰蝎webshell

(二)?冰蝎工具通信原理

冰蝎的通信過程可以分為兩個階段:
  1. 密鑰協商
  2. 加密傳輸

1.?第一階段-密鑰協商

1)攻擊者通過 GET 或者 POST 方法,形如 http://127.0.0.1/shell.aspx?pass=645 的請求服務器密鑰;2)服務器使用隨機數 MD5 的高16位作為密鑰,存儲到會話的 $_SESSION 變量中,并返回密鑰給攻擊者。

2.?第二階段-加密傳輸

1)客戶端把待執行命令作為輸入,利用 AES 算法或 XOR 運算進行加密,并發送至服務端;2)服務端接受密文后進行 AES 或 XOR 運算解密,執行相應的命令;3)執行結果通過AES加密后返回給攻擊者。f84519c27b240cf385fe291cf06c861f.png圖 1?2 冰蝎執行流程圖Wireshark下抓取冰蝎(v2.0.1)數據包詳情如下圖1-3、1-44f3cfb43cef09f397a5dbdd2bc25153f.png377ba67d46b68286724a9bcb0894ec8a.png

、冰蝎特征檢測

總結冰蝎在流量交互中的特征,這些特征可分為兩類。一類是可繞過特征,這類特征攻擊者可通過構造報文進行繞過,致使設備檢測不到冰蝎 webshell 特征。另一類是非可繞過特征,攻擊者在某些情景無法更改 HTTP 某些字段,致使有固定報文字段可供設備檢測。使用單個特征誤報較高,但多個特征配合使用可降低誤報,推薦多個特征搭配使用,進一步提升特征檢測的準確性。

(一)?可繞過特征

1.?Accept字段

Accept是HTTP協議常用的字段,但冰蝎默認 Accept 字段的值卻很特殊,這個特征存在于冰蝎的任何一個通訊階段。如下:
Accept: text/html,image/gif, image/jpeg, *; q=.2, */*; q=.2
6f75dbeb8468edf578ac612855cc1823.png圖2-1?請求體Accept字段

2.?UserAgent字段

冰蝎內置了十余種 UserAgent ,每次連接 shell 會隨機選擇一個進行使用。如果發現歷史流量中同一個源IP訪問某個URL時,命中了以下列表中多個 UserAgent ,可基本確認為冰蝎特征。以下 UserAgent 列表是從冰蝎的jar包中提取。6378584f2545e70468cad6969a9eb5fc.png請求體UserAgent如圖2-2

3.?長連接

冰蝎通訊默認使用長連接,避免了頻繁的握手造成的資源開銷。默認情況下,請求頭和響應頭里會帶有 Connection。Connection: Keep-Alive35ed959a19a22a60defc4b24cabe62c8.png請求體Connection如圖2-3

(二)?非可繞過特征

1.?密鑰傳遞時URL參數

密鑰傳遞時,URI只有一個參數,key-value型參數,只有一個參數。Key是黑客給shell設置的密碼,一般為10位以下字母和數字,很少有人設置特殊字符做一句話密碼的(少數情況我們不考慮)。而Value一般是2至3位隨機純數字。另外webshell的擴展名一般為可執行腳本,如下:
\.(php|jsp|asp|aspx)\?(\w){1,10}=\d{2,3}  HTTP/1.1
bfcbfcde38f954c3d0d3099acff072fa.png請求密鑰URL圖2-4:

2.??加密時的URL參數

在加密通訊過程中,無URL參數。如下:
\.(php|jsp|asp|jspx|asa)    HTTP/1.1

3.?傳遞的密鑰

加密所用密鑰是長度為16的隨機字符串,小寫字母+數字組成。密鑰傳遞階段,密鑰存在于Response Body中。正則如下:
^[a-fA-F0-9]{16}$
8da2de991d5880c5c3485d5a9232acbd.png返回隨機密鑰如圖2-5:

4.加密數據上行

在加密通訊時,php/jsp shell 會提交base64編碼后的請求數據。用如下正則便可以很好的匹配。數字20是指定的字符出現至少20個才會匹配。正則如下:
\r\n\r\n[a-zA-Z\d\+\/]{20,}

5.?密數據下行

該特征同樣存在于加密通訊時,在返回包中的數據是加密后的二進制數據。這里使用正則的“非”匹配二進制非常見字符。正則如下:
” [^\w\s><=\-‘”\:\;\,\!\(\)\{\}][\w]{2}[^\w\s><=\-‘”\.\:\;\,\!\(\)\{\}][a-zA-Z\d]{2}”

三、冰蝎報文解密

(一)?解密思路

在服務器開啟 PHP OpenSSL 擴展腳本的情況下,冰蝎密文采用對稱加密算法AES加密,加密后還會進行 base64 編碼。在客戶端發起密鑰協商后,會返回16位明文隨機密鑰。在安全監控設備采集流量較全的情況下,可截獲密文流量和密鑰,通過解密解碼平臺即可獲取冰蝎密文詳情。

(二)?準備工具

AES在線解碼 (http://tools.bugscaner.com/cryptoaes/)BASE64在線解碼(https://tool.oschina.net/encrypt?type=3)

(三)實現方式

1.?獲取密鑰

從請求密鑰的數據包中獲取密鑰:29ab481053a0ebebb2d15d169375371594e91e72a746c03a.png

2.?獲取請求密文、返回密文

da4bdb607ed3c08850d0b33fcfb6b635.png371c9c306c8ee5e28d59a3da28eb13a8.png

3.?借助在線解密解碼平臺

(1)輸入密鑰和請求密文,解密后為 base64 編碼;base64解碼d5b707c16f984ff6267749bac7d3c487.pngwhoami解密fefe49386c16c739f162b7900d3d1b0f.pngwhoami解碼(2)輸入密鑰和返回密文,解密后為base64編碼;base64解碼f8023475dfb47c5e5cefc559f601daf6.pngd228e3cea7cf6fca8be14236acf88643.png本文以 php 語言來研究,在服務器開啟 PHP OpenSSL 擴展腳本的情況下,冰蝎密文采用對稱加密算法AES加密,加密后還會進行base64編碼。在客戶端發起密鑰協商后,會返回16位明文隨機密鑰。在安全監控設備采集流量較全的情況下,可截獲密文流量和密鑰,通過解密解碼平臺即可獲取冰蝎密文詳情。本文是個人網上查閱相關資料研究和搭環境抓包所寫,如有問題還望指正看都看完了,還不點這里試試474519b0cc6074024b1e51f7499ffdf1.gif

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258978.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258978.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258978.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用extern C改善顯式調用dll

extern "C"的簡單解析 我們前面介紹了顯式調用dll的方法&#xff0c;例如 &#xfeff;&#xfeff;http://www.cnblogs.com/laogao/archive/2012/12/07/2806528.html &#xff0c;其中在GetProcAddress第二個參數的填寫煞費苦心&#xff0c;我們需要比較麻煩…

《移動App測試的22條軍規》—App測試綜合案例分析23.13節測試微信App的流量和電量消耗...

本節書摘來自異步社區《移動App測試的22條軍規》一書中的App測試綜合案例分析&#xff0c;第23.13節測試微信App的流量和電量消耗&#xff0c;作者黃勇&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 23.13 測試微信App的流量和電量消耗關于微信App消耗流…

UVA 10269 Super Mario,最短路+動態規劃

這個題目我昨晚看到的&#xff0c;沒什么思路&#xff0c;因為馬里奧有boot加速器&#xff0c;只要中間沒有城堡&#xff0c;即可不耗時間和腳力&#xff0c;瞬間移動不超過L距離&#xff0c;遇見城堡就要停下來&#xff0c;當然不能該使用超過K次。。。我糾結了很久&#xff0…

python做數據可視化的代碼_Python數據可視化正態分布簡單分析及實現代碼

Python說來簡單也簡單&#xff0c;但是也不簡單&#xff0c;尤其是再跟高數結合起來的時候。。。 正態分布&#xff08;Normaldistribution&#xff09;&#xff0c;也稱“常態分布”&#xff0c;又名高斯分布&#xff08;Gaussiandistribution&#xff09;&#xff0c;最早由A…

ACdream 1061(abs用法)

題目鏈接&#xff1a;http://acdream.info/problem?pid1061 主要是abs用法&#xff0c;看題目的數據 long long的最大值&#xff1a;9223372036854775807 long long的最小值&#xff1a;-9223372036854775808 unsigned long long的最大值&#xff1a;18446744073709551615 由題…

wpf window 不執行show 就不能load執行_Numpy反序列化命令執行漏洞分析(CVE-2019-6446)附0day...

1、介紹 NumPy 是 Python 機器學習庫中之一&#xff0c;主要對于多為數組執行計算。NumPy 提供大量的 函數和操作&#xff0c;能夠幫助程序員便利進行數值計算。在 NumPy 1.16.0 版本之前存在反序列化 命令執行漏洞&#xff0c;用戶加載惡意的數據源造成命令執行。2、環境 軟件…

使用Def文件導出dll

前面我們介紹了dll的生成&#xff0c;大多數是使用extern "C"__declspec(dllexport)函數名的方法導出dll。其實我們還有另一種方法來導出dll。 先介紹參考文獻&#xff1a; 1.dll導出聲明相關 2.VS2012中 C創建DLL圖解 3.DLL中導出函數的兩種方式(dllexport與.…

HDU 1003 Maxsum

題目大意&#xff1a;求出數列的最大子段和&#xff0c;并且說明是從第幾項至第幾項。 題解1&#xff1a;簡單貪心。 #include <cstdio> #define rep(i,n) for(int i1;i<n;i) int main(){int t,l0;scanf("%d",&t);while(t--&&l){if(l!1)printf…

《JavaScript面向對象精要》——1.8 原始封裝類型

本節書摘來自異步社區《JavaScript面向對象精要》一書中的第1章&#xff0c;第1.8節&#xff0c;作者&#xff1a;【美】Nicholas C. Zakas著&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看 1.8 原始封裝類型 JavaScript中一個最讓人困惑的部分可能就是原始…

XML語法學習

本文章集合兩篇博文而寫&#xff0c;兩篇博文地址&#xff1a; XML學習總結(二)——XML入門&#xff1a; XML基礎<第一篇> XML簡介 XML是一種標記語言&#xff0c;用于描述數據&#xff0c;它提供一種標準化的方式來來表示文本數據。XML文檔以.xml為后綴。需要徹底注…

FM實現F4幫助系列三:彈出框多篩選…

FM實現F4幫助系列三&#xff1a;彈出框多篩選條件的搜索幫助&#xff08;根據搜索幫助篩選字段&#xff09;函數&#xff1a;F4IF_GET_SHLP_DESCRF4IF_START_VALUE_REQUEST效果圖&#xff1a;本例子代碼&#xff1a;找到需要的幫助:*&------------------------------------…

[數分提高]2014-2015-2第9教學周第1次課 (2015-04-28)

設 $$\bex a,b>0,\quad 0\leq f\in \calR[a,b],\quad \int_a^b xf(x)\rd x0. \eex$$ 試證: $$\bex \int_a^b x^2f(x)\rd x\leq ab \int_a^b f(x)\rd x; \eex$$ 并給出使得下列不等式成立的 (您認為的) 最優數: $$\bex \int_a^b x^3f(x)\rd x\leq (\quad) \int_a^b f(x)\rd x…

《計算復雜性:現代方法》——0.2 判定問題/語言

本節書摘來自華章計算機《計算復雜性&#xff1a;現代方法》一書中的第0章&#xff0c;第0.2節&#xff0c;作者 &#xff3b;美&#xff3d;桑杰夫阿羅拉&#xff08;Sanjeev Arora&#xff09;&#xff0c;博阿茲巴拉克&#xff08;Boaz Barak&#xff09;&#xff0c;譯 駱吉…

python從date目錄導入數據集_使用python劃分數據集

無論是訓練機器學習或是深度學習&#xff0c;第一步當然是先劃分數據集啦&#xff0c;今天小白整理了一些劃分數據集的方法&#xff0c;希望大佬們多多指教啊&#xff0c;嘻嘻~ 首先看一下數據集的樣子&#xff0c;flower_data文件夾下有四個文件夾&#xff0c;每個文件夾表示一…

開源牛人 zcbenz

事情是這樣的&#xff0c;微軟推出了Visual Studio Code&#xff0c;我很好奇他怎么做跨平臺的&#xff0c;所以就找找資料&#xff0c;在他的網站中是這么描述的&#xff1a; Architecturally, Visual Studio Code combines the best of web, native, and language-specific t…

eclipse 與 tomcat 的那些路徑

我們用mvn創建了一個web工程&#xff0c;同時希望在eclipse里調試開發。mvn有mvn的路徑要求&#xff0c;eclispe有eclipse的默認路徑&#xff0c;怎么整合二者&#xff1f; 首先介紹一下eclipse的默認路徑。 重點在Server Locations里面。 下面我們把[workspace]/.metadata\.pl…

boost解析xml文件

前面我們介紹了xml文件&#xff0c;今天我們試著用boost庫來解析xml文件。我們將舉兩個例子來說明怎么使用。 來自boost官方的例子 先看xml文件的內容&#xff1a; <debug><filename>debug.log</filename><modules><module>Finance</modul…

使用網橋模式(bridge networking mode)配置KVM-QUME虛擬機網絡

&#xff08;1&#xff09;linux要工作在網橋模式&#xff0c;所以必須安裝兩個RPM包。即&#xff1a;bridge-utils和tunctl。它們提供所需的brctl、tunctl命令行工具。能夠使用yum在線安裝&#xff1a; [rootserver3 ~]# yum install bridge-utils &#xff08;2&#xff09;查…

python數據處理常用函數_pandas數據分析常用函數總結大全:上篇

基礎知識在數據分析中就像是九陽神功&#xff0c;熟練的掌握&#xff0c;加以運用&#xff0c;就可以練就深厚的內力&#xff0c;成為絕頂高手自然不在話下&#xff01; 為了更好地學習數據分析&#xff0c;我對于數據分析中pandas這一模塊里面常用的函數進行了總結。整篇總結&…

XML的應用

1.XML的定義: XML 于 1998 年 2 月 10 日成為 W3C 的推薦標準。xml一般指可擴展標記語言&#xff0c;可擴展標記語言是一種很像超文本標記語言的標記語言。它的設計宗旨是傳輸數據&#xff0c;而不是顯示數據。 2.通過XML我們可以自定義自己的標簽&#xff0c;如&#xff1a; &…