攻防演练 | 记一些常用的反制红队CS的思路
字数 1273 2025-08-10 16:34:34

Cobalt Strike反制技术详解

1. Cobalt Strike上线流程分析

Cobalt Strike (CS)是红队常用的C2工具,其上线流程如下:

  1. 攻击者利用CS Server生成新的Beacon监听器(包含一对非对称公私钥)并生成Stager
  2. 攻击者将Stager投递到受控主机
  3. 受控主机执行小巧的Stager
  4. Stager根据URL特征向Beacon Staging Server请求下载体积更大的Stage
  5. Beacon Staging Server校验URL合法性
  6. Stage解密并解析Beacon配置信息(包括公钥PublicKey、C2 Server信息)
  7. Stage用公钥加密主机元数据并发送至C2 Server
  8. C2 Server用私钥解密获取主机元数据

2. 反制核心点

从流程中提取两个关键反制点:

  1. Stager Url校验算法
  2. Beacon配置的解密算法

掌握这两个算法等同于获得与CS/C2 Server合法通信的凭据:

CS/C2 Server合法通信 = (Stager Url校验算法, Beacon解密算法)

2.1 Stager Url校验算法

校验码生成示例(以"7vv9"为例):

55+118+118+57-256=92

相关函数说明:

  • checksum8:计算数据的8位校验和,用于验证数据传输完整性
  • MSFURI:处理Metasploit框架中的URL(解析、提取参数等)
  • isStager:判断脚本或数据是否为Stager

2.2 Beacon配置解密算法

可使用工具解密Beacon配置:

3. 反制方法详解

方法1:爆破CS弱口令

步骤:

  1. 收集红队teamserver真实IP信息

  2. 扫描开放端口(默认50050,但可能修改)

    sudo masscan -p1-65535 192.168.10.158
    

    示例输出:

    Discovered open port 8800/tcp on 192.168.10.158
    Discovered open port 50666/tcp on 192.168.10.158
    
  3. 访问可疑端口并抓包,寻找特殊字符特征

  4. 使用爆破工具:

    python csbruter.py -p 50666 192.168.10.158 top1000.txt
    
  5. 成功获取密码后连接teamserver

工具:

方法2:利用CVE-2022-39197 RCE漏洞

适用版本: Cobalt Strike < 4.7.1

原理:

  • Java Swing中某控件存在RCE漏洞
  • CS使用了该控件
  • 利用方式:通过hook修改进程名加载远程恶意jar包

利用步骤:

  1. 下载利用工具:

  2. 使用IDEA修改jar包,植入后门代码

  3. 使用Maven打包恶意jar:

    mvn clean compile assembly:single
    
  4. 执行攻击

4. 防御建议

  1. CS服务器防护:

    • 使用强密码
    • 修改默认端口
    • 及时更新到最新版本
  2. 监控与检测:

    • 监控异常端口开放
    • 检测checksum8等特征算法调用
    • 监控Java Swing控件异常行为
  3. 应急响应:

    • 发现可疑活动时立即隔离受控主机
    • 检查teamserver日志
    • 重置所有凭据和密钥

5. 总结

反制Cobalt Strike的关键在于理解其通信机制和漏洞利用点。通过分析Stager URL校验算法和Beacon配置解密算法,结合爆破和RCE漏洞利用,可以有效反制红队的CS基础设施。防御方应加强防护措施,及时修补漏洞,并建立完善的监控体系。

Cobalt Strike反制技术详解 1. Cobalt Strike上线流程分析 Cobalt Strike (CS)是红队常用的C2工具,其上线流程如下: 攻击者利用CS Server生成新的Beacon监听器(包含一对非对称公私钥)并生成Stager 攻击者将Stager投递到受控主机 受控主机执行小巧的Stager Stager根据URL特征向Beacon Staging Server请求下载体积更大的Stage Beacon Staging Server校验URL合法性 Stage解密并解析Beacon配置信息(包括公钥PublicKey、C2 Server信息) Stage用公钥加密主机元数据并发送至C2 Server C2 Server用私钥解密获取主机元数据 2. 反制核心点 从流程中提取两个关键反制点: Stager Url校验算法 Beacon配置的解密算法 掌握这两个算法等同于获得与CS/C2 Server合法通信的凭据: CS/C2 Server合法通信 = (Stager Url校验算法, Beacon解密算法) 2.1 Stager Url校验算法 校验码生成示例(以"7vv9"为例): 相关函数说明: checksum8 :计算数据的8位校验和,用于验证数据传输完整性 MSFURI :处理Metasploit框架中的URL(解析、提取参数等) isStager :判断脚本或数据是否为Stager 2.2 Beacon配置解密算法 可使用工具解密Beacon配置: CobaltStrikeParser 3. 反制方法详解 方法1:爆破CS弱口令 步骤: 收集红队teamserver真实IP信息 扫描开放端口(默认50050,但可能修改) 示例输出: 访问可疑端口并抓包,寻找特殊字符特征 使用爆破工具: 成功获取密码后连接teamserver 工具: csbruter 方法2:利用CVE-2022-39197 RCE漏洞 适用版本: Cobalt Strike < 4.7.1 原理: Java Swing中某控件存在RCE漏洞 CS使用了该控件 利用方式:通过hook修改进程名加载远程恶意jar包 利用步骤: 下载利用工具: CVE-2022-39197 使用IDEA修改jar包,植入后门代码 使用Maven打包恶意jar: 执行攻击 4. 防御建议 CS服务器防护: 使用强密码 修改默认端口 及时更新到最新版本 监控与检测: 监控异常端口开放 检测checksum8等特征算法调用 监控Java Swing控件异常行为 应急响应: 发现可疑活动时立即隔离受控主机 检查teamserver日志 重置所有凭据和密钥 5. 总结 反制Cobalt Strike的关键在于理解其通信机制和漏洞利用点。通过分析Stager URL校验算法和Beacon配置解密算法,结合爆破和RCE漏洞利用,可以有效反制红队的CS基础设施。防御方应加强防护措施,及时修补漏洞,并建立完善的监控体系。