Vulnerabilidad crítica de día cero en Windows Print Spooler: Ejecución de código remoto y elevación de privilegios

Disclaimer
Debido a lo reciente de esta noticia, así como la poca cantidad de confirmaciones con respecto a ciertos aspectos de la historia, estaremos ampliando y/o reconfirmando la información presente en este correo, debido a que la misma sigue bajo investigación.


Actualización #1 (02-07-2021 12:31PM GMT+2)
Se añaden luego de los contenidos originales de la entrada seis puntos que se hicieron conocidos tras la publicación de un advisory de Microsoft, así como dos mitigaciones ofrecidas por el fabricante.  

 

Actualización #1 (03-07-2021 12:51AM GMT+2)
Se añade al final de la entrada información sobre mitigación ya disponible con soluciones de Trend Micro para prevenir la explotación de esta vulnerabilidad y/o detectar actividad sospechosa posiblemente relacionada con la misma. 


Una vulnerabilidad que actualmente no se encuentra parcheada en Windows y podría permitir la ejecución de código remoto y elevación de privilegios de forma local, se ha filtrado accidentalmente a partir de la investigación de otra vulnerabilidad.

 

Este fallo, que los investigadores han llamado PrintNightmare, está presente en el servicio de Windows “Print Spooler” y es una vulnerabilidad de día cero con un alto impacto y severidad crítica, debido a que podría permitir tanto la ejecución de código remoto como elevación de privilegios de forma local. Si bien han salido parches de junio de Microsoft para una vulnerabilidad en Print Spooler (CVE-2021-1675), parece ser que esta vulnerabilidad no es resuelta por estos.

 

De hecho, Dustin Childs de Trend Micro Zero Day Initiative, ha compartido: “Aún estamos evaluando la eficacia del parche, pero hay múltiples reportes indicando que el código de prueba de concepto funciona contra sistemas completamente actualizados. Esto indica que el parche que salió en junio podría no resolver la causa raíz del bug. De todas maneras, las organizaciones deberían tomarlo como una solución incompleta e incorporar otros workarounds, como deshabilitar el servicio Print Spooler y bloquear los puertos TCP 135 y 445 en el perímetro

 

Adicionalmente, hay reportes de que Matthew Hickey, co-fundador de Hacker House, logró obtener privilegios de SYSTEM a partir de una cuenta de usuario de dominio en un servidor Windows Server 2019 a partir de esta vulnerabilidad. Mientras que Benjamin Delphy, desarrollador de Mimikatz, logró ejecutar código remoto con máximos privilegios también sobre un entorno completamente actualizado.

 

Debido a la presencia de este servicio en toda versión de Windows, y la falta de confirmación a la hora de enviar este aviso, recomendamos considerar que todo sistema operativo Windows, tanto endpoint como server, es vulnerable a PrintNightmare.

 

Por nuestra parte, recomendamos se priorice en las organizaciones la toma de medidas para reducir el riesgo que plantea esta vulnerabilidad. Principalmente debido a que se encontró público en GitHub detalle técnico y exploit de prueba de concepto por parte de security researchers. Y, si bien este contenido fue dado de baja al poco tiempo, parece ser que se han hecho forks del mismo. Adicionalmente, una vulnerabilidad con las características de esta resulta más que atractiva para cualquier atacante interesado en comprometer todo un dominio de forma muy sencilla y rápida.

 

De momento todo parece indicar que los parches de Windows de junio no resuelven esta vulnerabilidad, de acuerdo con pruebas realizadas por researchers que la están investigando. Por lo que, de momento, la única mitigación posible para esta vulnerabilidad consiste en deshabilitar el servicio de Print Spooler (Cola de impresión, en español), cosa que se recomienda sobre cualquier servidor donde no sea necesario que éste servicio esté en ejecución, principalmente en los controladores de dominio.

 

Si bien de momento no hay reglas de Virtual Patching que prevengan la explotación de esta vulnerabilidad tanto en Apex One como en Deep Security, principalmente a raíz de lo reciente de esta noticia, se espera que a la brevedad estén disponibles.


Actualización #1 (02-07-2021 12:31PM GMT+2)

 

A partir de la publicación de un advisory de Microsoft hay ciertas actualizaciones y aclaraciones sobre lo que se conoce acerca de la vulnerabilidad conocida como PrintNightmare, presente en el servicio Print Spooler de Windows.

 

  1. La vulnerabilidad ya cuenta con un identificador: CVE-2021-34527
  2. La vulnerabilidad permite la ejecución de código remoto en nombre de SYSTEM, lo que un atacante podría usar para lo que desee, como instalar programas, modificar o ver datos, e incluso crear usuarios con los máximos privilegios en los equipos donde la explote.
  3. La vulnerabilidad reside en el código de una función llamada RpcAddPrinterDriverEx() presente en toda versión de Windows. Microsoft aún está investigando si todas las versiones del Sistema Operativo son vulnerables.
  4. Microsoft aún no ha determinado severidad ni puntuación CVSS a la vulnerabilidad debido a que sigue investigando acerca de la misma.
  5. Si bien el parche de Junio resolvía una vulnerabilidad también presente en la función RpcAddPrinterDriverEx(), Microsoft ha confirmado que PrintNightmare estaba presente desde antes de ese parche y el mismo no la resuelve.
  6. De acuerdo con el Exploitability Assessment de Microsoft, la vulnerabilidad ya estaría siendo explotada de forma activa.

 

Adicionalmente, Microsoft ha publicado en su advisory dos opciones a modo de workaround:

 

Opción 1 – Deshabilitar el servicio Print Spooler

Ejecutar los siguientes comandos vía PowerShell:
Stop-Service -Name Spooler -Force
Set-Service -Name Spooler -StartupType Disabled

 

El primero detiene el servicio mientras que el segundo modifica su tipo de inicio a deshabilitado.
El impacto de este workaround es la pérdida de posibilidad de imprimir tanto de forma local como remota.

 

Opción 2 – Deshabilitar la impresión remota entrante a través de Group Policy

En Group PolicyComputer Configuration / Administrative Templates / Printers deshabilitar la política “Allow Print Spooler to accept client connections

 

El impacto de este workaround es que el sistema ya no podrá funcionar como print server, al prevenir que lleguen solicitudes remotas de impresión. Aún así, se podrá imprimir de forma local a un dispositivo conectado de forma directa.


Actualización #2 (03-07-2021 11:51AM GMT+2)

 

Trend Micro ya ha disponibilizado reglas para proteger nuestros servidores y endpoints ante la explotación de esta vulnerabilidad. A continuación se detallan las soluciones y el ID de las reglas que nos permiten detectar estos ataques.

 

Cloud One – Workload Security (ex-Deep Security) & Apex One
Para proteger servers y endpoints.

 

  • Rule 1011018 – Identified DCERPC AddPrinterDriverEx Call Over SMB Protocol
  • Rule 1011016 – Identified DCERPC AddPrinterDriverEx Call Over TCP Protocol

 

Trend Micro Cloud One – Network Security and TippingPoint ThreatDV Malware Detection Filters
Para detectar tráfico malicioso que explote esta vulnerabilidad en nuestra red (cloud y on-premises).

 

  • Filter 1011016 – Identified DCERPC AddPrinterDriverEx Call Over TCP Protocol

 

Adicionalmente para Cloud One – Workload Security (ex-Deep Security) contamos también con una regla de Log Inspection para generar eventos ante logs de la posible explotación de la vulnerabilidad:

 

  • 1011017 – Microsoft Windows – Print Spooler Failed Loading Plugin Module (PrintNightmare)

 

Es importante tener en cuenta que las reglas de Cloud One y Apex One, han sido creadas por Trend Micro en modo Detect Only ante la posibilidad de generar falsos positivos. Recomendamos os pongáis en contacto con nosotros para garantizar lo antes posible que las reglas se encuentren desplegadas, monitorizar por un par de horas que no se generen eventos que puedan ser falsos positivos, y luego hacer el cambio a Prevent.