Ran Harel

Actualización del 6 de julio de 2021: Microsoft ha publicado un parche para CVE 2021-34527, disponible aquí.

Otra semana, otra vulnerabilidad crítica. El último fallo de seguridad crítico se denomina "PrintNightmare", en referencia a dos vulnerabilidades del servicio Windows Print Spooler: CVE 2021-1675 y CVE 2021-34527, publicadas entre junio y julio de 2021.

CVE 2021-1675 es una vulnerabilidad parcheada que permite la ejecución remota de código y la elevación de privilegios en servidores y equipos que ejecutan Print Spooler. CVE 2021-34527 también permite la ejecución remota de código y la elevación de privilegios en el mismo servicio a través de medios algo diferentes. (Actualización del 6 de julio de 2021: Microsoft publicó un parche para CVE-2021-34527.) En este momento, no está clara la relación exacta entre las dos vulnerabilidades y si el parche estaba incompleto o si se descubrió otro método de ataque.

Antes de continuar, empecemos por el principio, si aún no lo ha hecho, deshabilite cualquier servicio de Windows Print Spooler que se ejecute en un controlador de dominio. (Semperis Directory Services Protector (DSP) incluye indicadores que escanean continuamente en busca de exposiciones y signos de compromiso, incluyendo Print Spoolers habilitados en controladores de dominio).

Semperis Directory Services Protector explora continuamente AD y alerta sobre indicadores de exposición y peligro, incluido un indicador para buscar controladores de dominio con el servicio activo de cola de impresión en ejecución.

Print Spooler es un servicio de Windows activado por defecto en todos los clientes y servidores de Windows. El servicio gestiona los trabajos de impresión cargando controladores de impresora, recibiendo archivos para imprimir, poniéndolos en cola, programándolos, etc.

El servicio Print Spooler es necesario cuando un ordenador está conectado físicamente a una impresora que proporciona servicios de impresión a otros ordenadores de la red. Es posible utilizar controladores y software de terceros (como los que ofrecen los fabricantes de impresoras), pero muchas organizaciones confían en el servicio Print Spooler por defecto.

En los controladores de dominio, Print Spoolers se utiliza principalmente para la poda de impresoras , es decir,para eliminarimpresoras que se han publicado en Active Directory y que ya no están disponibles en la red. La poda de impresoras es especialmente importante en entornos grandes con muchas impresoras, ya que "limpia" la lista de impresoras disponibles para los usuarios del dominio. Sin embargo, para que este método funcione, debe existir una directiva de grupo adecuada.

Desde el punto de vista de la seguridad, el administrador de impresión de Windows, y las impresoras en general, han sido un jugoso objetivo para la explotación por parte de los atacantes durante muchos años. El gusano Stuxnet de 2010, utilizado contra instalaciones nucleares iraníes, explotó una vulnerabilidad en el servicio para escalar privilegios y propagar malware por la red. La misma vulnerabilidad de Print Spooler volvió a aparecer en 2020, cuando los investigadores descubrieron nuevas formas de explotarla. Combinado con el hecho de que las impresoras son notoriamente pirateables, ¿quizás ha llegado el momento de dejar de usar papel?

PrintNightmare Error de día cero

La iteración de junio de 2021 de la vulnerabilidad Print Spooler comenzó con el martes de parches de junio de 2021 de Microsoft, que incluía un parche para el CVE 2021-1675, que Microsoft consideraba una vulnerabilidad de escalada de privilegios cuya explotación era "menos probable" en ese momento, con una puntuación CVSS de 6,8 (riesgo medio). Microsoft actualizó este CVE el 21 de junio para incluir la ejecución remota de código y elevó la puntuación CVSS a 7,8 (riesgo alto). Pocos días después, apareció en GitHub un código de explotación PoC. El código fue retirado rápidamente de la red, pero ya había sido bifurcado varias veces.

El 30 de junio, se hizo evidente que el parche no era suficiente, y los sistemas totalmente parcheados seguían siendo vulnerables a la ejecución remota de código y a la elevación de privilegios a SYSTEM. El código del exploit original se modificó, por lo que el parche solo fue efectivo en parte.

El 1 de julio, Microsoft creó una nueva vulnerabilidad, CVE 2021-34527. (6 de julio de 2021: Microsoft publicó un parche).

Carrete de impresión desglose de vulnerabilidades

La vulnerabilidad de ejecución remota de código de Print Spooler aprovecha la llamada a la función RpcAddPrinterDriver en el servicio Print Spooler que permite a los clientes añadir archivos dll arbitrarios como controladores de impresora y cargarlos como SYSTEM (el contexto del servicio spooler).

La función está diseñada para permitir a los usuarios actualizar impresoras de forma remota, por ejemplo, la persona de TI que instala remotamente su flamante impresora de oficina. Sin embargo, un fallo lógico en su funcionamiento permite a cualquier usuario inyectar su propia dll sin firmar en el proceso, saltándose la autenticación o validación del archivo.

Cómo mitigar PrintNightmare

Actualización del 7 de julio de 2021 - Microsoft ha publicado un parche para CVE 2021-34527. Se recomienda deshabilitar el Print Spooler donde no sea necesario. Puede deshabilitar el servicio Print Spooler en todos sus centros de distribución (o en cualquier equipo) mediante la configuración de directiva de grupo en Configuración del equipoConfiguración de WindowsConfiguración de seguridadServicios del sistema o, mejor aún, mediante Preferencias de GP en Configuración del equipoPreferenciasConfiguración del panel de controlServicios. Otra solución no oficial consiste en limitar el acceso a la carpeta de controladores desde la que se carga el servicio. Esto tendría que hacerse en cada servidor y no ha sido completamente probado a lo mejor de mi conocimiento, por lo que el uso bajo su propio riesgo.

Protección de los controladores de dominio

Los controladores de dominio nunca deben utilizarse como servidores de impresión. La única razón legítima que conozco para tener Print Spooler ejecutándose en un DC es para la poda de impresoras mencionada anteriormente. Además de las numerosas vulnerabilidades de Windows Print Spooler, un vector de ataque contra este servicio conocido como "el bug de la impresora" permite a un atacante que puede comprometer un recurso con delegación Kerberos no restringida comprometer también el DC con privilegios de SISTEMA. Una buena explicación de este ataque está aquí.

Supervisión continua de vulnerabilidades como PrintNightmare

Vemos vulnerabilidades en la infraestructura de TI comúnmente desplegada semanalmente. La brevedad de los ciclos que van desde la divulgación hasta la utilización como arma exige un enfoque de mitigación rápido que incluya la supervisión continua del entorno combinada con la priorización y la información sobre medidas correctoras.

El producto de Semperis Directory Services Protector (DSP) incluye indicadores que buscan continuamente riesgos y señales de peligro en entornos de identidad híbridos (incluida la detección de Print Spoolers activados en controladores de dominio) y proporciona priorización, métricas y orientación prescriptiva para la corrección.

Más recursos

¿Quiere saber más sobre cómo hacer frente a PrintNightmare, PetitPotam y otros nuevos ataques dirigidos contra Active Directory? Sintonice con Mejora de las defensas de Active Directory: Lecciones aprendidas de ataques recientes como PrintNightmareun seminario web gratuito a petición impartido por Sean Deuby, Director de Servicios de Semperis.