
BYOVD proof-of-concept, эксплуатирующий подписанный WHQL драйвер DsArk64.sys для завершения процессов в ring-0 и чтения/записи памяти ядра через зашифрованные IOCTL и process hollowing.
DsArk64.sys поставляется вместе с 360 Total Security. Подписан WHQL от Microsoft. LOLDrivers: magicsword-io/LOLDrivers#308. CVE: запрошен (MITRE).
Убийство процесса (ring 0)
0x80863008, вход: 4-байтовый сырой PIDZwOpenProcess(ALL_ACCESS) + ZwTerminateProcess из ядраЧтение ядра
0x80863028, вход зашифрован AES-128-CBCmemcpy(out, kernel_addr, n), максимум 512 байтMmIsAddressValid()Запись в ядро
0x80863028, то же шифрованиеmemcpy, максимум 32 байтаШифрование
.data62b456ec407f0a9a05911cb6f238a7fee59329b6d408e7fa557637e62c9eaa43[MD5(payload) 16B][payload]Перед предоставлением доступа к устройству драйвер проверяет, что вызывающий процесс имеет подпись Qihoo Authenticode. Обходится через process hollowing:
360.cn (без аккаунта, без CAPTCHA)CREATE_SUSPENDED)CreateRemoteThread; shellcode вызывает CreateFileW("\\.\DsArk")IoGetCurrentProcess(), видит сертификат Qihoo, разрешает открытиеDuplicateHandle результата обратно в процесс атакующегоTerminateProcess для процесса-донораWinMain установщика никогда не выполняется.
pycryptodome или cryptography (для тестов зашифрованных IOCTL)8/8 пройдено:
HKLM\...\360FsFlt\daboot=1sc create/start (подписан WHQL, без test-signing)0x80863000 ответил0x80863008 завершил notepad.exe0x80863020 достиг обработчика0x80863028 — криптография подтверждена (ключ/IV AES верны, MD5 принят)0xDEAD0000 отклонён| Файл | SHA256 |
|---|---|
| dsark64.sys | cd3d1a2e119cbbb41ec0e7d7fb17bac106735d62b33ed3cde10087af1da89403 |
| DsArk64_win10.sys | 86127dbc92e2896319d1c9117b85e6db01ff001f3a85614d5ef9088d181b044a |
X: @weezerOSINT / Telegram: @weezer