用汇编和C语言编写的Cobalt Strike用户定义的反射加载器,具有高级规避能力

作者:Sec-Labs | 发布时间:

项目地址

https://github.com/boku7/BokuLoader

BokuLoader - Cobalt Strike 反射加载器

Cobalt Strike 用户定义的反射加载器,用 Assembly & C 编写,具有高级规避功能。

贡献者:Bobby Cooke @0xBokuSantiago Pecin @s4ntiago_p

特征

  • Stomp MZ 魔术字节
  • Find-Self EggHunter
  • 通过 HellsGate 和 HalosGate 的直接 NT 系统调用
  • PE 标头混淆
  • PE字符串替换
  • NOHEADERCOPY - 加载程序不会将标头复制到信标。取消提交通常保存标头的第一个内存页面
  • NoRWX - 反射加载器写入具有读写权限的信标,并在解析 Beacons 导入表和重定位后,将 Beacon 的 .TEXT 代码部分更改为读取和执行权限
  • 用于解析符号的 XGetProcAddress
  • 100k UDRL 大小
  • 用于字符串混淆的凯撒密码
  • 前置 ASM 指令

项目起源

用法

  1. 编译 BokuLoader 对象文件make
  2. 启动你的 Cobalt Strike Team 服务器
  3. 在 Cobalt Strike 中,导入BokuLoader.cnaAggressor 脚本
  4. 生成 x64 信标(攻击 -> 程序包 -> Windows 可执行文件 (S))
  5. 使用脚本控制台确保在信标构建中实现了 BokuLoader
  • 不支持 x86 选项。x86 bin 是原始的 Reflective Loader 目标文件。
  • 生成RAW信标开箱即用。将 Artifact Kit 用于信标加载程序时,stagesize变量必须大于默认值。

检测指导

  • BokuLoader 不支持 Cobalt Strikesleep_mask选项。
    • 这是由于支持的userwx false设置硬编码到 BokuLoader 中。
    • 由于内存部分是RWRX,这将导致在尝试写入.text信标部分时睡眠加密失败。
    • 分析信标进程内存将揭示 Cobalt Strike 共有的字符串。
  • BokuLoader 将一些经常检测到的字符串更改为新的硬编码值。这些字符串可用于对 BokuLoader 进行签名:
原始 Cobalt Strike 琴弦 BokuLoader Cobalt Strike 弦
ReflectiveLoader djoiqnfkjlnslfmn
Microsoft Base Cryptographic Provider v1.0 12367321236742382543232341241261363163151d
(admin) (tomin)
beacon beacon
  • BokuLoader 调用以下 NT 系统调用来设置加载的可执行信标内存:NtAllocateVirtualMemory,,NtProtectVirtualMemoryNtFreeVirtualMemory
    • 这些是直接从 BokuLoader 可执行内存调用的。这些系统调用不受 NTDLL 内存支持。
    • 设置 userland 挂钩ntdll.dll将不会检测到这些系统调用。
    • 可以使用内核驱动程序注册内核回调来监视上述系统调用,并在它们未被调用时检测它们的使用情况ntdll.dll
    • BokuLoader 本身将mov eax, r11d; syscall; ret在其可执行内存中包含汇编指令。
  • 将信标加载到新内存位置的原始信标内存将保留在内存中。
    • 这个原始内存将包含混淆的信标 DLL 标头和信标本身。
    • 可执行信标内存将不包含信标 DLL 标头。
    • 扫描内存以检测这些重复的内存区域是可能的。
  • 加载的信标内存被硬编码为Private: Commit内存区域,并且是292KB.
    • 原始信标内存会更大,因为它还包含0x1000字节信标 DLL 头,用于将信标 DLL 加载到内存中。
    • 内存部分将以+0x1000偏移量加载。这是由于内存的前 0x1000 个字节在 BokuLoader 中被释放。
  • BokuLoader 源代码在存储库中提供,可用于创建内存签名。
  • 如果您有其他检测指南,请随时通过提交拉取请求来做出贡献。

贡献/参考

反射加载器

HalosGate 系统调用程序

  • 来自 @SEKTOR7net 的 Reenz0h
    • 查看 Reenz0h 的精彩课程和博客!
    • 我参加过的最好的恶意软件开发课程。
    • 光环门技术的创造者。他的工作最初是这项工作的动力。
    • Sektor7 HalosGate 博客

HalosGate SysCaller

  • @smelly__vx & @am0nsec(地狱之门技术的创造者/发行者)

Cobalt Strike 用户定义的反射加载器

学习英特尔 ASM 的好资源

ETW 和 AMSI 旁路

使用 GCC 在 C 代码中实现 ASM

Cobalt Strike C2 配置文件生成器

 
标签:工具分享, 免杀工具