前言
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加密过程
- 攻击者利用CS sever生成新的Beacon监听(包括一对非对称公私钥)并生成stager
- 攻击者投递Stager到受控主机
- 受控主机在Exploit阶段执行小巧的Stager
- 受控主机根据Stager Url请求特征向Beacon Staging Sever 下载体积较大更复杂的Stager到本地,Beacon Staging Server会校验URL的合法性。
- Stage解密并解析Beacon配置信息(比如公钥PublicKey、C2 server信息)
- Stage通过公钥加密主机的元数据并发送至C2 Server
- 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复现原理
填写自己的主机名。会一直请求,但请求不到,会断裂。
环境配置
破解包:[cobalt_strike_4.4](链接: https://pan.baidu.com/s/1oSQkGbUtssgCDlAKi3lfdA?pwd=r5w3 提取码: r5w3
–来自百度网盘超级会员v6的分享) (客户端、服务器端,都用这个)
客户端: kali Linux 2021.3
服务端:腾讯云 ubuntu
服务器端
1 | cd cobalt_strike_4.4 |
客户端
1 | cd cobalt_strike_4.4 |
1 | chmod +x 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