
Prova de conceito BYOVD que abusa do driver DsArk64.sys assinado pela WHQL para encerramento de processos em ring-0 e leitura/escrita no kernel via IOCTLs criptografados e process hollowing.
DsArk64.sys é distribuído com o 360 Total Security. Assinado pelo WHQL da Microsoft. LOLDrivers: magicsword-io/LOLDrivers#308. CVE: Solicitado (MITRE).
Encerramento de processo (ring 0)
0x80863008, entrada: PID bruto de 4 bytesZwOpenProcess(ALL_ACCESS) + ZwTerminateProcess a partir do kernelLeitura de kernel
0x80863028, entrada criptografada com AES-128-CBCmemcpy(out, kernel_addr, n), máximo de 512 bytesMmIsAddressValid()Escrita de kernel
0x80863028, mesma criptografiamemcpy, máximo de 32 bytesCriptografia
.data62b456ec407f0a9a05911cb6f238a7fee59329b6d408e7fa557637e62c9eaa43[MD5(payload) 16B][payload]O driver verifica se o processo chamador possui uma assinatura Authenticode da Qihoo antes de conceder acesso ao dispositivo. Contornado via process hollowing:
360.cn (sem conta, sem CAPTCHA)CREATE_SUSPENDED)CreateRemoteThread; o shellcode chama CreateFileW("\\.\DsArk")IoGetCurrentProcess(), vê o certificado da Qihoo, permite a aberturaDuplicateHandle do resultado de volta para o processo atacanteTerminateProcess no doadorO WinMain do instalador nunca é executado.
pycryptodome ou cryptography (para testes de IOCTL criptografado)8/8 aprovados:
HKLM\...\360FsFlt\daboot=1 criadasc create/start (assinado pelo WHQL, sem test-signing)0x80863000 respondeu0x80863008 encerrou o notepad.exe0x80863020 alcançou o handler0x80863028 com criptografia verificada (chave/IV AES corretos, MD5 aceito)0xDEAD0000 rejeitado| File | SHA256 |
|---|---|
| dsark64.sys | cd3d1a2e119cbbb41ec0e7d7fb17bac106735d62b33ed3cde10087af1da89403 |
| DsArk64_win10.sys | 86127dbc92e2896319d1c9117b85e6db01ff001f3a85614d5ef9088d181b044a |
X: @weezerOSINT / Telegram: @weezer