kapla0011/KaplaStrike
GitHub: kapla0011/KaplaStrike
基于 Crystal Palace 构建的 Cobalt Strike 反射式加载器,集成模块覆盖、调用栈欺骗、睡眠遮罩和静态特征清除等反 EDR 检测技术。
Stars: 226 | Forks: 41
# Crystal-Palace UDRL
一个基于 [Crystal Palace](https://tradecraftgarden.org) 构建的 Cobalt Strike Reflective Loader。
部分组件基于或取自 [@_RastaMouse](https://twitter.com/_RastaMouse) 的 [Crystal-Kit](https://github.com/rasta-mouse/Crystal-Kit)。
感谢他提供的 sleep masking 实现以及 loader 架构的重要部分。
去看看他的作品和他的 CRTL 课程吧。
要全面了解此处实现的每项技术,请阅读随附的博客文章:[以晶莹剔透的方式绕过 EDR](https://lorenzomeacci.com/bypassing-edr-in-a-crystal-clear-way)
## 它的功能
- 通过 `NtCreateSection` + `NtMapViewOfSection` 进行模块覆盖(无需 `LoadLibrary`,无需 CFG)
- 通过 `RtlAddFunctionTable` 注册 `.pdata`,以获得干净的 beacon 调用栈帧
- 使用带有合成的 `BaseThreadInitThunk` / `RtlUserThreadStart` 帧的 `NtContinue` 进行入口转移
- 通过 Draugr 为 loader 设置进行 API 调用栈欺骗
- 在构建时对 beacon DLL 进行 XOR 加密
- 通过 `addhook` IAT hooking 和逐节 XOR 加密进行 Sleep masking
- 通过 `ised` 移除 Crystal Palace 的 YARA 特征
## 设置
### 1. Malleable C2 profile
```
stage {
set cleanup "true";
set sleep_mask "false";
set obfuscate "false";
}
post-ex {
set cleanup "true";
}
```
Sleep masking 完全由 loader 处理。不要在 profile 中启用它。
### 2. CNA 脚本
在生成 payload 之前,在您的 Cobalt Strike 客户端中加载 `NOUDRL.cna`。这会从 beacon DLL 中剥离默认的 reflective loader,以便仅将原始 DLL 传递给 RL pipeline:
```
set BEACON_RDLL_SIZE {
warn("Running 'BEACON_RDLL_SIZE' for DLL " .$1. " with architecture " .$2);
return "0";
}
set BEACON_RDLL_GENERATE {
local('$arch $beacon $fileHandle $ldr $path $payload');
$beacon = $2;
$arch = $3;
return $beacon;
}
```
### 3. 构建
```
make x64
./link spec/loader.spec cobalt_strike_raw.dll output.bin
```
`output.bin` 是最终的 PIC blob。使用任何 shellcode loader 执行它。
## 致谢
- [Daniel Duggan (@_RastaMouse)](https://x.com/_RastaMouse) — Crystal-Kit,CRTL 课程
- [Alex Reid (@Octoberfest7)](https://x.com/Octoberfest73) — NtContinue 入口转移方法
- [Alessandro Magnosi (@KlezVirus)](https://x.com/KlezVirus) — 研究及解答我的愚蠢问题
- [Codextf2](https://x.com/codex_tf2) - 解答我关于 CS 的愚蠢问题
- Raphael Mudge — Crystal Palace
## 免责声明
此工具仅供授权的安全测试和研究目的使用。
标签:Cobalt Strike, DNS 反向解析, EDR绕过, UML, 内存加载, 客户端加密, 攻击诱捕, 高交互蜜罐