冰蝎全版本流量特征分析

发布于 2021-09-10  818 次阅读


涉及版本

v3.0_beta
v2.0.1
v1.2.1

流量解密网址

https://tool.box3.cn/aes.html

连接流量

behinder

冰蝎1.2.1版本

流量分析


连接流程

特征1: shell.php?pass=1790265320,pass可更换为其他参数,默认pass
特征2:请求的请求头的Accept巨多,正常没这么多, Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
特征3:响应头中包含OpenSSL版本,Server: Apache/2.4.41 (Win64) OpenSSL/1.1.1c PHP/7.3.12
特征4:第一个响应包长度始终为16,因为要传输密钥Content-Length: 1687d29736582d9374
特征5:长连接,Connection: keep-alive
特征6:冰蝎通过密钥协商阶段后,会自动请求phpinfo字段,会有一个巨大的数据包,本数据包中实测长度是165804。
特征7:密钥协商完后所有的通讯都是base64
特征8:使用密钥解密第2个请求包,开头一定是assert|eval字符串

冰蝎2.0.1版本

感觉上跟v1.2.1基本一样,webshell增加了一定的兼容性。
当php不存在openssl时,手动解码

$t="base64_"."decode";
$post=$t($post."");

for($i=0;$i<strlen($post);$i++) {
$post[$i] = $post[$i]^$key[$i+1&15];
}


区别:首次连接会出现2次连接请求,且在同一个流中。
特征1:首次连接出现2次密钥协商

冰蝎3.0Beta版本

流量分析

冰蝎3.0取消了那虚假的密钥协商,写死在了webshell里

密钥部分

连接密码的32位md5的前16为aes密钥
默认密码为rebeyond

流量部分

流量基本分析不出来啥了,base64+aes128cbc,cbc底层也能改。

特征1:header格式顺序固定,固定是Content-Type、User-Agent、Cache-Control、Pragma、Host、Accept、Connection、Content-Length、Cookie顺序(一般来说Content-Length是最后)
特征2:响应头格式固定,大致同上
特征3:长度固定,第一次请求长度是1112,第一次响应的长度是128,第二次请求的长度是2220
特征4:Accept字段一如既往的多。Accept: text/html, image/gif, image/jpeg, *; q=.2, /; q=.2
特征5:第二次请求仍然默认会请求phpinfo,会发送巨大的数据包,测试长度是165804
特征6:请求头同时带:

Cache-Control: no-cache
Pragma: no-cache

响应头同时带:

Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache

game to game, not win