九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

admin 2024年10月13日18:38:04评论7 views字数 2565阅读8分33秒阅读模式

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

本文简单分析和记录了 CobaltStrike http-beacon 类型上线流量的过程。

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

环境配置

CS 服务器:192.168.238.128
受害者PC:192.168.238.1
CS 版本:4.3,使用默认配置

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

流量包分析

通过 wireshark 抓取 CobaltStrike 的上线流量,从上线到命令执行大约有4个 TCP 流,如下所示:

全部共239个包:

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

tcp stream 0:

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

tcp stream 1:

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

tcp stream 2:

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

tcp stream 3:

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

通过查看第一个 tcp 流,可以看到受控机器向 CS 服务器发起 HTTP GET 请求,从响应内容上看,这里请求的是下载名称为 xt98 的文件 。从 HTTP 对象列表中可以还原相关文件。

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

第二个 tcp 流与第三个 tcp 流请求内容基本一致,请求资源为 IE9CompatViewList.xml,请求的 Cookie 是一串字符:

gehJfgv3WRxq9/o9fbvtdcais0J7L1r7lK81N8ORi1TrhQtcvy608OLjpczEf/t7VI2wNjNr8+2Ry1qCtCl7DYuTelbwxO0UsT68mb+utwVtcxmccCnObJU8ygz1GJyIzBQ0fc36vziG8F287mrrgazltqdNb0WVifQI4T0r6wg=

不同的是第三个流的响应包多了一串不可知的字符。另外,这两个 HTTP 请求时间的间隔为60s。

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

第四个 tcp 流中,受控机器向CS服务器发起一个 POST 请求,内容为“/submit.php?id=548222260”和一串不可知的字符,第四个 tcp 流与第三个 tcp 流之间相差1s,猜测是收到第三个 tcp 流的响应内容后立即向 CS 服务器发起 POST 请求。

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

CS上线过程

通过查阅资料,了解到 CS http 分阶段 beacon 上线过程的理论知识,如下图所示:

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

结合上面流量分析的结果,可以知道:

1、特定算法生成的 URL 为 xt98,完整的beacon文件为 stage(xt98)。

2、HTTP GET 请求中的IE9CompatViewList.xml为心跳包,Cookie 内容

gehJfgv3WRxq9/o9fbvtdcais0J7L1r7lK81N8ORi1TrhQtcvy608OLjpczEf/t7VI2wNjNr8+2Ry1qCtCl7DYuTelbwxO0UsT68mb+utwVtcxmccCnObJU8ygz1GJyIzBQ0fc36vziG8F287mrrgazltqdNb0WVifQI4T0r6wg=

用来加密的密钥。

3、HTTP POST 请求中的”/submit.php?id=548222260”是受害者PC将命令执行后的结果返回,请求体中是命令执行结果的加密数据。

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

分析特定算法生成的URL

受害者PC发起的第一个 HTTP 请求的 URL 是由特定算法生成的,将 xt98 转成10进制然后与256进行模运算,X64 beacon 模运算后的结果为93,X86 beacon 模运算后的结果为92,这里使用的64位的 shellcode。

计算如下

ascii:    xt     9 8

Dec:    120   116   57    56 

         (120+116+57+56)%256 = 93

在源码的common/CommonUtils工具类中可以找到相关代码:

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

分析完整的beacon文件

对完整的 beacon 文件进行解析,完整的 beacon 包含了许多信息,如 payload 类型、会连端口、beacon睡眠时间、公钥、心跳包等。

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

分析对称加密的公私钥

Cookie内容如下:

gehJfgv3WRxq9/o9fbvtdcais0J7L1r7lK81N8ORi1TrhQtcvy608OLjpczEf/t7VI2wNjNr8+2Ry1qCtCl7DYuTelbwxO0UsT68mb+utwVtcxmccCnObJU8ygz1GJyIzBQ0fc36vziG8F287mrrgazltqdNb0WVifQI4T0r6wg=

在 CS 服务器上存在如下文件:

.cobaltstrike.beacon_keys 。

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

对该文件进行解析:

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

获取到公私钥。

对公私钥进行base64编码转换和hex处理,这里得到的公钥与beacon文件中的公钥一致。

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

Cookie解密

使用私钥解密Cookie,得到对称加密密钥 Raw key,受害者PC执行任务后的内容通过该密钥进行加密后返回给 CS 服务器。

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

方式1:

在线网站解密Cookie信息

https://www.lddgo.net/encrypt/rsa

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

得到解密后的base64字符,解密后的字符串是由特定格式组成的,使用脚本进行解析。

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

方式2:

使用github上的解密脚本进行解密:

https://github.com/minhangxiaohui/CSthing

*左右滑动查看更多

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

执行任务内容传输解密

使用脚本对命令执行的流量进行解密:

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

总结

在默认情况下,CS的URL特征和流量是十分明显的,可以很容易判断出CS回连,目前也有很多的安全设备可以识别互联网上的使用CS的C2服务器,并且识别出对应使用的心跳回连uri和任务执行回传使用的uri以及相关心跳间隔和使用的beacon类型。

在实际利用过程中,攻击队会放弃使用默认配置,并通过修改profile配置文件对流量特征进行修改或者是对CS相关源码进行修改从而躲避检测。这会增加基于流量分析的难度,不过依然可以通过流量异常行为分析模型,或结合终端异常行为进行关联分析和样本识别。

九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

参考及推荐阅读

Cobaltstrike4.0 学习——http分阶段stagebeacon上线流量刨根问底https://forum.butian.net/share/1861Cobaltstrike 分析利用脚本https://github.com/Skactor/cs-scripts流量分析 + cobaltstrike 流量解密https://blog.csdn.net/weixin_46081055/article/details/123413246在线RSA解密https://www.lddgo.net/encrypt/rsa

*左右滑动查看更多

原文始发于微信公众号(安恒信息安全服务):九维团队-暗队(情报)| CobaltStrike http-beacon流量分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月13日18:38:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   九维团队-暗队(情报)| CobaltStrike http-beacon流量分析https://cn-sec.com/archives/1896006.html

发表评论

匿名网友 填写信息