### WebShell 工具流量特征

1. 蚁剑（AntSword）

蚁剑是一款功能强大且高度可定制的开源 WebShell 管理工具。它的流量特征主要依赖于其编码器（Encoder）和连接器（Connector）的配置

- 默认流量特征：
  - POST 请求：蚁剑通常使用 `POST` 请求，将恶意代码和命令作为参数发送
  - 加密与编码：默认情况下，蚁剑会使用 `base64` 对数据进行编码。在流量中，可以看到一个或多个经过 `base64` 编码的参数，其值通常是 `eval()` 或 `system()` 等函数
  - 特定标识：在某些默认的编码器中，参数名可能会包含特定字符串，但由于其高度可定制，这并非可靠的识别依据

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` 等请求头的值都是随机生成的，以模仿正常的浏览器行为

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 容器的内存中。这意味着它没有落地文件，无法通过文件查杀来定位
  - 流量混淆：利用多层混淆和编码，使得流量分析变得极其困难