“Llueve sobre mojado”, Posiblemente, así es como Microsoft debe estar viendo las cosas en este momento, tras el anuncio oficial de otra vulnerabilidad sin parchear en la cola de impresión de Windows.
Llamado CVE-2021-34481, este no es tan malo como los problemas anteriores de PrintNightmare, ya que es un error de elevación de privilegios (EoP), no una vulnerabilidad de ejecución de código remoto (RCE).
Como recordarás de la última vez, una EoP significa que alguien que ya ha iniciado sesión en tu ordenador como un usuario regular y sin privilegios puede elevarse de manera silenciosa e ilegal al nivel de Administrador o SISTEMA.
Si has iniciado sesión, digamos, como Usuario, pueden hacerte mucho daño borrando tus archivos, jugando con tus aplicaciones, descargando archivos inapropiados, etc.
Pero si puedes acceder a la cuenta del SISTEMA, te encontrarás en una situación similar a la del propio Windows y pueden causar muchos más estragos.
Pueden detener, iniciar e incluso instalar nuevos servicios del sistema, configurar el firewall, alterar archivos en la carpeta de Windows, cambiar la configuración de seguridad en el momento del arranque y, en general, hacer todas las cosas que TI ha pasado años tratando de asegurarse de que no puedas, ya sea deliberadamente o por error.
Eso no es tan malo como un RCE, lo que significa que alguien que no haya iniciado sesión en tu ordenador puede obtener acceso no autorizado, lo que le da una cabeza de turco para más ciberdelitos.
Pero una EoP por sí sola es bastante mala, sobre todo porque un exploit de RCE que solo consigue que un ciberdelincuente ingrese, tal vez sin más poderes que un usuario invitado, a menudo se puede combinar con una EoP para lograr lo que un delincuente consideraría un “compromiso completo”.
La historia hasta ahora
Resumamos rápidamente la historia de PrintNightmare hasta ahora:
- Microsoft corrigió un error de EoP en la cola de impresión. Este parche fue parte de la actualización de seguridad de junio de 2021. El error que solucionó se denominó CVE-2021-1675.
- El error era más grave de lo que se pensaba y se actualizó al estado RCE y EoP más tarde durante el mismo mes. Sin embargo, el parche original protegía contra ambos aspectos del error.
- Unos investigadores descubrieron un error de RCE y EoP en la cola de impresión y decidieron revelarlo públicamente. Asumieron ingenuamente que era el mismo que ya estaba parcheado, por lo que liberarlo no revelaría un nuevo tipo de ataque.
- Estaban equivocados. Su error era nuevo y el parche existente no protegía contra él.
- Rápidamente se apresuraron a eliminar su código de explotación de prueba de concepto. Esperaban que esto suprimiera la filtración y evitara que el nuevo error se convierta en un día cero (un agujero de seguridad que se puede explotar activamente pero que aún no se ha reparado).
- Demasiado tarde. El código de explotación ya había sido copiado ampliamente y anunciado abiertamente como un día cero que eludía el parche de junio de 2021. El nuevo error se denominó CVE-2021-34527.
- Recomendamos apagar la cola de impresión por completo. Esto no es muy conveniente porque detiene el funcionamiento de la impresora, pero es la única forma segura que conocemos de evitar que se active cualquiera de estos errores, con parches o sin ellos.
- Microsoft preparó un parche de emergencia. Esto mitigó el nuevo agujero día cero.
- Los investigadores descubrieron rápidamente que el nuevo parche no solucionaba la parte EoP del error. Sin embargo, quedaba la esperanza de que se bloqueara la parte RCE más grave del error.
- No lo fue. Para protegerse adecuadamente, resultó que se necesitaría aplicar varias mitigaciones adicionales y modificaciones del registro por otros medios, e incluso entonces, nadie estaba seguro de si funcionarían completamente.
- Recomendamos aplicar el parche de todos modos. Evita varias formas conocidas de explotar el error.
- Recomendamos NO volver a encender la cola de la impresora, si era posible. Una vez más, esto detiene el funcionamiento de la impresora, pero elimina por completo la cola de impresión de la superficie del ataque.
- Se encontró otra EoP en la cola de la impresora. Este es un error nuevo, no cubierto por ningún parche o advertencia anterior. Este es el error mencionado en la parte superior de este artículo, a saber, CVE-2021-34481.
- Microsoft emitió oficialmente una solución temporal. “La solución para esta vulnerabilidad es detener y deshabilitar el servicio de cola de impresión”.
¿Qué hacer?
Lo que dijo Microsoft. Apaga la cola de impresión y desactiva el servicio para que no pueda iniciarse de nuevo, ya sea por accidente o por diseño.
Si tienes desactivado la cola de impresión en tu red, entonces estás por delante en el juego, pero también puedes comprobarlo de nuevo, en caso de que alguien, en algún lugar, haya vuelto a activar la suya.
CÓMO CONTROLAR Y CONFIGURAR LA COLA DE IMPRESIÓN
A continuación, incluimos un resumen rápido de los consejos y trucos para controlar la cola de impresión que puedes encontrar en nuestros anteriores artículos:
===From a Command Prompt (CMD.EXE): > sc query Spooler <-- check Print Spooler Status > sc config Spooler start= disabled <-- prevent Spooler starting, even after reboot > sc stop Spooler <-- stop Spooler if it is running > sc config Spooler start= demand <-- don't start on reboot but allow manual on/off > sc start Spooler <-- start it on demand, if not disabled Note that reconfiguring Windows services can only be done from Administrator level, so you need to choose Run as Administrator when starting CMD.EXE ===From a PowerShell prompt or script: > Get-Service Spooler <-- check Spooler status > Set-Service -Name Spooler -StartupType Disabled <-- prevent Spooler starting, even after reboot > Set-Service -Name Spooler -StartupType Manual <-- same as "start= demand" above
Si eres cliente de Sophos, puedes utilizar la función Sophos Live Discover para comprobar el estado del la cola de impresión en tu red con una consulta sencilla como esta:
SELECT name, display_name, start_type, path, status, user_account, CASE WHEN status = 'RUNNING' THEN 'Stop service to end exposure to unpatched vulnerabilities inc. PrintNightmare' END AS SpoolerCheck, CASE WHEN start_type != 'Disabled' THEN 'Set Spooler service to DISABLED to prevent it from starting' END AS ServiceCheck FROM services WHERE name = 'Spooler' AND (status = 'RUNNING' OR start_type != 'DISABLED')