### 如何隐藏 CS 流量

**1. 域前置**

域前置是一种非常有效的流量隐藏技术，它利用了内容分发网络（CDN）的特性

**核心思想：** 攻击者将 CS 流量伪装成对一个著名且无害的域名的访问请求（比如 `www.google.com` 或 `www.amazon.com`）。当请求到达 CDN 服务器后，CDN 服务器会根据请求头中的特定字段（如 `Host` 字段），将流量转发到攻击者控制的真正恶意域名或 IP 地址上

**工作流程：**

1. 你注册一个域名，例如 `attacker.com`
2. 将 `attacker.com` 的 CNAME 记录指向一个支持域前置的 CDN 服务提供商（如 Amazon CloudFront 或 Akamai）
3. 在 CS 的配置文件中，将监听器的 Host Header 设置为 `attacker.com`
4. 在 Beacon 的配置文件中，将 Host 设置为公共域名，例如 `www.google.com`

**为什么有效？** 网络安全设备看到的是对 `www.google.com` 的访问请求，这通常是白名单流量，很难被拦截。只有当流量到达 CDN 服务器后，其内部转发机制才会将其导向真正的恶意服务器

**2. Malleable C2 配置文件**

这是隐藏 CS 流量最基本也是最强大的方法。Malleable C2 配置文件允许你自定义 Beacon 的所有网络通信特征，使其看起来像合法的流量

**核心思想：** CS 的默认流量特征非常明显。通过修改 **Malleable C2 配置文件**，你可以改变 Beacon 的 HTTP 请求头、响应头、URI、HTTP POST 请求中的数据格式等等，使其模仿其他应用程序的流量，如 Google Chrome、Office 365 等

**主要配置项：**

- **`http-get`：** 定义 Beacon 向 C2 服务器获取任务的 GET 请求。你可以自定义 `user-agent`、`uri` 等
- **`http-post`：** 定义 Beacon 向 C2 服务器回传数据的 POST 请求。你可以自定义 `uri`、`data` 等
- **`headers`：** 修改请求头，让其看起来像正常的 Web 流量
- **`stage`：** 更改 Beacon 的 Payload 特征，使其更难被检测

**示例：** 一个精心制作的 Malleable C2 配置文件，可以使 Beacon 的流量看起来像在访问 Outlook Web Access 或者一个合法的 CDN 资源。这大大增加了网络安全设备的识别难度。

**3. DNS over HTTPS（DoH）隧道**

DoH 是一种将 DNS 查询通过加密的 HTTPS 协议发送的技术。你可以利用它来隐藏 CS 的 DNS 流量

**核心思想：** 传统的 DNS 流量是明文的，很容易被监控。如果你使用 DNS 作为 C2 通信信道，将 Beacon 的 DNS 请求伪装成 DoH 流量，可以有效绕过一些防火墙的 DNS 流量检测

**优点：**

- **加密：** 流量全程加密，难以被中间人分析
- **伪装性：** 将 DNS 流量混入正常的 HTTPS 流量中，非常隐蔽

**实现方式：** 需要使用支持 DoH 的 CS 插件或者自定义脚本来构建隧道

**4. 利用其他协议隐藏流量**

除了 HTTP/HTTPS 和 DNS，CS 还可以利用其他协议进行 C2 通信，从而绕过针对 Web 流量的检测

**a. SMB Beacon**

SMB Beacon 利用 SMB 协议在内网中进行横向移动和 C2 通信。它不产生任何出站流量，所有通信都在内网主机之间进行。 **优点：** 完美隐藏了出站流量，只在内网活动，非常适合内网横向渗透。 **缺点：** 无法从外部直接控制，需要先在一个跳板机上建立一个 HTTP/DNS Beacon

**b. ICMP Beacon**

ICMP Beacon 利用 ICMP 协议进行 C2 通信。 **优点：** 许多网络环境对 ICMP 流量审查不严，因此隐蔽性较好。 **缺点：** 传输数据量小，速度慢，不稳定