某C2鸡肋漏洞分析:你的CS安全吗?

这篇具有很好参考价值的文章主要介绍了某C2鸡肋漏洞分析:你的CS安全吗?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CobaltStrike是一个知名的红队命令与控制框架,采用Beacon <-> TeamServer <-> Client架构。TeamServer存在受限路径穿越写文件与反序列化漏洞,可以被认证后客户端恶意利用。Client存在反序列化漏洞,可以被RogueCS攻击。

山寨威胁建模

由于这个软件的特殊性,我们需要想想什么才是漏洞:

  1. 直接攻击TeamServer暴露的服务

  2. 通过Beacon攻击TeamServer

  3. 通过Client攻击TeamServer

  4. 通过TeamServer攻击Client

  • TeamServer控制Beacon是功能,任何所谓TeamServer攻击Beacon的操作都不能算漏洞

可以看出TeamServer是核心,先从它下手。

历史漏洞

  • in-the-wild

利用TeamServer从Beacon下载文件时,会将Beacon可控数据中的IP字段作为目录的特点,实现路径穿越写计划任务RCE。

  • CVE-2021-36798

利用TeamServer从Beacon加载截图和键盘记录时,会根据Beacon可控数据中的字节大小申请内存的特点,实现内存耗尽DoS。

  • CVE-2022-23317

猜测是为了兼容proxy的功能(路径为http://开头),没有对URL路径做严谨的校验。动态调试可以看出这会绕过profile相关配置,直接拿到公钥等数据:

某C2鸡肋漏洞分析:你的CS安全吗?,安全,网络,CobaltStrike,网络安全,威胁分析

虚假的DoS

BeaconC2.process_beacon_data中存在一处利用条件比较苛刻的DoS。

...
int var4 = var3.readInt();
...
if (var4 > var3.available()) {
    return false;
}
...
byte[] var5 = new byte[var4];

受限路径穿越

某C2鸡肋漏洞分析:你的CS安全吗?,安全,网络,CobaltStrike,网络安全,威胁分析

用来防止路径穿越的核心是CommonUtils.SafeFile方法,判断解析前后的路径是否还以限定前缀开头。这其实可以让我们向上穿越一级并得到前缀开头的文件对象:

某C2鸡肋漏洞分析:你的CS安全吗?,安全,网络,CobaltStrike,网络安全,威胁分析

  •  CVE-2022-23457就是另一个例子

ManageUser.process为例,Client可以通过Host File功能上传文件到TeamServer并映射至Web服务,这会先发出一个armitage.upload进行预处理,随后由armitage.append上传文件数据。

某C2鸡肋漏洞分析:你的CS安全吗?,安全,网络,CobaltStrike,网络安全,威胁分析

这里Client与TeamServer基于序列化通过socket通信,SafeFile的二参var1.arg(0)客户端可控,在UploadFile.result拼接上前缀就可以实现受限路径穿越写文件。然而这并没有什么卵用

this.conn.call("armitage.append", CommonUtils.args(this.file.getName()
|
V
this.conn.call("armitage.append", CommonUtils.args("../uploads"+this.file.getName()

某C2鸡肋漏洞分析:你的CS安全吗?,安全,网络,CobaltStrike,网络安全,威胁分析

想到zip解压释放软链接那种套路,File确实可以透过软链接写入指向文件中,但这里似乎没法实现直接将用于路径穿越的软链接本身存进去。

反序列化

某C2鸡肋漏洞分析:你的CS安全吗?,安全,网络,CobaltStrike,网络安全,威胁分析

反序列化核心是TeamSocket.readObject方法,实际使用的ObjectInputStream.readUnshared。它在ManageUser.run中被PostAuthentication.clientAuthenticated通过多线程拉起。

某C2鸡肋漏洞分析:你的CS安全吗?,安全,网络,CobaltStrike,网络安全,威胁分析

client来自SecureServerSocket.acceptAndAuthenticate中接收的客户端数据,预检密码使用readUnsignedByte读入,在密码比对正确时会进入上述反序列化流程。

某C2鸡肋漏洞分析:你的CS安全吗?,安全,网络,CobaltStrike,网络安全,威胁分析

在客户端Connect.dialogAction发起连接时可以向TeamServer传输序列化对象,如果服务端存在gadgets环境就可被恶意利用。

this.tqueue.call("aggressor.authenticate", CommonUtils.args(var3, var6, Aggressor.VERSION), this);
|
V
Object payload = getObject() // URLDNS, 7u21, ...
this.tqueue.call("aggressor.authenticate", CommonUtils.args(var3, var6, payload), this)
  • 看代码流程感觉作者是考虑到了的,所以将反序列化放到了认证后

随后ManageUser.process会将登录成功/失败的消息序列化写回客户端,我们可以把SecureServerSocket.authenticate改为任何密码都校验成功(欺骗客户端通过密码预检),再写回恶意序列化对象(成为RogueCS),如果客户端存在gadgets环境就可被利用。

...
if (!this.authenticated && "aggressor.authenticate".equals(var1.getCall()) && var1.size() == 3) {
...
    Object payload = getObject() // URLDNS, 7u21, ...
    this.client.writeObject(var1.reply(payload))
...

利用条件

Client攻击TeamServer的话,需要知道服务端的密码(比如通过泄漏/反制得到HOME目录下.aggressor.prop配置文件),而通过TeamServer则可以攻击任何前来连接的Client。

危害大小取决于运行环境中gadgets的能力,我目前还没在CS内置的lib中找到有实质危害的gadgets。对于原生JRE环境而言,可以通过DeserializationBomb造成CPU型DoS:

Set<Object> root = new HashSet<>();
Set<Object> s1 = root;
Set<Object> s2 = new HashSet<>();
for (int i = 0; i < 100; i++) {
    Set<Object> t1 = new HashSet<>();
    Set<Object> t2 = new HashSet<>();
    t1.add("foo"); // make it not equal to t2
    s1.add(t1);
    s1.add(t2);
    s2.add(t1);
    s2.add(t2);
    s1 = t1;
    s2 = t2;
}

某C2鸡肋漏洞分析:你的CS安全吗?,安全,网络,CobaltStrike,网络安全,威胁分析

这个与之前OpenSSL的DoS效果类似,多核环境只会影响单核。相关上下文大都是局部变量,也不太可能通过反序列化造成内存型DoS。所以一般也就能打个DNS自嗨,但如果以前调试漏洞在jre/lib/ext之类的目录引入过危险依赖,或者有大聪明用了7u21就会导致RCE:

某C2鸡肋漏洞分析:你的CS安全吗?,安全,网络,CobaltStrike,网络安全,威胁分析

CS内置了commons-iosleep等jar包,找到链也不是完全没有可能,或者找到一种可控方式从当前目录加载类,就能结合受限路径穿越变成RCE。万一山鸡变凤凰了呢(doge文章来源地址https://www.toymoban.com/news/detail-806927.html

到了这里,关于某C2鸡肋漏洞分析:你的CS安全吗?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 智能合约安全分析,Vyper 重入锁漏洞全路径分析

    7 月 30 日 21:10 至 7 月 31 日 06:00 链上发生大规模攻击事件,导致多个 Curve 池的资金损失。漏洞的根源都是由于特定版本的 Vyper 中出现的重入锁故障。 通过对链上交易数据初步分析,我们对其攻击的交易进行整理归纳,并对攻击流程进一步的分析,由于攻击涉及多个交易池。

    2024年02月09日
    浏览(33)
  • Java安全之SnakeYaml漏洞分析与利用

    SnakeYaml是Java中解析yaml的库,而yaml是一种人类可读的数据序列化语言,通常用于编写配置文件等。 yaml基本语法 : 大小写敏感 使用缩进表示层级关系 缩进只允许使用空格 # 表示注释 支持对象、数组、纯量这3种数据结构 示例 yaml对象: yaml数组: 意思是 companies 属性是一个数

    2024年02月04日
    浏览(27)
  • Tcsec安全研究院|fastjson漏洞分析

    fastjson 是一个 Java 库,可用于将 Java 对象转换为其 JSON 表示形式。它还可以用于将 JSON 字符串转换为等效的 Java 对象。Fastjson 可以处理任意的 Java 对象,包括没有源代码的预先存在的对象。 java 的核心就是对象的操作,fastjson 同样遵循这个原则利用get、set操作对象。将 User 对

    2024年02月13日
    浏览(28)
  • MS14-068 漏洞分析—不安全的PAC

    这是一个危害较高的漏洞:只需要一个域内的普通用户的账户密码,便可拿到域控的权限 建议看本文章前,先把之前写的 NTLM与kerberos认证体系详解 这篇文章看完。 利用伪造的高权限的PAC来获取一个带有高权限PAC的TGT。 (关于pac是什么可以看完上面的那个文章) 在我们的AS_R

    2023年04月25日
    浏览(20)
  • [JAVA安全]CVE-2022-33980命令执行漏洞分析

    在 i春秋的漏洞靶标上看见了此漏洞,所以前来分析一下漏洞原理,比较也是去年 7月的漏洞。 漏洞描述:Apache官方发布安全公告,修复了一个存在于Apache Commons Configuration 组件的远程代码执行漏洞,漏洞编号:CVE-2022-33980,漏洞威胁等级:高危。恶意攻击者通过该漏洞,可在

    2024年02月15日
    浏览(28)
  • 安恒信息-明御安全网关 命令执行漏洞分析

    目录 注意 漏洞描述 漏洞位置 漏洞代码 POC: 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。 安恒信息-明御安全网关存在命令执行漏洞,导致攻击者可以直接执行系统命令,从而控制目标系

    2024年02月12日
    浏览(31)
  • 几款AI工具代码安全漏洞分析能力对比

         这段时间研究AI平台的能力。 今天我把库博检测工具发现的一个Java安全漏洞相关代码传到几款AI工具上进行分析,看看这几款工具反馈的结果。这些工具包括ChatGPT-3.5、Forefront Claude、AIChat(组合)和清华ChatGlm。        首先我们看看库博检测出的这个漏洞是否存在。

    2024年02月04日
    浏览(23)
  • 工控系统的全球安全现状:全球漏洞实例分析

    一、摘要 ​ 运营技术(OT)、网络和设备,即工业环境中使用的所有组件,在设计时并未考虑到安全性。效率和易用性是最重要的设计特征,然而,由于工业的数字化,越来越多的设备和工业网络想公网开放。这有利于工业环境的管理和组织,但他也增加了共勉,为攻击者提供

    2024年02月05日
    浏览(36)
  • 全面分析为什么漏洞评估和可靠的漏洞发现技术是健全安全态势的关键

           在我们所接触使用的应用程序中有很多未解决的漏洞。而这些所有漏洞中有 90% 是可利用的,即使是技术知识或技能很少的攻击者也是如此。在这种情况下,建立和维护良好的安全态势变得非常重要。持续的漏洞评估过程是安全难题的重要组成部分。为什么正在进行的

    2024年04月12日
    浏览(28)
  • 网络靶场实战-RouterOS漏洞分析(CVE-2022-45315)

    本环境是蛇矛实验室基于\\\"火天网演攻防演训靶场\\\"进行搭建,通过火天网演中的环境构建模块,可以灵活的对目标网络进行设计和配置,并且可以快速进行场景搭建和复现验证工作。火天网演中,内置大量固件设备,包含大型网络设备及物联网设备,可以灵活选取进行测试验

    2024年02月11日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包