Mutex绕过 CobaltStrike 的 YARA 规则 f0b627fc 来逃避 EDR

admin 2025年2月20日00:02:45评论25 views字数 1475阅读4分55秒阅读模式
Mutex绕过 CobaltStrike 的 YARA 规则 f0b627fc 来逃避 EDR

YARA 规则规避概述

在 White Knight Labs 的一篇关于使用 Cobalt Strike 规避 EDR 的博客文章中,他们讨论了绕过针对 Cobalt Strike 的 YARA 规则的方法。最难绕过的规则之一是Windows_Trojan_CobaltStrike_f0b627fc。

此特定规则针对的是 Cobalt Strike 二进制文件中的 10 字节序列:

x25xffxffxffx00x3dx41x41x41x00

即使使用了睡眠掩码并利用睡眠掩码工具包生成自定义掩码,此字节序列仍会保留在最终的 shellcode 中。使用 Defuse.ca x64 反汇编程序,我们可以看到此 shellcode 转换为以下汇编指令:

and    eax, 0xffffff cmp ecx, 0x414141
在 White Knight Labs 的文章中,他们通过将指令从 修改为 来绕过此检测AND EAX, 0xFFFFFF。MOV EAX, 0xFFFFFF这会导致以下修改后的 shellcode:
xB8xFFxFFxFFx00x3Dx41x41x41x00

然而,虽然这种方法改变了AND指令,但CMP指令保持不变,这意味着这个修改后的 shellcode 仍然可以被新编写的 YARA 规则检测到。

更有效的绕过方法

通过实验,我发现实际上可以完全删除 cmp 指令。只需将 EAX 设置为 0xFFFFFF,Cobalt Strike 信标即可正常运行。

以下是一些可用于避免检测的替代 shellcode 序列:

MOV EAX, 0x00414141XOR EAX, EAX; MOV EAX, 0x00414141

在这种情况下,在将寄存器设置为之前XOR EAX, EAX将其清零。EAX0x00414141

指令中的这种细微变化会改变 shellcode,但不会影响整体功能,从而使静态分析工具更难签名。

使用 NOP 指令随机化 Shellcode

虽然上述方法有助于逃避原来的规则,但新的shellcode仍然可以被签名。

x25xffxffxffx00x3dx41x41x41x00为了解决这个问题,我开发了一个脚本,可以自动用备用 shellcode替换原始字节序列,然后随机将 NOP 指令(x90和x87xC0)插入到 shellcode 中。

NOP(无操作)指令不会影响执行流程,但会为 shellcode 增加随机性。通过在 shellcode 的开始、中间或结尾等随机位置插入 NOP,您可以进一步混淆 shellcode,使其更难签名。

实现 Shellcode 替代方案的关键考虑因素

当实现替代 shellcode 时,请记住以下几点:

  • Shellcode 大小:总的 shellcode 大小不能超过 10 个字节,因为这是原始序列的长度。

  • 更小的随机化尺寸:最好使用短于 10 个字节的 shellcode 序列,从而允许 Python 脚本插入 NOP 并在未来的迭代中重用它们以实现更好的规避。

本博客中提到的脚本使用示例和 GitHub 存储库

下面是一个使用示例,我替换了 http_x64.xthread.bin 的字节并将其保存到 beacon.bin:

Mutex绕过 CobaltStrike 的 YARA 规则 f0b627fc 来逃避 EDR

你可以在我的 GitHub 上找到绕过 YARA 规则的 Python 脚本:

https://github.com/WafflesExploits/CobaltStrike-YARA-Bypass-f0b627fc

此外,我还添加了 White Knight Labs 的 Python 脚本,用于生成 Rich 标头和前置标头,并进行了一些小的改进。

原文始发于微信公众号(Ots安全):Mutex绕过 CobaltStrike 的 YARA 规则 f0b627fc 来逃避 EDR

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月20日00:02:45
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Mutex绕过 CobaltStrike 的 YARA 规则 f0b627fc 来逃避 EDRhttp://cn-sec.com/archives/3762744.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息