前言

Cobalt Strike

介绍

Cobalt Strike是一款渗透测试神器。分为客户端和服务器,服务器只有一个,客户端可以有多个,可被团队进行分布式协团操作。

Cobalt Strike集成了端口转发、扫描多模式端口Listener、Windows exe程序生成、Windows dll动态链接库生成、java程序生成、office宏代码生成,包括站点克隆获取浏览器的相关信息等。

客户端与服务器端的连接

Cobalt Strike使用C/S架构,Cobalt Strike的客户端连接到团队服务器,团队服务器连接到目标,也就是说Cobalt Strike的客户端不与目标服务器进行交互。团队服务器需要自行开启,只能运行在Linux环境下。客户端输入团队服务器的外部IP地址、连接密码,即可连接。

多个团队服务器之间也可以互相连接。这样设计的目的在于运行安全,如果一个团队服务器停止运行了,也不会导致整个行动的失败。

日志与报告

日志记录:记录在团队服务器下的运行目录中的logs文件内,日志文件名为beacon_会话ID。按键的日志在keystrokes文件夹内,截屏的日志在screenshots文件夹内。

导出报告:输出格式为PDF或Word;可以输出自定义报告且更改图标;可以合并多个团队服务器的报告,并可以对不同报告里的时间进行校正

报告类型:

  • 活动报告:红队活动时间表,记录了每个后渗透活动

  • 主机报告:汇总了cs收集的主机信息,凭据、服务和会话也会在此报告中。

  • 侵害指标报告: 此报告中包括对C2拓展文件的分析、使用的域名及上传文件的MD5哈希。

    C2 就是 Command & Control Server 的简称,也就是命令与控制服务器。

  • 会话报告(Sessions Report) 此报告中记录了指标和活动,包括每个会话回连到自己的通信路径、后渗透活动的时间线等。

  • 社工报告(Social Engineering Report) 此报告中记录了每一轮网络钓鱼的电子邮件、谁点击以及从每个点击用户那里收集的信息。该报告还显示了Cobalt Strike的System profiler发现的应用程序。

  • 战术、技巧和程序报告(Tactics,Techniques,and Procedures) 此报告将自己的Cobalt Strike行动映射到MITRE的ATT&CK矩阵中的战术,具体可参考https://attack.mitre.org/(opens new window)

监听器管理(Beacon)

监听器:等待被入侵系统连接自己的一个服务。

监听器的作用:为了接受payload回传的各类数据,类似于MSF中handler的作用。比如payload在目标机器执行以后,就会回连到监听器然后下载执行真正的shellcode代码。


一旦监听器建立起来,团队成员只需要知道这个监听器的名称即可,不需要关心监听器背后的基础环境。

stager:就是远程加载Beacon.dll的shellcode

Beacon Staging Sever: 是分阶段模式中,提供shellcode等功能扩展存储的Stage服务器。它的作用是为了防止Payload过大或者适应不同的攻击场景,可以分阶段进行payload投递


元数据:描述数据的数据,主要是描述数据属性的信息,用来支持如:指示存储位置、历史数据、资源查找、文件记录等功能。是一种电子式目录。

cookie加密过程

  1. 攻击者利用CS sever生成新的Beacon监听(包括一对非对称公私钥)并生成stager
  2. 攻击者投递Stager到受控主机
  3. 受控主机在Exploit阶段执行小巧的Stager
  4. 受控主机根据Stager Url请求特征向Beacon Staging Sever 下载体积较大更复杂的Stager到本地,Beacon Staging Server会校验URL的合法性。
  5. Stage解密并解析Beacon配置信息(比如公钥PublicKey、C2 server信息)
  6. Stage通过公钥加密主机的元数据并发送至C2 Server
  7. C2 Server 用私钥解密数据获取主机元数据

stager url,可以作为特征来识别CS服务器。CS中的Stager URL校验算法,就是生成4位随机校验码,将校验码拼接到URL后面,即可请求到Stage的代码

漏洞通告

CVE-2022-39197:该漏洞存在于Cobalt Strike的Beacon软件中,由于Cobalt Strike 使用 GUI 框架 SWING开发,未经身份验证的远程攻击者可通过在 beacon 元数据中注入恶意 HTML 标签,使得CS对其进行解析时加载恶意代码,从而导致在CS服务端上造成远程代码执行。【允许攻击者在Beacon配置中设置格式错误的用户名,触发XSS】

影响版本:Cobalt Strike <= 4.7

复现的大致步骤

破解checksum8算法,获取文件,解析公钥。有公钥的情况下,可以直接上线机器。

xss复现原理

image.png

填写自己的主机名。会一直请求,但请求不到,会断裂。

image.png

环境配置

破解包:[cobalt_strike_4.4](链接: https://pan.baidu.com/s/1oSQkGbUtssgCDlAKi3lfdA?pwd=r5w3 提取码: r5w3
–来自百度网盘超级会员v6的分享) (客户端、服务器端,都用这个)

客户端: kali Linux 2021.3

服务端:腾讯云 ubuntu


服务器端

cd cobalt_strike_4.4
chmod +x teamserver
chmod +x cobaltstrike
 ./teamserver 服务器的ip(本机ip) 密码

客户端

cd cobalt_strike_4.4
chmod +x cobaltstrike
./cobaltstrike

参考文章

https://wiki.wgpsec.org/knowledge/intranet/Cobalt-Strike.html

https://mp.weixin.qq.com/s/ONgQy5AyEjPtloTcXSP0yg

http://blog.leanote.com/post/snowming/50448511de58

https://cloud.tencent.com/developer/article/1921473

https://www.ddosi.org/cobalt-strike-4-7/

https://forum.butian.net/share/708

w

评论