### CS 流量特征

一、HTTP/HTTPS 通信特征

CS 的核心通信依赖 HTTP/HTTPS，其请求和响应具有以下独特之处：

- 请求路径 (URI)
  - 默认路径：早期的 CS 版本使用如 `/api/rc4`、`/pixel` 等明显特征的路径。虽然现在已不常见，但在老旧的、未及时更新的 CS 木马中仍可能出现
  - 伪装路径：高级攻击者会配置 Profile，将路径伪装成正常的 URL，如 `/login`、`/css/main.css`。此时，检测的关键于路径与请求方法的合理性。例如，`POST /css/main.css` 或 `GET /submit` 都是极度可疑的行为
  - 长度与随机性：某些配置文件会生成长而随机的路径，例如 `/hjd83kalsd94jfnnasd83jklfn`。在高频访问中，这种随机性反而成为一种异常
- User-Agent (UA)
  - 默认 UA：早期的 CS 使用一些固定的、容易被识别的 UA 字符串
  - 伪造 UA：攻击者会伪装成常见的浏览器 UA，如 Chrome、Firefox。然而，可以从一致性和时效性来判断：如果来自同一 C2 的所有 Beacon 都使用完全相同的、且已过时的 UA 字符串，则很可能存在 CS 攻击

二、TLS 证书与指纹特征

如果 CS 使用 HTTPS 进行通信，其 TLS/SSL 证书会留下独特的指纹，这是非常强的检测指标

- 默认证书：CS 服务器默认使用自签名证书，其 `Subject` 字段通常带有明显的默认值，例如 `CN=Major C. A. Lindheim` 或 `O=Internet Widgits Pty Ltd`
- JARM 指纹：这是一种主动 TLS 指纹识别技术。CS 的默认配置具有非常固定的 JARM 指纹。即使攻击者修改了证书的主题信息，默认的 JARM 指纹在很长一段时间内仍保持不变，这使得 JARM 成为检测 CS 最有效的手段之一
- 证书透明度（CT）日志：如果攻击者使用了看似合法的域名并申请了证书，我们可以通过检查该域名是否出现在 CT 日志中，来进一步确认和溯源

三、请求与响应行为特征

CS 的 HTTP 通信并非简单的请求-响应，而是一种高度规律性的“心跳”模式

- 心跳模式：Beacon 会以固定的时间间隔（如 10s、60s）向 C2 服务器发送请求。这种高度规律性的、永不停止的通信模式，即使在机器空闲时也存在，与正常用户行为截然不同
- 请求与响应载荷：心跳请求的载荷（如 Cookie、POST 数据）长度可能固定不变。而当服务器下发指令时，响应包的长度会变长。回传数据时，客户端则会发送一个 POST 请求，其 Body 部分经过加密和 Base64 编码
- HTTP 状态码：CS C2 服务器的 HTTP 响应状态码绝大多数情况下都是 200 OK，即使请求是无效的。这是其反侦察的手段之一，与正常服务器对错误请求返回 404/500 的行为形成鲜明对比。

四、DNS 与横向移动

为了绕过传统安全设备的检测，CS 提供了更高级的通信方式和行为模式

- DNS Beacon
  - 查询类型：通常使用 `TXT` 和 `AAAA` 记录进行数据传输，`A` 记录用于心跳
  - 子域名爆破：Beacon 会频繁对特定域名进行 DNS 查询，查询的前缀是长而随机的字符串，用于编码数据
  - 查询频率：与 HTTP 类似，具有固定的心跳间隔，产生持续、规律的 DNS 查询流量
- 横向移动
  - SMB/TCP Beacon：用于在内网中横向移动，它们会创建命名管道或监听特定端口。异常的命名管道或内部端口连接行为是重要的检测指标