PrintNightmare: Vulnerabilidad sin parche afecta al servicio de cola de impresión de Windows – CVE-2021-34527

Microsoft lanzó el 01/07/2021 una vulnerabilidad identificada como CVE-2021-34527, que afecta al servicio de cola de impresión de Windows y permitiría la ejecución de código remoto en los sistemas con dicho servicio, incluso desde las cuentas de usuarios que sólo tienen permisos básicos. Cabe mencionar, que este problema es similar pero distinto de la vulnerabilidad a la que se le asigna CVE-2021-1675, que aborda una vulnerabilidad diferente en RpcAddPrinterDriverEx (). El vector de ataque también es diferente al CVE-2021-1675 que fue abordado por la actualización de seguridad publicada el 8 de junio de 2021.

La vulnerabilidad de ejecución remota de código se explota con éxito cuando el servicio de cola de impresión de Windows realiza incorrectamente operaciones con archivos privilegiados. Un atacante que aproveche con éxito esta vulnerabilidad podría ejecutar código arbitrario con privilegios de SISTEMA, podría instalar programas; ver, cambiar o eliminar datos; o crear nuevas cuentas con todos los derechos de usuario.

Los requisitos previos para una explotación exitosa consisten en:

  • Servicio de cola de impresión habilitado en el sistema de destino.
  • Conectividad de red al sistema de destino (se ha obtenido el acceso inicial).
  • Hash o contraseña para una cuenta de usuario (o computadora) con pocos privilegios.
Fuente: Stan Hegt (@StanHacked)

Microsoft aun no ha asignado severidad a la vulnerabilidad identificada como PrintNightmare bajo ID CVE-2021-34527. A continuación, se detallan los productos afectados:

CVEImpactoProducto Afectado
CVE-2021-34527Ejecución remota de códigoWindows Server 2012 R2 (Server Core installation)
CVE-2021-34527Ejecución remota de códigoWindows Server 2012 R2
CVE-2021-34527Ejecución remota de códigoWindows Server 2012 (Server Core installation)
CVE-2021-34527Ejecución remota de códigoWindows Server 2012
CVE-2021-34527Ejecución remota de códigoWindows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation)
CVE-2021-34527Ejecución remota de códigoWindows Server 2008 R2 for x64-based Systems Service Pack 1
CVE-2021-34527Ejecución remota de códigoWindows Server 2008 for x64-based Systems Service Pack 2 (Server Core installation)
CVE-2021-34527Ejecución remota de códigoWindows Server 2008 for x64-based Systems Service Pack 2
CVE-2021-34527Ejecución remota de códigoWindows Server 2008 for 32-bit Systems Service Pack 2 (Server Core installation)
CVE-2021-34527Ejecución remota de códigoWindows Server 2008 for 32-bit Systems Service Pack 2
CVE-2021-34527Ejecución remota de códigoWindows RT 8.1
CVE-2021-34527Ejecución remota de códigoWindows 8.1 for x64-based systems
CVE-2021-34527Ejecución remota de códigoWindows 8.1 for 32-bit systems
CVE-2021-34527Ejecución remota de códigoWindows 7 for x64-based Systems Service Pack 1
CVE-2021-34527Ejecución remota de códigoWindows 7 for 32-bit Systems Service Pack 1
CVE-2021-34527Ejecución remota de códigoWindows Server 2016 (Server Core installation)
CVE-2021-34527Ejecución remota de códigoWindows Server 2016
CVE-2021-34527Ejecución remota de códigoWindows 10 Version 1607 for x64-based Systems
CVE-2021-34527Ejecución remota de códigoWindows 10 Version 1607 for 32-bit Systems
CVE-2021-34527Ejecución remota de códigoWindows 10 for x64-based Systems
CVE-2021-34527Ejecución remota de códigoWindows 10 for 32-bit Systems
CVE-2021-34527Ejecución remota de códigoWindows Server, version 20H2 (Server Core Installation)
CVE-2021-34527Ejecución remota de códigoWindows 10 Version 20H2 for ARM64-based Systems
CVE-2021-34527Ejecución remota de códigoWindows 10 Version 20H2 for 32-bit Systems
CVE-2021-34527Ejecución remota de códigoWindows 10 Version 20H2 for x64-based Systems
CVE-2021-34527Ejecución remota de códigoWindows Server, version 2004 (Server Core installation)
CVE-2021-34527Ejecución remota de códigoWindows 10 Version 2004 for x64-based Systems
CVE-2021-34527Ejecución remota de códigoWindows 10 Version 2004 for ARM64-based Systems
CVE-2021-34527Ejecución remota de códigoWindows 10 Version 2004 for 32-bit Systems
CVE-2021-34527Ejecución remota de códigoWindows 10 Version 21H1 for 32-bit Systems
CVE-2021-34527Ejecución remota de códigoWindows 10 Version 21H1 for ARM64-based Systems
CVE-2021-34527Ejecución remota de códigoWindows 10 Version 21H1 for x64-based Systems
CVE-2021-34527Ejecución remota de códigoWindows Server, version 1909 (Server Core installation)
CVE-2021-34527Ejecución remota de códigoWindows 10 Version 1909 for ARM64-based Systems
CVE-2021-34527Ejecución remota de códigoWindows 10 Version 1909 for x64-based Systems
CVE-2021-34527Ejecución remota de códigoWindows 10 Version 1909 for 32-bit Systems
CVE-2021-34527Ejecución remota de códigoWindows Server 2019 (Server Core installation)
CVE-2021-34527Ejecución remota de códigoWindows Server 2019
CVE-2021-34527Ejecución remota de códigoWindows 10 Version 1809 for ARM64-based Systems
CVE-2021-34527Ejecución remota de códigoWindows 10 Version 1809 for x64-based Systems
CVE-2021-34527Ejecución remota de códigoWindows 10 Version 1809 for 32-bit Systems

Cabe destacar que, aún con los parches del 21 de Junio, el ‘exploit’ podría afectar a los controladores de dominio. Es este el escenario que a día de hoy más preocupación causa, ya que permitiría el escalado de privilegios en entornos ActiveDirectory.

Para determinar si el servicio de cola de impresión se está ejecutando, ejecute lo siguiente:
Get-Service -Name Spooler

Dado que no se ha publicado un parche oficial, se recomienda aplicar las siguientes contramedidas:

Opción 1: Deshabilitar el servicio de cola de impresión

Stop-Service -Name Spooler -Force
Set-Service -Name Spooler -StartupType Disabled

Impacto: Deshabilitar el servicio de cola de impresión, desactiva la capacidad de imprimir tanto de forma local como remota.

Opción 2: Deshabilitar la impresión remota entrante a través de la directiva de grupo

1. Ir a "Configuración del equipo / Plantillas administrativas / Impresoras"
2. Desactivar la política "Permitir que la cola de impresión acepte conexiones de cliente" para bloquear ataques remotos.
Fuente: Hackplayers

Impacto: Esta política bloqueará el vector de ataque remoto al evitar las operaciones de impresión remota entrantes. El sistema ya no funcionará como servidor de impresión, pero la impresión local en un dispositivo conectado directamente seguirá siendo posible.

Opción 3: Restringir el acceso a directorio donde se dropean las DLLs, mediante la ejecución del siguiente script powershell

El exploit funciona colocando una DLL en un subdirectorio en C:\Windows\System32\spool\drivers. Al restringir las ACL en este directorio (y subdirectorios) podemos evitar que el servicio de cola de impresión introduzca DLL maliciosas.

$Path = "C:\Windows\System32\spool\drivers"
$Acl = (Get-Item $Path).GetAccessControl('Access')
$Ar = New-Object  System.Security.AccessControl.FileSystemAccessRule("System", "Modify", "ContainerInherit, ObjectInherit", "None", "Deny")
$Acl.AddAccessRule($Ar)
Set-Acl $Path $Acl
PrintNightmare CVE-2021-1675 workaround ACL
Fuente: TrueSecBlog

Si los administradores necesitan realizar cambios de configuración que requieren que el servicio escriba en estos directorios, esta regla se puede eliminar temporalmente y volver a agregar después del cambio. Mas información aquí.

Impacto: Sólo mantendrá el servidor de impresión en funcionamiento en los casos en que sea estrictamente necesario.

Se recomienda realizar las comprobaciones oportunas para identificar aquellos equipos vulnerables, aplicar las contramedidas descritas y prestar especial atención a las actualizaciones sobre esta vulnerabilidad y parchear lo antes posible.

Referencias: