13 may 2024

Moniker Link (CVE-2024-21413)



El 13 de febrero de 2024, Microsoft notificó sobre una vulnerabilidad en su aplicación Outlook. A esta vulnerabilidad se la identifico con el CVE-2024-21413, cuya criticidad se catalogó con un 9.8 (crítica). Las versiones afectadas son:

EdiciónVersión
Microsoft Office LTSC 2021Afectado desde la versión 19.0.0
Microsoft 365 Apps for EnterpriseAfectado desde la versión 16.0.1
Microsoft Office 2019Afectado desde la versión 16.0.1

Esta vulnerabilidad es posible evitando la opción vista protegida (Protected View) de Outlook, una característica que nos limita el acceso de lectura, evitando así que se ejecuten scripts maliciosos como macros en el sistema.

La vulnerabilidad evita los mecanismos de seguridad de Outlook usando un tipo específico de hyperlink llamado Moniker Link, lo que da el nombre a la vulnerabilidad. El atacante puede explotar esta vulnerabilidad enviando un email que contenga el Moniker Link a una víctima. Cuando la víctima hace click en el enlace, envía las credenciales NetNTLMv2 al atacante.  

Dentro de un entorno controlado fue posible replicar la vulnerabilidad paso a paso. El primer paso para comprender la vulnerabilidad es saber que mediante el uso del Moniker Link: file:// en Outlook se puede hacer que la víctima intente acceder a un archivo en una red compartida. Para ello se usa el protocolo SMB el cual necesita las credenciales del usuario, por lo que la Protected View de Outlook bloquea el link. Sin embargo, mediante el uso de carácter “!” se puede evitar esta medida de seguridad de Outlook. El código resultante para poder explotar la vulnerabilidad sería:


Una vez comprendido esto, lo siguiente a realizar es levantar un SMB listener en la máquina del atacante.


Aunado a esto, creamos un archivo, donde vamos a introducir el código del exploit, el cual se puede encontrar fácilmente en github (https://github.com/CMNatic/CVE-2024-21413).


Modificaciones por realizar:
  • Modificar el Moniker link en la línea 12 para reflejar la IP de la máquina del atacante
  • Cambiar el MAILSERVER de la línea 31 por la IP de la máquina

Una vez se han realizado todos los cambios, se guarda el script y se ejecuta. Cuando el usuario inconsciente hace clic en el hipervínculo, intenta conectarse a un recurso compartido de red inexistente. Como tal, podemos capturar el hash NetNTLMv2 debido que al hacer click se intenta una conexión.



Con esto ya se habría completado la explotación de la vulnerabilidad de Moniker Link exitosamente. 
Para evitar este tipo de ataques, se recomienda:
  • No hacer click en emails cuyo origen no conocemos
  • Previsualizar los emails antes de hacer click en enlaces sospechosos
¡Y hasta aquí el post por hoy, gracias por el tiempo y hasta la próxima!

Jorge Ezequiel de Francisco, Analista de Ciberseguridad en Zerolynx.

6 may 2024

CVE-2023-32784 - KeePass


En el post de hoy venimos a hablar sobre KeePass, un conocido gestor de contraseñas. KeePass Password Safe es un gestor de contraseñas gratuito y de código abierto que sirve para administrar tus contraseñas de manera segura, permitiendo así tener una contraseña para cada servicio sin morir en el intento. El funcionamiento de KeePass se basa en tener una contraseña maestra, la cual debe ser muy robusta y será necesario recordarla, de manera que esta clave nos dará acceso a nuestra base de datos de contraseñas, teniendo en cuenta que podremos generarlas de manera aleatoria y no tendremos necesidad de recordarlas.

Pese a que siempre recomendamos el uso de esta herramienta u otras similares para proteger nuestras contraseñas, a mediados de 2023 surgió la vulnerabilidad CVE-2023-32784, la cual podría causar el compromiso de la contraseña maestra si se cumplen las siguientes condiciones:

  • El atacante accede a un equipo con un proceso de KeePass ejecutándose (no es necesario que la sesión de KeePass esté desbloqueada).
  • El usuario víctima ha introducido la contraseña maestra manualmente (no copiando y pegando).

Esta vulnerabilidad se debe al uso del cuadro de texto “SecureTextBoxEx” durante el acceso con la contraseña maestra, ya que esta funcionalidad también sirve para recuperar contenido de contraseñas en otras secciones de KeePass.

Para demostrar el funcionamiento de esta vulnerabilidad, se verificarán dos exploits públicos, los cuales permiten el descifrado de la contraseña maestra a excepción del primer carácter. El hecho de que el primer carácter no se almacene, se debe a cómo funciona a nivel de .net la funcionalidad de “SecureTextBoxEx”, ya que enmascara el carácter anterior y muestra el actual, por ejemplo, para la palabra password:

-a, --s, ---s, ----w, -----o, ------r, -------d.

Para este ejercicio, lo primero que haremos será crear una base de datos de pruebas, y le asignaremos la contraseña: sup3r$3cr3tP4ssw0rd!


Tras tener creada nuestra nueva base de datos y haber bloqueado la sesión para “protegerla” es necesario realizar un volcado de la memoria del proceso de KeePass. Es posible realizar volcados de memoria mediante diferentes técnicas, pero para esta prueba de concepto, es suficiente con poder utilizar el administrador de tareas sin ningún tipo de privilegio administrativo.


Una vez que tenemos el volcado de memoria del proceso de KeePass, procederemos a hacer uso de los siguientes exploits:


Como podemos apreciar, ambos exploits nos permiten descifrar la contraseña maestra sin ningún tipo de dificultad, siendo que solo será necesario adivinar el primer carácter de la contraseña.
Esto no significa para nada que debamos desconfiar de los gestores de contraseñas, simplemente como cualquier otra aplicación, son susceptibles de contener vulnerabilidades, por lo que es necesario mantenerlos siempre actualizados para contar con los últimos parches de seguridad. A continuación, ofrecemos una serie de recomendaciones a seguir en caso de haber podido ser afectado por esta vulnerabilidad:
  • Actualizar a KeePass 2.54 o superior.
  • Cambiar tu contraseña maestra de KeePass por si esta se hubiese visto comprometida.
  • Eliminar ficheros que puedan contener contraseñas de KeePass en memoria como los crash dumps (usualmente ubicados en C:\Windows\memory.dmp para windows), el archivo de hibernación (hiberfil.sys) y el archivo de paginación/intercambio (pagefile.sys).


Ignacio Sánchez, Analista de Ciberseguridad en Zerolynx.