Enumerar Usuarios mediante SMTP

  • Posted on: 7 February 2014
  • By: ReYDeS

SMTP (Simple Mail Transfer Protocol) o por su traducción al Español Protocolo Simple para la Transferencia de Correo, es un estándar de Internet para la transmisión de correo electrónico de manera confiable y eficiente..

Mientras los servidores de correo electrónico y otros agentes de transferencia de correo utilizan SMTP para enviar y recibir mensajes de correo, las aplicaciones cliente a nivel del usuario de correo típicamente utilizan SMTP solo para enviar mensajes a un servidor de correo para ser retransmitidos.

Estructura Básica del Modelo SMTP

Cuando un cliente SMTP tiene un mensaje a transmitir, este establece un canal bidireccional de transmisión hacia un servidor SMTP. La responsabilidad de un cliente SMTP es transmitir mensajes de correo a uno o más servidores SMTP.

Un servidor SMTP puede ser ya sea el último destino o un retransmisor intermedio (esto es, que puede asumir el rol de un cliente SMTP después de recibir el mensaje) o pasarela (esto es, este puede transportar el mensaje más lejos utilizando algún otro protocolo diferente que SMTP).

Transacciones de Correo

Existen tres pasos para las transacciones de correo SMTP.

  • MAIL: La transacción inicia con un comando MAIL el cual proporciona la identificación del remitente.
  • RCPT: Proporciona la ruta de adelante identificando a un receptor.
  • DATA: Si es aceptada, el SMTP de recepción devuelve una respuesta intermedia 354 y considera todas las líneas siguientes como un mensaje de texto.

Comandos de Depuración

  • VRFY: Permite verificar el nombre de un usuario, la respuesta puede incluir el nombre completo del usuario y debe incluir el buzón de correo del usuario.
  • EXPN: Permite consultar una lista de correo, y la respuesta constituida de varias líneas puede incluir el nombre completo de los usuarios y debe proporcionar los buzones de correo de la lista de correo.

Se utilizará la herramienta netcat, para establecer una conexión al puerto 25 del objetivo

# nc -nvv 192.168.0.17 25

Realizada y establecida la conexión con el servidor, se procede a utilizar el comando HELO y EHLO.

El comando “HELO” cuando se abre un canal de transmisión, se realiza un intercambio para asegurar que los hosts están comunicándose con los hosts adecuados.. El comando “EHLO” es enviado al servidor para indicar la identidad del cliente. Además de abrir la sesión, el uso de “EHLO” indica que el cliente es capaz de procesar las extensiones de servicio y solicita que el servidor proporcione una lista de las extensiones que soporta.

Utilizar el comando VRFY para verificar la existencia de dos usuarios, para esta práctica un usuario inexistente en el sistema y un segundo usuario el cual si existe en el sistema.

Notar el mensaje de respuesta devuelta por el servidor, lo cual nos permitiría realizar un ataque más elaborado y automático con la ayuda de una herramienta.

smtp-user-enum

Es una herramienta orientada principalmente a adivinar nombres de usuario contra un servicio SMTP. Utilizando los comando, EXPN, VRFY o RCPT.

Para la siguiente práctica se utilizará esta herramienta y una de las listas de palabras que incluye Kali Linux en el directorio (/usr/share/metasploit-framework/data/wordlists)

# smtp-user-enum -M VRFY -U /usr/share/metasploit-framework/data/wordlists/unix_users.txt -t 192.168.0.17

En una Prueba de Penetración, si nuestro objetivo de evaluación tiene un servidor de correo que permite la enumeración de usuarios, se puede crear una lista de usuarios existentes en el sistema. Esta lista de usuarios puede ser muy valiosa en cualquier ataque por fuerza bruta, intentos de login, o utilizar estos datos para realizar ingeniería social.

Fuentes:

http://www.ietf.org/rfc/rfc2821.txt
http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol
http://pentestmonkey.net/tools/user-enumeration/smtp-user-enum
http://nmap.org/nsedoc/scripts/smtp-enum-users.html

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero


Webinar Informática Forense