Preguntas frecuentes sobre printNightmare (CVE-2021-34527)

Sergio De Los Santos    5 julio, 2021
Preguntas frecuentes sobre printNightmare (CVE-2021-34527)

Vamos a intentar aclarar algunas dudas comunes sobre esta vulnerabilidad, puesto que ha aparecido con ciertos datos confusos sobre si estaba parcheada, denominación, fórmulas para ser explotada y cómo protegerse.

¿Por qué sale ahora y sin parche?

Zhiniang Peng y Xuefeng Li van a la Black Hat este año a mostrar cómo explotar vulnerabilidades en la cola de impresión de Windows. Por alguna razón publicaron todos los detalles de una vulnerabilidad que en principio llamaron CVE-2021-1675 pero que luego se ha confirmado como CVE-2021-34527 y con el alias “printNightmare”.

Publicaron en github el exploit y poco después de arrepintieron y lo borraron. Pero ya era tarde y se copió en otros muchos lugares con otros formatos, lenguajes, etc.

¿Está parcheada?

No. En un principio se pensaba que de alguna forma era una variante de CVE-2021-1675, parcheada el ocho de junio, pero no. Es un fallo diferente. Eso sí, tener el parche o no influye en el flujo de decisión para ser más o menos vulnerable.

¿Cómo me atacan?

Se necesita tener un usuario válido en el sistema o en la red (alojado en el controlador de dominio) y que el controlador de dominio permita la impresión remota. Estas son las condiciones básicas. A partir de ahí, cualquiera con no demasiados conocimientos podrá inyectar una DLL en el servidor con privilegios de SYSTEM, lo que en la práctica significa control absoluto de toda la red.

¿Soy vulnerable?

Probablemente sí, todos los Windows lo son en potencia. Existen exploits ya de todo tipo, es muy sencillo de explotar. Si la cola de impresión está accesible y no está el parche aplicado, el exploit funcionará. A la cola de impresión no se accede directamente a través de un puerto por tanto regular el acceso por el cortafuegos no ayudará (a no ser que se quiera bloquear puertos 445 y 137 que son más delicados de gestionar).

Si se tiene el parche en un controlador de dominio, y el atacante está en el grupo de compatibilidad pre-2000, el exploit funcionará. “Pre-windows 2000 Compatible Access” es un grupo que relaja y adapta ciertas medidas para que puedan funcionar sistemas 9x en el controlador. Esto no es tan poco común como pueda parecer.

Si no es un controlador de dominio, entonces hay que fijarse en otro parámetro puesto que lo anterior no aplica. Hay que fijarse en el estado de “point and print” y “EnableLUA”. El primero es un sistema que permite imprimir con un solo clic, esto es, instalación automática de drivers si es necesario. El segundo tiene que ver con el UAC y si está desactivado, el exploit funcionará. Se ve mucho mejor en este árbol de decisión.

¿Cómo puedo protegerme?

Depende de lo que quieras sacrificar. Si no necesitas para nada imprimir, lo más sencillo es apagar y deshabilitar el servicio.

Si se necesita imprimir en local pero que nadie pueda explotar esto en remoto, se puede deshabilitar la impresión remota desde GPO.

Se consigue deshabilitando esa “Permitir que el administrador de trabajos de impresión acepte conexiones cliente”. O en inglés: “Allow Print Spooler to accept client connections”. Es necesario reiniciar el servicio.

Algo que está por defecto deshabilitado pero no está de más asegurarse es el «point and print»:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers\PointAndPrint
  • NoWarningNoElevationOnInstall = 0
  • NoWarningNoElevationOnUpdate = 0

¿Qué ocurre si se quiere imprimir en todas las condiciones desde fuera y dentro? Una fórmula más arriesgada pero que permite operar más libre es modificar los permisos.

Con este “hack” el impacto es que no se puedan añadir más impresoras en el sistema, pero el exploit no funcionará aunque el fallo seguirá ahí. Es arriesgado pero parece eficaz. Más información aquí.

¿Cómo puedo saber si estoy siendo atacado?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *