👾Ataques a Emails
Un mail server (también denominado servidor de correo electrónico) es un servidor que maneja y entrega correo electrónico a través de una red, generalmente a través de Internet. Un servidor de correo puede recibir correos electrónicos desde un dispositivo cliente y enviarlos a otros servidores de correo. Un servidor de correo también puede entregar correos electrónicos a un dispositivo cliente. Un cliente suele ser el dispositivo donde leemos nuestros correos electrónicos (ordenadores, smartphones, etc.).
Cuando pulsamos el botón Enviar en nuestra aplicación de correo electrónico (cliente de correo electrónico), el programa establece una conexión con un servidor SMTP de la red o Internet. El nombre SMTP significa Simple Mail Transfer Protocol y es un protocolo para entregar correos electrónicos de clientes a servidores y de servidores a otros servidores.
Cuando descargamos correos electrónicos a nuestra aplicación de correo electrónico, se conectará a un servidor POP3 o IMAP4 en Internet, lo que permite al usuario guardar mensajes en el buzón de un servidor y descargarlos periódicamente.
De forma predeterminada, los clientes POP3 eliminan los mensajes descargados del servidor de correo electrónico. Este comportamiento dificulta el acceso al correo electrónico en varios dispositivos, ya que los mensajes descargados se almacenan en la computadora local. Sin embargo, normalmente podemos configurar un cliente POP3 para que guarde copias de los mensajes descargados en el servidor.
Por otro lado, de forma predeterminada, los clientes IMAP4 no eliminan los mensajes descargados del servidor de correo electrónico. Este comportamiento facilita el acceso a mensajes de correo electrónico desde múltiples dispositivos. Veamos cómo podemos apuntar a servidores de correo.

Enumeración
Los servidores de correo electrónico son complejos y normalmente requieren que enumeremos varios servidores, puertos y servicios. Además, hoy en día la mayoría de empresas tienen sus servicios de correo electrónico en la nube con servicios como Microsoft 365 o G-Suite . Por lo tanto, nuestro enfoque para atacar el servicio de correo electrónico depende del servicio que se utilice.
Podemos utilizar el registro DNS Mail eXchanger( MX) para identificar un servidor de correo. El registro MX especifica el servidor de correo responsable de aceptar mensajes de correo electrónico en nombre de un nombre de dominio. Es posible configurar varios registros MX, que normalmente apuntan a una serie de servidores de correo para equilibrio de carga y redundancia.
Podemos utilizar herramientas como host o dig y sitios web en línea como MXToolbox para consultar información sobre los registros MX:
Host - Registros MX
DIG - Registros MX
Host - Registros A
Estos registros MX indican que los primeros tres servicios de correo utilizan los servicios en la nube G-Suite (aspmx.l.google.com), Microsoft 365 (microsoft-com.mail.protection.outlook.com) y Zoho (mx.zoho. com), y el último puede ser un servidor de correo personalizado alojado por la empresa.
Esta información es esencial porque los métodos de enumeración pueden diferir de un servicio a otro. Por ejemplo, la mayoría de los proveedores de servicios en la nube utilizan su implementación de servidor de correo y adoptan una autenticación moderna, lo que abre vectores de ataque nuevos y únicos para cada proveedor de servicios. Por otro lado, si la empresa configura el servicio podríamos descubrir malas prácticas y malas configuraciones que permitan ataques comunes a los protocolos de los servidores de correo.
Si apuntamos a una implementación de servidor de correo personalizado como inlanefreight.htb, podemos enumerar los siguientes puertos:
Puerto
Servicio
TCP/25
SMTP sin cifrar
TCP/143
IMAP4 sin cifrar
TCP/110
POP3 sin cifrar
TCP/465
SMTP cifrado
TCP/587
SMTP cifrado/ STARTTLS
TCP/993
IMAP4 cifrado
TCP/995
POP3 cifrado
Podemos usar la opción de script predeterminada de -sC de Nmap para enumerar esos puertos en el sistema de destino:
Configuraciones erróneas
Los servicios de correo electrónico utilizan la autenticación para permitir a los usuarios enviar y recibir correos electrónicos. Puede ocurrir una configuración incorrecta cuando el servicio SMTP permite la autenticación anónima o admite protocolos que se pueden usar para enumerar nombres de usuario válidos.
Autenticación
El servidor SMTP tiene diferentes comandos que se pueden usar para enumerar nombres de usuario válidos VRFY, EXPNy RCPT TO. Si enumeramos con éxito nombres de usuario válidos, podemos intentar un Password Spraying, forzarlas o adivinar una contraseña válida. Entonces, exploremos cómo funcionan esos comandos.
Comando VRFY
El comando VRFY indica al servidor SMTP receptor que verifique la validez de un nombre de usuario de correo electrónico en particular. El servidor responderá indicando si el usuario existe o no. Esta característica se puede desactivar.
Comando EXPN
EXPN es similar a VRFY, excepto que cuando se usa con una lista de usuarios, enumerará todos los usuarios en esa lista. Esto puede ser un problema mayor que el comando VRFY, ya que los sitios suelen tener un alias como "todos".
Comando RCPT
RCPT TO identifica el destinatario del mensaje de correo electrónico. Este comando se puede repetir varias veces para que un mensaje determinado entregue un solo mensaje a varios destinatarios.
Comando USER
También podemos utilizar el protocolo POP3 para enumerar usuarios según la implementación del servicio. Por ejemplo, podemos usar el comando USER seguido del nombre de usuario, y si el servidor responde OK. Esto significa que el usuario existe en el servidor:
Para automatizar nuestro proceso de enumeración, podemos utilizar una herramienta llamada smtp-user-enum . Podemos especificar el modo de enumeración con el argumento -M seguido de VRFY, EXPN o RCPT y el argumento -U con un archivo que contiene la lista de usuarios que queremos enumerar. Dependiendo de la implementación del servidor y el modo de enumeración, debemos agregar el dominio para la dirección de correo electrónico con el argumento -D. Finalmente, especificamos el objetivo con el argumento -t.
Enumeración de la nube
Como se mencionó, los proveedores de servicios en la nube utilizan su propia implementación para los servicios de correo electrónico. Esos servicios suelen tener características personalizadas de las que podemos abusar para su funcionamiento, como la enumeración de nombres de usuarios. Usemos Office 365 como ejemplo y exploremos cómo podemos enumerar nombres de usuario en esta plataforma en la nube.
O365spray es una herramienta de enumeración de nombres de usuarios y contraseñas dirigida a Microsoft Office 365 (O365) desarrollada por ZDH . Esta herramienta implementa una colección de técnicas de enumeración y password spraying. Primero validemos si nuestro dominio de destino usa Office 365.
O365 Spray
Ahora podemos intentar identificar los nombres de usuario.
Ataques de contraseñas
Podemos utilizarlo Hydra para realizar un Password Spraying o fuerza bruta contra servicios de correo electrónico como SMTP, POP3o IMAP4. Primero, necesitamos obtener una lista de nombres de usuarios y contraseñas y especificar qué servicio queremos atacar. Veamos un ejemplo de POP3.
Hydra - Bruteforce
Si los servicios en la nube admiten los protocolos SMTP, POP3 o IMAP4, es posible que podamos intentar realizar una pulverización de contraseñas utilizando herramientas como Hydra, pero estas herramientas suelen estar bloqueadas. En su lugar, podemos intentar utilizar herramientas personalizadas como o365spray o MailSniper para Microsoft Office 365 o CredKing para Gmail u Okta. Tenga en cuenta que estas herramientas deben estar actualizadas porque si el proveedor de servicios cambia algo (lo que sucede con frecuencia), es posible que las herramientas ya no funcionen. Este es un ejemplo perfecto de por qué debemos entender qué hacen nuestras herramientas y tener el conocimiento para modificarlas si no funcionan correctamente por algún motivo.
O365 Spray - Password Spraying
Ataques específicos del protocolo
Una retransmisión abierta es un servidor de Protocolo simple de transferencia de correo ( SMTP), que está configurado incorrectamente y permite una retransmisión de correo electrónico no autenticado. Los servidores de mensajería que se configuran accidental o intencionalmente como retransmisiones abiertas permiten que el correo de cualquier fuente se redirija de forma transparente a través del servidor de retransmisión abierta. Este comportamiento enmascara el origen de los mensajes y hace que parezca que el correo se originó en el servidor de retransmisión abierto.
Open Relay
Desde el punto de vista de un atacante, podemos abusar de esto para realizar phishing enviando correos electrónicos como usuarios no existentes o falsificando el correo electrónico de otra persona. Por ejemplo, imaginemos que nos dirigimos a una empresa con un servidor de correo de retransmisión abierto e identificamos que utiliza una dirección de correo electrónico específica para enviar notificaciones a sus empleados. Podemos enviar un correo electrónico similar usando la misma dirección y agregar nuestro enlace de phishing con esta información. Con el script nmap smtp-open-relay podemos identificar si un puerto SMTP permite una retransmisión abierta.
A continuación, podemos utilizar cualquier cliente de correo para conectarnos al servidor de correo y enviar nuestro correo electrónico.
Caso práctico
Pregunta 1
¿Cuál es el nombre de usuario disponible para el dominio
inlanefreight.htben el servidor SMTP?
Escaneo de puertos
Hay 3 puertos abiertos interesantes, el 110, 143 y 1433. Viendo los registros MX nos encontramos con un servidor de correo personalizado alojado por la empresa: mail1.inlanefreight.com
Enumeración de usuarios
Pregunta 2
Accede a la cuenta de correo electrónico utilizando las credenciales de usuario que descubriste y envía la flag en el correo electrónico como respuesta.
Bruteforce de IMAP
Buum!! Ya tenemos las credenciales del usuario marlin:
Ahora vamos a conectarnos por Telnet para acceder a los mails:
Nos logueamos correctamente y enumeramos los emails:
Solamente hay 1 mail que vamos a enumerar:
Leemos correctamente el email y obtenemos la flag!
Última actualización
¿Te fue útil?
