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
。在高频访问中,这种随机性反而成为一种异常
- 默认路径:早期的 CS 版本使用如
- 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:用于在内网中横向移动,它们会创建命名管道或监听特定端口。异常的命名管道或内部端口连接行为是重要的检测指标