🔍Puerto 25 - SMTP
El puerto 25 es el puerto predeterminado utilizado por el protocolo SMTP (Simple Mail Transfer Protocol). SMTP es el estándar para el envío de correos electrónicos entre servidores en Internet, permitiendo la transmisión y enrutamiento de mensajes de correo electrónico.
🔍 Reconocimiento del Puerto 25 con Nmap
Para analizar el puerto 25 y sus servicios asociados con Nmap, podemos listar todos los scripts disponibles para SMTP con el siguiente comando:
ls -la /usr/share/nmap/scripts/ | grep -e "smtp" # Ver los scripts de Nmap para el servicio SMTP
Una vez identificados los scripts adecuados, podemos ejecutarlos según nuestros objetivos. También es posible ejecutar todos los scripts disponibles, aunque esto puede ralentizar significativamente el escaneo.
🔹 Comandos útiles de Nmap para SMTP:
nmap -p25 -sVC <ip_victima> # Escaneo con detección de versiones y scripts comunes
nmap -p25 --script smtp-* <ip_victima> # Ejecutar todos los scripts SMTP
nmap -p25 <ip_victima> --script smtp-commands # Enumera comandos SMTP disponibles
nmap -p25 <ip_victima> --script smtp-enum-users # Intenta enumerar usuarios válidos
nmap -p25 <ip_victima> --script smtp-vuln-* # Busca vulnerabilidades conocidas
nmap -p25 <ip_victima> --script smtp-open-relay # Prueba si el servidor es un relay abierto
🔹 Principales flags de smtp-user-enum
smtp-user-enum
Flag
Descripción
-M
Modo (VRFY, EXPN, RCPT)
-U
Lista de usuarios a probar
-u
Usuario único
-t
Host objetivo
-T
Lista de hosts objetivo
-p
Puerto (por defecto 25)
-d
Modo debug
📌 Ejemplo de uso con diccionario de usuarios:
smtp-user-enum -M VRFY -U <diccionario.txt> -t <ip_victima>
📌 Enumeración Manual
Conexión básica al servidor SMTP:
telnet <ip_victima> 25 # Conexión manual al servidor SMTP
nc -vn <ip_victima> 25 # Uso de Netcat para verificar conexión
📌 Usos:
Verificar si el puerto 25 está abierto.
Probar comandos SMTP manualmente (EHLO, MAIL FROM, RCPT TO...).
Identificar la versión del servidor SMTP.
💡 Diferencias clave entre telnet
y nc
telnet
y nc
Característica
telnet
nc (netcat)
Conexión interactiva
✅ Sí
✅ Sí
Ver detalles de conexión
❌ No
✅ Sí (-v
muestra más información)
Se puede usar en scripts
❌ Difícil
✅ Sí (permite más flexibilidad)
🛠️ Usando Metasploit para SMTP
📌 Escaneo de versión SMTP
msfconsole -q # Iniciar Metasploit en modo silencioso
use auxiliary/scanner/smtp/smtp_version
set RHOSTS <ip_victima>
exploit
📌 Enumeración de usuarios SMTP
use auxiliary/scanner/smtp/smtp_enum
set RHOSTS <ip_victima>
set USER_FILE /usr/share/wordlists/metasploit/unix_users.txt # Diccionario recomendado
exploit
📌 Comandos SMTP útiles para pruebas
HELO example.com
EHLO example.com
VRFY usuario
EXPN usuario
RCPT TO: <usuario@dominio>
MAIL FROM: <remitente@dominio>
📌 Verificación de Relay Abierto
Para comprobar si un servidor SMTP permite el reenvío de correos sin autenticación (open relay), se pueden ejecutar los siguientes comandos:
telnet <ip_victima> 25
HELO test
MAIL FROM: <attacker@example.com>
RCPT TO: <victim@example.com>
DATA
Subject: Test
Test message
.
QUIT
Si el servidor acepta y entrega el correo sin restricciones, significa que está configurado como relay abierto, lo cual es una grave vulnerabilidad de seguridad.
Last updated