PrintNightmare es una vulnerabilidad que permite la ejecución código remoto cuando el servicio de cola de impresión de Windows realiza incorrectamente operaciones con archivos privilegiados. Con PrintNightmare un atacante podría ejecutar código arbitrario con privilegios de SYSTEM. A partir de ahí, el atacante podría instalar programas; ver, cambiar o eliminar datos; o crear cuentas con permisos totales sobre el dominio.
Microsoft ha completado la investigación y ha publicado actualizaciones de seguridad para abordar esta vulnerabilidad. A continuación las detallaremos y explicaremos cómo aplicarlas.
TL;DR
Instalar actualizaciones para PrintNightmare
Tenemos varios métodos para instalar estas actualizaciones:
- Instalación manual de las actualizaciones para PrintNightmare.
- Instalación desde WSUS / SCCM / Configuration Manager de las actualizaciones para PrintNightmare.
Actualizaciones de Windows para PrintNightmare
Actualización: El martes 13 de julio del 2021 fueron publicados los parches mensuales que sustituyen a los out-of-band. La lista de este artículo incluye ya los nuevos KBs.
Las actualizaciones de seguridad publicadas el 6 de julio de 2021 contienen protecciones para CVE-2021-1675 y el exploit sobre Windows Print Spooler conocido como «PrintNightmare», documentado en CVE-2021-34527. Las actualizaciones son las siguientes:
- Windows 10, versión 21H1(KB5004237)
- Windows 10, versión 20H2 (KB5004237)
- Windows 10, versión 2004 (KB5004237)
- Windows 10, versión 1909 (KB5004245)
- Windows 10, versión 1809 (KB5004244)
- Windows 10, versión 1607 (KB5004238)
- Windows 10, versión 1507 (KB5004249)
- Windows 8.1 (Monthly Rollup / Security Only)
- Windows 7 (Monthly Rollup / Security Only)
- Windows Server 2019 (KB5004244)
- Windows Server 2016 (KB5004238)
- Windows Server 2012 R2 (Monthly Rollup / Security Only)
- Windows Server 2012 (Monthly Rollup / Security Only)
- Windows Server 2008 R2 (Monthly Rollup / Security Only)
- Windows Server 2008 (Monthly Rollup / Security Only)
Las actualizaciones para Windows 10 versión 1607, Windows Server 2016 y Windows Server 2012 fueron publicadas el 8 de Julio del 2021. Windows Server 2000 y Windows Server 2003 no tienen soporte.
Point and Print PrintNightmare – Claves registro necesarias tras actualizar
Además de instalar las actualizaciones, para proteger el sistema de PrintNightmare, Microsoft recomienda configurar las siguientes claves de registro en valor 0 (cero) o que no estén definidas. Estas claves de registro no existen de forma predeterminada, por lo que sólo pueden existir si las hemos configurado previamente:
- HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers\PointAndPrint
- NoWarningNoElevationOnInstall = 0 (DWORD) o no definido (default setting)
- UpdatePromptSettings = 0 (DWORD) o no definido (default setting)
Con estas claves de registro de Point And Print, el atacante necesitará identificarse como administrador al intentar instalar un driver de impresión. Añadiendo una capa extra de seguridad. Podemos configurarlo mediante una GPO, como en el siguiente ejemplo:
Workarounds para PrintNightmare
En caso de no poder distribuir las actualizaciones previamente comentadas, podemos seguir diversos Workarounds propuestos por Microsoft para PrintNightmare:
Determinar si el servicio Print Spooler está en ejecución:
Ejecutar el siguiente comando:
1 | Get-Service -Name Spooler |
Si Print Spooler está en ejecución o el servicio no está marcado como Deshabilitado, ejecute una de las siguientes opciones para deshabilitar el servicio Print Spooler, o para deshabilitar la impresión remota a través de Directivas de Grupo:
Opción 1 – Deshabilite el servicio Print Spooler
Si es viable deshabilitar el servicio Print Spooler en su entorno, use los siguientes comandos de PowerShell:
1 2 | Stop-Service -Name Spooler -Force Set-Service -Name Spooler -StartupType Disable |
Consecuencias de la solución: Al deshabilitar el servicio de cola de impresión, se deshabilita la capacidad de imprimir de forma local y remota.
Opción 2: deshabilitar la impresión remota entrante a través de la directiva de grupo
También puede configurar el servicio Print Spooler a través de la directiva de grupo:
Computer Configuration / Administrative Templates / Printers
Deshabilite la opción “Allow Print Spooler to accept client connections:” para bloquear ataques remotos.
Debemos reiniciar el servicio de Print Spooler para que las políticas surjan efecto.
Consecuencias de la solución: Esta directiva bloqueará la vía de ataque remota impidiendo las operaciones de impresión remota entrantes. El equipo ya no podrá funcionar como un servidor de impresión, pero la impresión local en un dispositivo conectado directamente seguirá siendo posible.
Preguntas Frecuentes sobre PrintNightmare
No. Esta vulnerabilidad es nueva a fecha de Julio 2021 y requiere de nuevos parches de seguridad.
Sí. Todas las versiones de Windows, ya sean de escritorio o servidor, están afectadas.
Los Controladores de Dominio están afectados por PrintNightmare si tienen el servicio Print Spooler activado.
Sí. Todas las versiones de Windows están afectadas.
No. Microsoft no ha informado que Universal Print esté afectado por PrintNightmare.
Aunque estemos utilizando herramientas de impresión de terceros, es muy posible que aún así se basen en el servicio nativo de Windows. Por lo que seguiría siendo vulnerable ante PrintNightmare. Esto aplica a servicios como ThinPrint y Tricerat entre otros.