Cómo mitigar los ataques Zerologon en Active Directory
El 11 de agosto de 2020, Microsoft lanzó una actualización de seguridad que solucionó una vulnerabilidad crítica en Active Directory. Debido a su gravedad, se le ha asignado una puntuación CVSS de 10,0, lo que la convierte en una de las vulnerabilidades de AD más críticas de todos los tiempos. Lo que hace que esta vulnerabilidad sea particularmente grave es que el único requisito para una explotación exitosa es la capacidad de establecer una conexión con un controlador de dominio.
¿Qué es la vulnerabilidad Zerologon?
Zerologon, también conocido como CVE-2020-1472, es una vulnerabilidad crítica en el protocolo remoto Netlogon de Microsoft (MS-NRPC). MS-NRPC juega un papel vital en la autenticación dentro de Active Directory. Esta falla permite a un atacante eludir la autenticación y obtener privilegios de nivel de administrador. Al utilizar el protocolo remoto Netlogon, los atacantes pueden conectarse a un controlador de dominio (DC) y modificar su contraseña sin requerir ninguna autenticación, solo acceso a la red.
Hay exploits de prueba de concepto (POC) conocidos que están actualmente activos, lo que indica que es muy probable que se produzcan ataques en el mundo real en un futuro próximo. Como resultado, la Agencia de Seguridad de Infraestructura y Ciberseguridad (CISA) ha emitido una directiva de emergencia que instruye a las agencias gubernamentales y organizaciones no gubernamentales a parchear o desactivar los servidores Windows afectados.
¿Cómo funcionan los ataques Zerologon?
La vulnerabilidad Zerologon se debe a la mala ejecución de la llamada ComputeNetlogonCredential. Esta función toma un desafío de 8 bytes como entrada y aplica una transformación criptográfica utilizando una clave de sesión. El resultado es una salida de 8 bytes. Sin embargo, existe un fallo en la implementación del método AES-CFB8, que es el único permitido en las versiones más recientes de Windows. Para utilizar AES-CFB8 de forma segura, se requiere un vector de inicialización aleatorio (IV). Desafortunadamente, ComputeNetlogonCredential establece el IV en un valor fijo de 16 cero bytes. Esta falla resulta en una debilidad criptográfica donde el cifrado de ceros puede producir texto cifrado con ceros. La probabilidad de que esto ocurra es de 1 entre 256. Además, las sesiones de Netlogon no cifradas no se rechazan automáticamente. Cuando se combinan, estos fallos permiten a un atacante comprometer el proceso de autenticación y hacerse pasar por un servidor de su elección.
A continuación se muestra un resumen de los pasos tomados durante un ataque Zerologon:
- Paso 1: Establezca un canal Netlogon inseguro con un controlador de dominio falsificando su identidad y realizando un ataque de fuerza bruta con un desafío de 8 bytes cero y texto cifrado. Esto requiere un promedio de 256 intentos.
- Paso 2: utilice la llamada NetrServerPasswordSet2 para cambiar la contraseña de la cuenta del controlador de dominio en Active Directory por una vacía. Esto interrumpe algunas funciones del controlador de dominio.
- Paso 3: utilice la contraseña vacía para conectarse al controlador de dominio y extraer hashes adicionales mediante el protocolo DRS.
- Paso 4: revierta la contraseña del controlador de dominio a la original almacenada en el registro local para evitar la detección.
- Paso 5: utilice los hashes extraídos del paso 3 para lanzar varios ataques como Golden Ticket o pasar el hash, utilizando las credenciales de administrador de dominio.
Cómo Microsoft abordó la vulnerabilidad del ataque Zerologon
Microsoft ha implementado dos soluciones para abordar este ataque específico. La primera solución rechaza las solicitudes que tienen los mismos bytes iniciales, pero esta medida aún permite ataques de fuerza bruta más largos. La segunda solución rechaza los canales que no están firmados ni sellados para todas las cuentas de computadoras con Windows, lo que mitiga efectivamente el ataque. Aunque los clientes Windows Netlogon normalmente sellan los mensajes, Microsoft optó por permitir sesiones sin firmar para cuentas de computadoras que no sean Windows, lo que en teoría las deja vulnerables. Sin embargo, Microsoft lanzó un parche en febrero de 2021 para solucionar este problema y rechazar sesiones inseguras desde dispositivos que no sean Windows.
Cómo mitigar los ataques de Zerologon
El parche August Netlogon proporciona un uso seguro de RPC para cuentas de máquina, cuentas de confianza y todos los controladores de dominio de Windows y no Windows. Incluye una nueva política de grupo que permite cuentas de dispositivos que utilizan conexiones de canales seguros de Netlogon vulnerables. El parche también introduce una clave de registro FullSecureChannelProtection que habilita el modo de aplicación de DC para todas las cuentas de máquina y registra eventos para cuentas denegadas o potencialmente denegadas. Además, los parches realizan cambios en el protocolo Netlogon para proteger dispositivos Windows, registrar eventos para dispositivos que no cumplen y ofrecen la opción de habilitar la protección para todos los dispositivos unidos a un dominio con excepciones.
Microsoft recomienda tomar medidas adicionales, especialmente cuando se trabaja con plataformas que no son de Microsoft. No basta con instalar las actualizaciones de seguridad del 11 de agosto en los controladores de dominio. Si bien el parche protege los dispositivos Windows dentro de una red, los dispositivos que no son de Microsoft aún pueden exponer el dominio a ataques. Para abordar esto, Microsoft comenzó a imponer el uso seguro de RPC para cuentas en dispositivos que no son Windows a partir de febrero de 2021. La fase dos de la aplicación comenzó el 9 de febrero de 2021, y todos los controladores de dominio de Windows ahora habilitan el modo de aplicación, negando conexiones vulnerables desde dispositivos que no sean Windows. dispositivos compatibles a menos que se agreguen a la política de grupo adecuada.
Análisis del registro de eventos: después de aplicar las actualizaciones de agosto (o posteriores), es importante verificar los registros de eventos en el controlador de dominio. Busque los siguientes ID de eventos en el registro de eventos del sistema:
- Los ID de evento 5827 y 5828 indican conexiones denegadas.
- Los ID de evento 5830 y 5831 indican conexiones permitidas según la política de grupo "Controlador de dominio: permitir conexiones de canal seguro de Netlogon vulnerables".
- El ID de evento 5829 significa que se permite una conexión de canal seguro de Netlogon vulnerable.
Aborde estos eventos antes de configurar el modo de cumplimiento de DC o comenzar la fase de cumplimiento (9 de febrero de 2021). Para analizar el impacto, exporte los registros de eventos en formato .evtx mediante un script.
Comprobación de problemas de conexión o dispositivos inseguros: después de actualizar sus controladores de dominio, asegúrese de verificar los registros de eventos para detectar eventos de Netlogon que indiquen problemas de conexión o dispositivos inseguros. Esto le ayudará a prepararse para la fase de aplicación de la actualización. Para mantenerse a la vanguardia, es recomendable probar y evaluar el impacto del próximo cambio de protocolo Netlogon realizando las modificaciones necesarias en la política de grupo de su controlador de dominio de inmediato. En febrero de 2021, se habilitará y se aplicará estrictamente el cifrado y la firma de datos de canales seguros (siempre), una configuración que actualmente está inactiva.
Cambios recomendados en la política de grupo de los controladores de dominio: antes de aplicar el parche Netlogon de febrero, se recomienda probar y realizar los cambios necesarios en la política de grupo de su controlador de dominio ahora. Esto se debe a que en febrero de 2021, se habilitará y aplicará la configuración relativa al cifrado y la firma de datos de canales seguros. Actualmente, esta configuración no está habilitada.
Habilitación de la clave de registro FullSecureChannelProtection: alternativamente, puede habilitar la clave de registro FullSecureChannelProtection para aplicar el modo de aplicación de DC para todas las cuentas de máquina. Establecer el valor en "1" habilita el modo de cumplimiento, mientras que establecerlo en "0" permite conexiones de canales seguros de Netlogon vulnerables desde dispositivos que no sean Windows. Sin embargo, esta opción quedará obsoleta en la versión de la fase de aplicación.
Agregar excepciones para sistemas que no cumplen con las normas: la actualización de agosto agrega una política de grupo a los controladores de dominio parcheados, lo que permite excepciones para sistemas que no cumplen con las normas en la comunicación RPC segura. Si estos sistemas no se comunican después de la aplicación de la ley en febrero, puede incluir estas transmisiones en la lista blanca y decidir si acepta el riesgo o trabaja con sus proveedores para solucionar el problema y actualizar.
Instalación de las actualizaciones de agosto en controladores de dominio: para agregar excepciones, use la nueva política de grupo "Controlador de dominio: permitir conexiones de canal seguro de Netlogon vulnerables" y agréguelas a la unidad organizativa del controlador de dominio. La política debe incluir los descriptores de seguridad de las cuentas que necesitan exclusiones. Es importante instalar las actualizaciones de agosto en sus controladores de dominio de inmediato y verificar si hay sistemas heredados en sus registros de eventos que puedan causar problemas en febrero. Comience a investigar ahora para evitar ser sorprendido por el impacto de la aplicación obligatoria en febrero.
