WebShell 工具流量特征
1. 蚁剑(AntSword)
蚁剑是一款功能强大且高度可定制的开源 WebShell 管理工具。它的流量特征主要依赖于其编码器(Encoder)和连接器(Connector)的配置
- 默认流量特征:
- POST 请求:蚁剑通常使用
POST
请求,将恶意代码和命令作为参数发送 - 加密与编码:默认情况下,蚁剑会使用
base64
对数据进行编码。在流量中,可以看到一个或多个经过base64
编码的参数,其值通常是eval()
或system()
等函数 - 特定标识:在某些默认的编码器中,参数名可能会包含特定字符串,但由于其高度可定制,这并非可靠的识别依据
- POST 请求:蚁剑通常使用
2. 哥斯拉(Godzilla)
哥斯拉是一个强大的 WebShell 管理工具,其核心特点是无文件内存马和加密通信
- 流量特征:
- 内存马通信:哥斯拉的 WebShell 本身通常是一个无文件马,注入到 Web 容器的内存中。这意味着它没有落地文件,传统的文件查杀方法无效
- 加密与伪装:哥斯拉的流量与冰蝎类似,同样是加密的,并且其请求头可以高度定制,以伪装成正常的流量
- 可变参数:与冰蝎不同,哥斯拉的请求参数和值可能会发生变化,这使得基于参数名的检测变得困难
3. 中国菜刀(Chopper)
中国菜刀是一款老牌且经典的 WebShell 管理工具。它的流量特征非常明显,是传统 WAF 和 IDS 重点防御的对象
- 流量特征:
- 明文传输:菜刀的流量通常是明文的。它使用
base64
编码,但没有进行加密 - 特定参数:它会固定使用一个名为
z0
、z1
或其他简单字符的参数来传递恶意代码 - URL请求特征:菜刀的URL请求中通常会包含
eval()
、assert()
等关键字,这些关键字是其命令执行的标志 - 固定请求头:菜刀的
User-Agent
字段通常是固定的,例如User-Agent: baiduspider
。
- 明文传输:菜刀的流量通常是明文的。它使用
4. 冰蝎 v1.0
冰蝎的第一个版本,其流量特征相对简单,容易被传统的安全设备检测到
- 通信方式:使用
AES
加密,密钥固定为0x24
- 请求特征:URL 中带有
?pass=xxx
参数,其中pass
是加密密钥的标识符 - 响应特征:服务器返回的数据也是加密的,但由于其加密算法简单,很容易被解密分析
5. 冰蝎 v2.0
冰蝎 v2.0 在 v1.0 的基础上进行了重大改进,旨在增强隐蔽性
- 通信方式:引入了 动态密钥。在首次连接时,客户端会发送一个包含随机
user-agent
和cookie
的请求,服务器根据这些信息生成一个 AES 加密密钥,并在后续通信中使用 - 请求特征:
- 无固定参数:URL 中不再有明显的
?pass=
参数,取而代之的是将加密数据隐藏在请求头中 - 伪装请求头:
user-agent
、cookie
等请求头的值都是随机生成的,以模仿正常的浏览器行为
- 无固定参数:URL 中不再有明显的
6. 冰蝎 v3.0
这是目前最常见且最具威胁的版本,它在 v2.0 的基础上进一步升级了通信协议,大大增加了检测难度
- 通信方式:引入了双向加密和随机密钥,通信过程更为复杂。客户端和服务器会进行一次类似于 TLS 握手的加密协商过程
- 流量特征:
- 无固定长度:与 v2.0 不同,v3.0 的数据包长度不再固定,而是随着传输数据的大小而变化。这使得基于数据包长度的检测方法失效
- 伪装通信:v3.0 的通信流量可以伪装成各种协议,例如 WebSocket、HTTP2 等,以逃避传统的网络流量分析工具
- 请求参数:v3.0 不再将加密数据放在请求头,而是将其隐藏在请求体中,并且可以通过定制来伪装成正常表单提交或 JSON 数据
- TLS 指纹:如果使用 HTTPS,v3.0 的自签名证书和 TLS 握手过程会产生独特的指纹。然而,攻击者可以通过定制
Malleable C2
Profile 来改变这些指纹
7. 冰蝎 v4.0
冰蝎 v4.0 在隐蔽性上更上一层楼,主要增强了免杀和无文件攻击能力
- 通信方式:继续沿用 v3.0 的加密通信协议,但加入了更高级的内存马技术
- 流量特征:
- 无文件落地:v4.0 的 WebShell 通常是一个无文件马,直接注入到 Web 容器的内存中。这意味着它没有落地文件,无法通过文件查杀来定位
- 流量混淆:利用多层混淆和编码,使得流量分析变得极其困难