Consulta técnica sobre FortiEDR
Zerologon (CVE-2020-1472) continúa atrayendo la atención incluso un año después de su divulgación inicial en septiembre de 2020. Zerologon es actualmente una de las vulnerabilidades de Windows posteriores a la explotación más explotadas, y ha sido adoptada por varios grupos de ransomware y actores avanzados de amenazas persistentes. con diferentes objetivos y capacidades. El equipo de Detección y Respuesta Administrada (MDR) de FortiGuard Responder ha observado un aumento reciente en las detecciones de Zerologon dentro de las plataformas protegidas de FortiEDR. Este artículo desglosará los elementos clave de la vulnerabilidad Zerologon, cómo los actores de amenazas la explotan y cómo FortiEDR la detecta y protege contra ella.
Qué es Zerologon:
CVE-2020-1472, también conocido como «Zerologon», es una vulnerabilidad crítica de elevación de privilegios en el protocolo remoto Netlogon de Microsoft (MS-NRPC). Netlogon es un servicio de autoridad de seguridad local que se encarga de autenticar a los usuarios en el dominio que, cuando se aprovecha, permite que un hacker se haga pasar por cualquier computadora, incluido el controlador de dominio raíz.
Vulnerabilidad de inicio de sesión de red:
Durante la autenticación de Netlogon, el cliente y el servidor eligen un desafío aleatorio de 8 bytes e intercambian públicamente los valores. Este desafío aleatorio, junto con la contraseña del dominio, se usa para generar una clave de sesión AES compartida. Después de establecer la clave de sesión compartida, el cliente demuestra que ha generado el mismo valor cifrando el desafío de ocho bytes creado al comienzo del proceso utilizando la nueva clave de sesión AES y enviando el resultado al servidor.
Netlogon utiliza una variante personalizada de AES-CFB8 (retroalimentación de cifrado de 8 bits) que cifra un byte a la vez en lugar de la versión estándar, que cifra 16 bytes a la vez. La vulnerabilidad Zerologon está provocada por una implementación insegura de la variante de cifrado personalizada AES-CFB8 que forma la base del protocolo Netlogon que permite un ataque de tipo «fuerza bruta». El vector de inicialización (IV), un valor único utilizado en el cifrado AES-CFB8, siempre debe ser único y aleatorio pero codificado en un valor de 16 bytes cero. Este IV de 16 bytes se cifra con la clave AES generada previamente y luego se aplica XOR con el texto sin formato para crear texto cifrado. En esta implementación, si el primer byte de la salida de cifrado AES es 0, luego XOR con el texto sin formato, que es todo ceros, produce un texto cifrado con todos ceros. La probabilidad de que el primer byte de la salida de cifrado AES sea cero es 1/256. Este problema en la implementación de Netlogon es que permite que un atacante no autenticado se autentique sin la clave de sesión (que requiere el conocimiento de la contraseña del dominio) creando un desafío de ceros de 8 bytes y autenticando repetidamente hasta que crea un texto cifrado de todos los ceros.
En el siguiente POC de explotación, la solicitud de autenticación inicial con un desafío de texto sin formato de todos cero se comparte con el servidor de autenticación de Netlogon mediante la llamada NetrServerReqChallenge. Luego, el atacante intenta repetidamente autenticarse con un texto cifrado de cero utilizando la llamada NetrServerAuthenticate3.
Figura 1 . Explotar el código POC que intenta autenticarse con texto cifrado todo cero.
Dado que un texto cifrado todo cero se descifrará a un texto sin formato todo cero usando la clave de sesión AES compartida, un atacante puede usar la misma lógica para restablecer la contraseña usando la llamada NetrServerPasswordSet2. Una nueva contraseña de texto claro para el cliente se cifra con la misma clave de sesión AES. Esta contraseña consta de 516 bytes, y los últimos cuatro indican la longitud de la contraseña. Al proporcionar 516 ceros, el servidor lo descifra a 516 ceros, lo que genera una contraseña vacía.
Figura 2. Código POC de explotación que restablece la contraseña del dominio a una contraseña vacía.
Cambiar la contraseña de esta manera solo la actualiza en el AD. Por lo tanto, esta vulnerabilidad permite que un atacante en la red local se mueva lateralmente y se haga pasar por cualquier computadora, incluido el controlador de dominio raíz.
Cómo FortiEDR mitiga esta amenaza
Un atacante que ha ganado un punto de apoyo inicial en la red de la víctima, intentando explotar la vulnerabilidad de Zerologon en el siguiente evento. La IP de origen 10.0.2.3 que difiere del controlador de dominio es una bandera roja. La protección en tiempo real de FortiEDR detecta y bloquea el intento de elevar los privilegios del usuario al administrador del dominio.
Figura 3. Vista de la consola de FortiEDR que muestra el evento ‘Exploit de escalada de privilegios detectado’ relacionado con el exploit Zerologon.
La política de prevención de exfiltración de FortiEDR detectó el ‘Exploit de escalada de privilegios’. Los atacantes suelen utilizar dichos exploits para obtener el control total de un controlador de dominio como parte de una cadena de exploits o movimiento lateral. Esto, a su vez, puede resultar en el robo de credenciales.
Explotación de Zerologon
Desde su descubrimiento el año pasado, la vulnerabilidad Zerologon (CVE-2020-1472) ha recibido mucha atención. La siguiente es una lista de campañas que aprovecharon la vulnerabilidad de Zerologon.
Figura 4 . Zerologon ha sido explotado por actores de amenazas en varias campañas durante el último año.
En la plataforma FortiEDR, la detección de Zerologon se ha incrementado en los últimos meses. El siguiente gráfico muestra la tendencia de los eventos de Zerologon durante el último año.
Figura 5 . Gráfico de tendencia para la detección de Zerologon dentro de la plataforma FortiEDR.
Mitigación:
Recomendamos enfáticamente que los clientes instalen las actualizaciones de febrero para estar completamente protegidos contra la vulnerabilidad de inicio de sesión cero. Esta actualización habilitará el modo de cumplimiento en todos los controladores de dominio de Windows admitidos y bloqueará las conexiones vulnerables de los dispositivos que no cumplan con los requisitos, a menos que se agreguen manualmente a un grupo de seguridad al que se hace referencia en la directiva de grupo » Controlador de dominio: Permitir conexiones de canales seguros Netlogon vulnerables «.
COP:
https://github.com/dirkjanm/CVE-2020-1472/blob/master/cve-2020-1472-exploit.py
https://github.com/SecuraBV/CVE-2020-1472/blob/master/zerologon_tester.py
¡Déjanos cualquier duda sobre FortiEDR aquí abajo!
¿Te ha resultado útil??
0 / 0
Hola, somos Mila Jiménez y César Sánchez. Dos apasionados de la ciberseguridad con muchos años de experiencia. Hemos trabajado en muchas empresas del mundo TI y ahora nos apetece compartir nuestro conocimiento con cualquiera que lo necesite.
¡Si te gusta nuestro contenido puedes invitarnos a un café AQUÍ!