如何隐藏 CS 流量
1. 域前置
域前置是一种非常有效的流量隐藏技术,它利用了内容分发网络(CDN)的特性
核心思想: 攻击者将 CS 流量伪装成对一个著名且无害的域名的访问请求(比如 www.google.com
或 www.amazon.com
)。当请求到达 CDN 服务器后,CDN 服务器会根据请求头中的特定字段(如 Host
字段),将流量转发到攻击者控制的真正恶意域名或 IP 地址上
工作流程:
- 你注册一个域名,例如
attacker.com
- 将
attacker.com
的 CNAME 记录指向一个支持域前置的 CDN 服务提供商(如 Amazon CloudFront 或 Akamai) - 在 CS 的配置文件中,将监听器的 Host Header 设置为
attacker.com
- 在 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 流量审查不严,因此隐蔽性较好。 缺点: 传输数据量小,速度慢,不稳定