Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/cobalt-strike/eden
渗透测试框架漏洞利用框架Shellcode后渗透利用学习与教育红队Payload 开发
GitHubcobalt-strike/eden

eden

一个为Cobalt Strike构建的PoC UDRL,使用Crystal Palace,结合了Raphael Mudge的页面流技术和一个模块化调用门(Draugr)

查看仓库
137739个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Eden

drawing

Eden loader 是一个基于 Crystal Palace 构建的 PoC UDRL(用户自定义反射加载器),适用于 Cobalt Strike。它结合了 Raphael Mudge 的 页面流式技术 与模块化调用门(目前是 Sleepmask-VS Draugr callgate BOF 的 PIC 版本)。

Eden loader 的目标是:

  • 展示使用 Crystal Palace 组合(并复用)“能力”以快速开发自定义加载器/工具的强大之处
  • 作为他人构建的示例资源
  • 帮助安全从业者理解 UDRL 的工作原理(完全可调试)
  • 为 安全对话 提供信息/激发讨论

更多关于 Eden loader 的信息,请参阅配套 博客。

注意: Eden 的目的是展示使用 Crystal Palace 组合不同“执行单元”(即能力)以创建自定义加载器的理念。它并非旨在成为一个功能完备的“规避型”加载器,因此设计上刻意缺少一些基本的 OPSEC 特性。例如,它使用 RWX 内存,并且不 跟踪/掩码 Beacon 的堆内存(因此容易受到诸如 此 的 YARA 签名影响)。

快速开始指南

注意: 本快速开始指南假设您已 下载/构建 Crystal Palace,并完成了以下 步骤 以配置您的开发环境。

  1. 首先需要设置以下 Malleable C2 配置:
root@kitploit:~
stage {
    set sleep_mask "false";
}
  1. 在仓库根目录打开 WSL 终端,构建 Eden loader:make clean; make。
  2. 将 crystalpalace.jar 复制到您的 Cobalt Strike 客户端目录。
  3. 将 eden.cna 加载到 Cobalt Strike 客户端中。
  4. 下次导出有效载荷时,Eden 将自动应用。您可以通过检查脚本控制台中的输出来验证:
root@kitploit:~
[14:55:55] [*] Generating Payload: HTTP -- Type: HTTP -- Arch: x64 -- Exit Function: Thread -- System Call: None -- HTTP Library: wininet
[14:55:56] [EDEN] Parsing C:\Users\wb\Desktop\eden\eden.spec...
[14:55:56] [EDEN] Applying eden ldr spec...
[14:55:56] [EDEN] Payload Size: 387060 bytes
[14:55:56] [*] Using user modified reflective DLL! DLLName=resources/beacon.x64.rl0k.dll Arch=x64

注意: Eden 支持 HTTP(S)、DNS 和 Pivot Beacon。

调试指南

Crystal Palace 在发布时的一个限制是当前仅支持使用 mingw 构建的目标文件。如果您尝试使用 MSVC 或 Clang 构建的 COFF,通常会遇到重定位错误。这可能会令人沮丧,因为 mingw 不直接支持 pdb 文件,因此在编写复杂的 Windows 技术时很难进行调试。但是,您可以在 Makefile 中添加 -g 选项,以在可执行构建中嵌入调试信息。这使得可以在 WinDbg 中单步调试代码。有关此过程的更多信息,建议阅读 Rastamouse 的以下 博客。

本仓库默认使用上述方法构建 Draugr 的调试版本(draugr.x64.exe)和页面流式代码(guardexec.x64.exe)。Draugr 调试版本没有依赖项,因此可直接构建,但如果您希望单步调试页面流式/IAT 挂钩代码,则需要按照以下步骤操作:

1. 导出不带加载器的 Beacon:

  • 将 debug/export_beacon_with_no_ldr.cna 加载到 CS 客户端中,并将无阶段原始 x64 (HTTP) Beacon 导出到 /eden/debug/ 目录。这将导出一个不带反射加载器的 Beacon DLL,我们可以用它来模拟 guardexec 入口点。
  • (在 WSL 中)$ xxd -i ./beacon_x64.bin > debug_beacon.h

2. 从 Crystal Palace 导出 Draugr PIC 存根:

  • 为此,您需要通过 $ ./piclink /<path>/eden/debug/draugr.spec x64 /<path>/eden/debug/draugr.bin 从 WSL 运行 Crystal Palace。这将使用 Crystal Palace 仅输出 Draugr PIC 存根,可用于模拟 guardexec 入口点。
  • (在 WSL 中)$ xxd -i ./draugr.bin > debug_druagr.h

3. 在 WinDbg 中开始调试

  • 完成上述步骤后重新构建 Eden:make clean;make
  • 打开 WinDbg,选择启动可执行文件(/eden/bin/draugr.exe 或 /eden/bin/guardexec.exe)
  • 选择 Open source file,然后选择相关的 .c 文件(例如,调试页面流式代码时选择 guardexec.c)。
  • 现在,您可以为独立的调用栈欺骗 Draugr 二进制文件或带有 IAT 挂钩的活动 Beacon 设置断点/单步调试。警告:调试模式下掩码功能无法正常工作,因为它需要 Crystal Palace 在有效载荷生成期间注入密钥。

注意: 加载器没有调试可执行文件,因为目前没有明确的方法让 Crystal Palace 为加密的 DLL 及其密钥等导出调试有效载荷。因此,传入模拟的“加密”PIC 缓冲区变得不简单。

设计考量

  1. Eden loader 主要用于通过组合不同的**“能力”**来演示 Crystal Palace 的强大之处,从而创建一种新颖的加载器。这个想法可以比本仓库中的实现走得更远(例如,一个完全通过 COFF 模块(防护栏、调用门、睡眠混淆等)自定义的“静态”PIC 加载器)。

  2. Eden loader 明确使用 Draugr 的 PIC 版本,以便可以欺骗 Beacon 生命周期的每次调用(即反射加载过程中使用的 VirtualAlloc / LoadLibrary 调用)。在某些情况下,这可能有些过度(例如,EDR 不关心对 LoadLibrary 等的无后盾调用),此时可修改为使用更简单的 Draugr 的 PICO(==“BOF”)版本。

  3. Eden loader 有意保持“调用门”与加载器解耦。这是出于模块化的设计考虑,因为您可以换入换出 BeaconGate/调用门 BOF。因此,Draugr 调用门代码完全包含在其自己的目标文件中。通过将其替换为另一个“能力”,可以显著改变 Eden 的 TTPs。

  4. Eden loader 有意未使用 Crystal Palace 的较新功能。例如,mergelib 可以与 Crystal Palace 的共享库 LibTCG 一起使用。但是,请注意这会导致失去调试代码的能力。

故障排除

页面流式技术可能会影响某些命令的 Beacon 性能(例如,默认情况下,配置 4 个可见页面时,进程注入将花费 ~1 分钟(!) )。您可以在 guardexec.h 中增加 #define MAXVISIBLE 以解决大多数问题(Eden 的默认值为 6)。一般来说,页面流式技术可能会导致进程注入技术出现问题(尤其是那些依赖时间的技术)。

为什么发布这个?

https://aff-wg.org/2025/03/13/the-security-conversation/

相关工作/致谢

Eden loader 使用 Crystal Palace (https://tradecraftgarden.org/crystalpalace.html) 构建,并利用了以下项目:

  • Raphael Mudge 的页面流式技术:https://tradecraftgarden.org/pagestream.html。
  • NtDallas 的 Draugr 调用栈欺骗技术:https://github.com/NtDallas/Draugr。
  • Sleepmask-VS 包含示例 BOF 调用门。这些“能力”被重新利用和修改,以编译为 PIC 并用于 Crystal Palace。
  • Rastamouse 的 Crystal-Kit 是一个类似的项目,也使用了 Draugr BeaconGate BOF,但实现方式不同。

最后,感谢 @rastamouse 关于 Crystal Palace 的 博客 在开发过程中提供的帮助。

下载工具