涉及版本
v3.0_beta
v2.0.1
v1.2.1
流量解密网址
https://tool.box3.cn/aes.html
连接流量
冰蝎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: 16
87d29736582d9374
特征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
叨叨几句... 1 条评论
banhua 博主
好评啊