CS反制之批量伪装上线
字数 1418 2025-08-09 13:33:32

Cobalt Strike反制技术:批量伪装上线深度解析

一、Cobalt Strike上线机制分析

1.1 上线过程抓包分析

使用Wireshark抓取Cobalt Strike上线流量,可观察到以下关键特征:

  • 明显的加密Cookie数据
  • 使用RSA非对称加密算法
  • 需要私钥Private Key才能解密

1.2 上线数据包解密

通过特定Java代码可提取Private Key与Public Key(需在JDK11环境下运行):

// 代码需放置在CS服务器的CS文件夹下,与"cobaltstrike.jar"同一目录
java -cp "cobaltstrike.jar" Dumpkeys.java

解密后的HTTP类型Beacon上线包中的Cookie包含RSA加密的主机元数据。

二、重放攻击原理与实现

2.1 重放攻击验证

通过重放数据包可观察到:

  • last时间戳被重置为1秒
  • 证明重放攻击可行性

2.2 防御策略

可编写循环语句持续模拟上线操作,使攻击者:

  • 能够上线但无法执行有效命令
  • 增加攻击者识别真实主机的难度

三、伪造上线技术深入解析

3.1 Stager工作机制

  • Stager是小巧的初始Payload
  • 从Beacon Staging Server下载完整Stage
  • 注入内存执行完整功能

3.2 Stager URL特征

  • 包含4位随机校验码
  • 可作为网络测绘识别特征
  • 校验码拼接在URL后请求Stage代码

四、Beacon配置解密技术

4.1 解密工具对比

  1. CobaltStrikeParser

    python parse_beacon_config.py stage文件 --json
    
    • 可提取Public Key
    • 显示CS服务器地址
  2. 1768.py

    • 输出十六进制字符串
    • 需进一步转换处理

4.2 Public Key处理要点

  • 删除无效Padding部分
  • 正确格式:MIGfXXXXXXXXXXXXXXXX==
  • 去除末尾多余的AAAAA等字符

五、伪造上线实现方案

5.1 信息伪造要素

需准备以下字典文件:

  • Process_name.txt:上线进程名
  • Computer_name.txt:受控机名称
  • User_name.txt:受控机用户名
  • Public_key.txt:解密获得的Publickey

5.2 项目对比

  1. CS_fakesubmit

    • 支持自定义字典
    • 可模拟更真实的主机特征
    • 项目地址:https://github.com/LiAoRJ/CS_fakesubmit
  2. CobaltSpam

    • 主机信息随机生成
    • 特征较明显
    • 项目地址:https://github.com/hariomenkel/CobaltSpam

六、实战注意事项

  1. 环境要求

    • JDK11用于密钥提取
    • Python环境用于配置解析
  2. Public Key处理

    • 确保格式正确
    • 删除无效Padding
  3. 字典准备

    • 使用真实环境常见的进程名、主机名
    • 增加欺骗成功率

七、防御建议

  1. C2服务器防护

    • 实现请求来源验证
    • 检测异常上线行为
  2. 网络监测

    • 识别Stager URL特征
    • 监控异常Beacon通信

八、参考资源

  1. 工具与代码:

  2. 技术文章:

  3. 完整代码包:

    • 百度网盘: 链接 提取码: yfaq

通过以上技术细节和实施方法,安全研究人员可以深入理解Cobalt Strike的反制技术,并有效实施批量伪装上线操作,为红蓝对抗和攻防演练提供新的技术手段。

Cobalt Strike反制技术:批量伪装上线深度解析 一、Cobalt Strike上线机制分析 1.1 上线过程抓包分析 使用Wireshark抓取Cobalt Strike上线流量,可观察到以下关键特征: 明显的加密Cookie数据 使用RSA非对称加密算法 需要私钥Private Key才能解密 1.2 上线数据包解密 通过特定Java代码可提取Private Key与Public Key(需在JDK11环境下运行): 解密后的HTTP类型Beacon上线包中的Cookie包含RSA加密的主机元数据。 二、重放攻击原理与实现 2.1 重放攻击验证 通过重放数据包可观察到: last 时间戳被重置为1秒 证明重放攻击可行性 2.2 防御策略 可编写循环语句持续模拟上线操作,使攻击者: 能够上线但无法执行有效命令 增加攻击者识别真实主机的难度 三、伪造上线技术深入解析 3.1 Stager工作机制 Stager是小巧的初始Payload 从Beacon Staging Server下载完整Stage 注入内存执行完整功能 3.2 Stager URL特征 包含4位随机校验码 可作为网络测绘识别特征 校验码拼接在URL后请求Stage代码 四、Beacon配置解密技术 4.1 解密工具对比 CobaltStrikeParser : 可提取Public Key 显示CS服务器地址 1768.py : 输出十六进制字符串 需进一步转换处理 4.2 Public Key处理要点 删除无效Padding部分 正确格式: MIGfXXXXXXXXXXXXXXXX== 去除末尾多余的 AAAAA 等字符 五、伪造上线实现方案 5.1 信息伪造要素 需准备以下字典文件: Process_name.txt :上线进程名 Computer_name.txt :受控机名称 User_name.txt :受控机用户名 Public_key.txt :解密获得的Publickey 5.2 项目对比 CS_ fakesubmit : 支持自定义字典 可模拟更真实的主机特征 项目地址:https://github.com/LiAoRJ/CS_ fakesubmit CobaltSpam : 主机信息随机生成 特征较明显 项目地址:https://github.com/hariomenkel/CobaltSpam 六、实战注意事项 环境要求 : JDK11用于密钥提取 Python环境用于配置解析 Public Key处理 : 确保格式正确 删除无效Padding 字典准备 : 使用真实环境常见的进程名、主机名 增加欺骗成功率 七、防御建议 C2服务器防护 : 实现请求来源验证 检测异常上线行为 网络监测 : 识别Stager URL特征 监控异常Beacon通信 八、参考资源 工具与代码: Dumpkeys.java CobaltStrikeParser 1768.py 技术文章: Cobalt Strike目标上线过程 Striking Back at Retired Cobalt Strike 完整代码包: 百度网盘: 链接 提取码: yfaq 通过以上技术细节和实施方法,安全研究人员可以深入理解Cobalt Strike的反制技术,并有效实施批量伪装上线操作,为红蓝对抗和攻防演练提供新的技术手段。