POC详情: f135ddaafa3e19761e354d013e2162cef49c134b

来源
关联漏洞
标题: Microsoft Outlook 安全漏洞 (CVE-2024-21413)
描述:Microsoft Outlook是美国微软(Microsoft)公司的一套电子邮件应用程序。 Microsoft Outlook 存在安全漏洞。以下产品和版本受到影响:Microsoft Office 2019 for 32-bit editions,Microsoft Office 2019 for 64-bit editions,Microsoft 365 Apps for Enterprise for 32-bit Systems,Microsoft 365 Apps for Enterprise
介绍
# Explotación de CVE-2024-21413 (Outlook)

Estado del proyecto: En pausa (práctica incompleta; no se logró capturar hashes NTLM)

## Objetivos

Intentar explotar la vulnerabilidad CVE-2024-21413, que permite la fuga de hashes NTLM en Outlook al interactuar con enlaces maliciosos.

El objetivo de la práctica no era construir desde cero todas las herramientas utilizadas en el ataque, sino comprender a fondo su funcionamiento central y experimentar con los errores reales al montar una infraestructura propia.

He utilizado códigos de exploits y servidores SMTP/POP3 desarrollados por terceros, publicados por la comunidad, a la cual agradezco profundamente.


## Contenido

- Requisitos
- Máquinas virtuales
- Instalación
- Flujo de la explotación
- Pruebas y resultados
- Lecciones aprendidas


## Requisitos

- Python 3.10+
- Outlook 2016
- Kali linux
- Servidores propios SMTP/POP3
- Exploit
- Maquinas virtuales

## Máquinas virtuales

### Máquina víctima (Windows)

- **SO**: Windows 10 Home (x32)
- **Outlook**: Microsoft Outlook 2016 (versión 16.0.4266.1001)
- **Red**: Adaptador 1: NAT, Adaptador 2: Red interna

### Máquina atacante (Kali)

- **SO**: Kali Linux 2025.1
- **Herramientas y bibliotecas instaladas**: 
  - Python 3.10+
  - smtplib
  - email
  - socket
  - threading 
  - os
  - aiosmtpd
  - servidor-smtp.py
  - servidor-pop3.py
  - exploit.py
- **Red**: Adaptador 1: NAT, Adaptador 2: Red interna

### Infraestructura

- Se montaron los servidores SMTP y POP3 en la máquina atacante (Kali) manualmente usando scripts en Python.


Las máquinas fueron ejecutadas en VirtualBox.


## Instalación

### Instalación (Kali)

#### Instalación servidor SMTP
- **Venv**: Entorno virtual con Python 3
  - **Paso 1**: Crear un directorio para el servidor y el entorno virtual (mkdir smtp-lab) y accede a él (cd smtp-lab)
  - **Paso 2**: Crea un entorno virtual dentro del directorio (python3 -m venv venv)
  - **Paso 3**: Activa el entorno virtual (source venv/bin/activate)
  - **Paso 4**: Instalar aiosmtpd dentro del entorno virtual (pip install aiosmtpd)
  - **Paso 5**: Crear el codigo del servidor (nano servidor-smtp.py)
  - **Paso 6**: Ejecutar el servidor (python3 servidor-smtp.py)

##### Código del servidor SMTP
El código del servidor SMTP se encuentra en el archivo [`src/servidor-smtp.py`](./src/servidor-smtp.py).

#### Instalación servidor POP3:
- **Paso 1**: Crear un directorio para el servidor (mkdir pop3-server) y acceder a él (cd pop3-server)
- **Paso 2**: Crear el código del servidor (nano server-pop3.py) 
- **Paso 3**: Ejecutar el servidor (python3 server-pop3.py)

##### Código del servidor POP3
El código del servidor POP3 se encuentra en el archivo [`src/servidor-pop3.py`](./src/servidor-pop3.py).

#### Instalación exploit
- **Paso 1**: Crear el código, este código lo he extraído de [CMNatic](https://github.com/CMNatic), pero ha sido adaptado para mi infraestructura (nano exploit.py)

##### Código del exploit
El código del exploit se encuentra en el archivo [`src/exploit.py`](./src/exploit.py).

### Instalación (Windows 10)
- **Paso 1**: Instalar ISO Microsoft Office 2016, yo use la página archive.org e instale la versión de Microsoft Office 2016 Professional Plus x86
- **Paso 2**: Una vez instalada la ISO descargar Microsoft office y acceder a Outlook 2016
- **Paso 3**: Configurar correctamente Outlook

#### Configuración de Outlook 2016
Aquí se muestra cómo configurar Outlook para que funcione con el servidor SMTP y POP3 de prueba.
- Tanto en el punto de "Incoming mail server" como "Outgoing mail server(SMTP)" se debe de poner la ip de la interfaz de red interna de la máquina atacante (Kali).
- La contraseña es irrelevante para el ataque, se puede elegir cualquiera.

![Captura de pantalla de la configuración](./capturas/configuracion-outlook.png)

## Flujo de explotación
El objetivo del exploit para CVE-2024-21413 es lograr que Outlook haga una solicitud automática de tipo SMB a un recurso controlado por el atacante, lo que resulta en el envío del hash NTLM de la víctima, que puede ser capturado offline para crackeo.

### Preparación del entorno
1. La máquina atacante (Kali) lanza un servidor SMTP y POP3 personalizado.
2. Outlook en la máquina víctima (Windows 10) está configurado para recibir correos desde ese servidor.
3. La máquina atacante (Kali) levanta un servidor SMB falso (En mi caso utilicé responder)

### Envío del correo malicioso
- Se envía un correo a la víctima desde el SMTP del atacante.
- El cuerpo del mensaje contiene un enlace UNC malicioso.
- La ruta está diseñada para activar una conexión SMB automática si el usuario interactúa con el enlace.

### Interacción del usuario
- La víctima abre Outlook y ve el mensaje.
- Se espera que haga clic en el enlace.
- Si Outlook intenta resolver la ruta UNC, se genera una petición SMB al servidor del atacante.
- A continuación, se muestra cómo se vería el correo malicioso en Outlook desde la perspectiva de la víctima:

![Correo malicioso en Outlook](./capturas/correo-victima.png)


### Captura del hash
- El servidor SMB del atacante recibe la conexión.
- Outlook, al intentar autenticar, envía automáticamente el hash NTLM del usuario.
- El atacante puede guardar ese hash para un ataque tipo hashcat.

### Notas
- En mi caso, el correo llegaba correctamente a Outlook.
- Sin embargo, al hacer clic en el enlace UNC, no se generaba la conexión SMB esperada.
- Aún desconozco la causa del fallo, aunque sospecho que puede estar relacionado con la configuración de red, la versión de Outlook o un problema de accesibilidad o respuesta del servidor SMB.


## Pruebas y resultados

### Funcionalidades que sí funcionaron
- SMTP y POP3 configurados correctamente, Outlook sincronizó con ellos sin errores.
- El correo malicioso fue recibido por Outlook.
- El mensaje mostraba el enlace UNC sin ser bloqueado.
- El entorno SMB del atacante estaba levantado y en escucha.

### Lo que no funcionó
- Al hacer clic en el enlace UNC desde Outlook, no se produjo tráfico SMB visible en Wireshark.
- No se generó ningún intento de autenticación NTLM desde la máquina víctima
- No se registraron conexiones en el servidor SMB.

### Análisis con Wireshark
- Capturas tomadas en la interfaz de Kali (eth1).
- Se observó el tráfico SMTP y POP3, pero ningún paquete TCP 445 ni UDP 137/138 al hacer clic en el enlace.
- También se intentó con Outlook ejecutado como administrador: sin cambios.


## Lecciones aprendidas
### Conocimientos adquiridos
- Cómo funcionan SMTP y POP3 desde nivel bajo.
- Qué espera exactamente Outlook al sincronizar cuentas.
- Cómo Outlook interpreta enlaces UNC y qué condiciones deben cumplirse para que los abra automáticamente.
- El valor de Wireshark y logs como herramientas de depuración en laboratorios complejos.

### Por qué decidí cerrarlo aquí
- Tras múltiples intentos, el exploit no llegó a la etapa de captura de hash, que era el objetivo final.
- Documenté toda la infraestructura, pruebas y resultados, lo cual sigue siendo valioso como laboratorio educativo.
- Aunque no se logró el objetivo final, el proceso me permitió adquirir un conocimiento profundo de cada componente técnico involucrado. Se puede retomar en el futuro.

## Créditos
El código de este exploit está basado en el trabajo de CMNatic de [https://github.com/CMNatic/CVE-2024-21413](https://github.com/CMNatic/CVE-2024-21413). He realizado modificaciones para adaptarlo a mi entorno.
文件快照

[4.0K] /data/pocs/f135ddaafa3e19761e354d013e2162cef49c134b ├── [4.0K] capturas │   ├── [ 26K] configuracion-outlook.png │   └── [ 60K] correo-victima.png ├── [7.4K] README.md └── [4.0K] src ├── [ 846] exploit.py ├── [1.8K] server-pop3.py └── [ 577] servidor-smtp.py 2 directories, 6 files
神龙机器人已为您缓存
备注
    1. 建议优先通过来源进行访问。
    2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
    3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。