
leitura/escrita arbitrária no kernel em dbutil_2_3.sys, Prova de Conceito de Escalação de Privilégio Local para nt authority/system
PoC simples para explorar CVE-2021-21551 para LPE ao iniciar um cmd do sistema.
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-21551
Foi descoberto um problema no driver assinado da Dell para Windows (dbutil_2_3.sys) que pode levar ao comprometimento de todo o sistema local. A rotina de despacho de ioctl do driver não possui validação do buffer fornecido pelo usuário.
Qualquer um pode criar um handle e emitir requisições ioctl para esses códigos ioctl que quebram o modelo de segurança do Windows:
Este PoC explora os códigos ioctl 0x9b0c1ec4/0x9b0c1ec8 para leitura/escrita arbitrária de memória do kernel, respectivamente. Primeiramente, localiza PsInitialSystemProcess no kernel para obter o token do sistema e, em seguida, escreve esse token na estrutura EPROCESS do processo atual. Antes de compilar, atualize seus offsets de EPROCESS para evitar BSOD usando https://www.vergiliusproject.com/
DWORD EPROCESS_ActiveProcessLinks = 0x2e8;
DWORD EPROCESS_Token = 0x348;
Use o Visual Studio para compilar (requer cabeçalho do Windows). Cabeçalho SDK Ntdll: https://github.com/mathisvickie/segy-software/blob/main/external/ntdll.h
Testado em:
Uma exploração bem-sucedida executará um cmd do sistema. Se você obtiver um bugcheck PAGE_FAULT_IN_NONPAGED_AREA, os offsets provavelmente estão incorretos. Exemplo de saída:
