Este puerto tiene la funcion de mandar correos electronicos. Su uso tiene riesgo ya que no cuenta con cifrado al momento de enviar los correos.
Nos podemos a conectar a este usando nc o telnet:
nc <target-ip> 25
# or
telnet <target-ip> 25
Verificacion de ususarios con script
# VRFY - verificar si el usuario existe en el servidor SMTP
smtp-user-enum -M VRFY -u <username> -t <target-ip>
smtp-user-enum -M VRFY -U usernames.txt -t <target-ip>
# RCPT - comprobar si el usuario puede recibir correos en el servidor SMTP
smtp-user-enum -M RCPT -u <username> -t <target-ip>
smtp-user-enum -M RCPT -U usernames.txt -t <target-ip>
# EXPN - revelar la dirección de correo electrónico real
smtp-user-enum -M EXPN -u <username> -t <target-ip>
smtp-user-enum -M EXPN -D <hostname> -U usernames.txt -t <target-ip>
Comandos
Estando dentro tenemos los siguientes comandos que podemos usar:
8BITMIME - permite enviar datos de 8 bits
AUTH - autenticación para la conexión SMTP
CHUNKING - transferir fragmentos de datos
DSN (Delivery Status Notifications) - notifica el estado de entrega
ENHANCEDSTATUSCODES - permite mostrar más detalles del estado
ETRN - procesar cola remota
EXPN - expandir la lista de correo
HELP - ayuda sobre los comandos
PIPELINING - permitir los múltiples comandos
SIZE - tamaño máximo de mensaje que se puede recibir
SMTPUTF8 -
STARTTLS - comunicarse con TLS
SEND - enviar mensaje a la terminal
TURN - intercambiar cliente y servidor
VRFY - comprobar si el usuario existe en el servidor SMTP
Envio de mensajes
# 1. verificar si el usuario existe
vrfy <username>
vrfy root
# 2. establecer la dirección del remitente del correo
mail from: <username>
mail from: root
mail from: sender@example.com
# 3. establecer la dirección del destinatario del correo
rcpt to: <username>
rcpt to: root
rcpt to: recipient@example.com
# 4. enviar datos del mensaje (el mensaje termina con ".")
data
subject: Test Mail
This is a test mail.
.