
PoC BYOVD che sfrutta il driver DsArk64.sys firmato WHQL per la terminazione di processi a livello ring-0 e lettura/scrittura nel kernel tramite IOCTL cifrati e process hollowing.
DsArk64.sys viene distribuito con 360 Total Security. Firmato WHQL da Microsoft. LOLDrivers: magicsword-io/LOLDrivers#308. CVE: Richiesto (MITRE).
Process kill (ring 0)
0x80863008, input: PID grezzo di 4 byteZwOpenProcess(ALL_ACCESS) + ZwTerminateProcess dal kernelLettura kernel
0x80863028, input cifrato AES-128-CBCmemcpy(out, kernel_addr, n), massimo 512 byteMmIsAddressValid()Scrittura kernel
0x80863028, stessa cifraturamemcpy, massimo 32 byteCifratura
.data62b456ec407f0a9a05911cb6f238a7fee59329b6d408e7fa557637e62c9eaa43[MD5(payload) 16B][payload]Il driver verifica che il processo chiamante abbia una firma Authenticode Qihoo prima di concedere l'accesso al dispositivo. Aggirato tramite process hollowing:
360.cn (nessun account, nessun CAPTCHA)CREATE_SUSPENDED)CreateRemoteThread; lo shellcode chiama CreateFileW("\\.\DsArk")IoGetCurrentProcess(), vede il certificato Qihoo, consente l'aperturaDuplicateHandle del risultato verso il processo attaccanteTerminateProcess sul donatoreIl WinMain dell'installer non viene mai eseguito.
pycryptodome o cryptography (per i test IOCTL cifrati)8/8 superati:
HKLM\...\360FsFlt\daboot=1 creatasc create/start (firmato WHQL, nessun test-signing)0x80863000 ha risposto0x80863008 ha terminato notepad.exe0x80863020 ha raggiunto l'handler0x80863028 crypto verificata (chiave/IV AES corretti, MD5 accettato)0xDEAD0000 rifiutato| File | SHA256 |
|---|---|
| dsark64.sys | cd3d1a2e119cbbb41ec0e7d7fb17bac106735d62b33ed3cde10087af1da89403 |
| DsArk64_win10.sys | 86127dbc92e2896319d1c9117b85e6db01ff001f3a85614d5ef9088d181b044a |
X: @weezerOSINT / Telegram: @weezer