💋 ¿Qué es SMTP y por qué lo enumeramos?
SMTP (Simple Mail Transfer Protocol) es el protocolo estándar para el envÃo de correo electrónico. Funciona sobre el puerto 25/TCP (y 587 para STARTTLS, 465 para SMTPS). Postfix es uno de los servidores SMTP más utilizados en Linux.
La enumeración SMTP permite descubrir usuarios válidos del sistema sin necesidad de autenticación, usando comandos del protocolo como VRFY y EXPN.
Vectores de ataque: usuarios descubiertos via SMTP → fuerza bruta SSH/SMB, phishing dirigido, o enumeración de Active Directory en entornos Windows.
Comandos SMTP relevantes
| Comando | Función | Riesgo |
|---|---|---|
| EHLO | Saludo extendido — lista capacidades del servidor | Bajo |
| VRFY <usuario> | Verifica si un usuario existe en el sistema | Alto — filtra usuarios válidos |
| EXPN <lista> | Expande una lista de correo, revelando sus miembros | Alto — filtra múltiples usuarios |
| RCPT TO | Alternativa a VRFY para validar destinatarios | Alto |
| QUIT | Cierra la conexión | Ninguno |
🔧 Comandos del laboratorio
1. Identificación del objetivo
bash
cat /root/Desktop/target
2. Escaneo del puerto SMTP
bash
nmap -sS -sV -p 25 <IP>
3. Banner grabbing manual
El banner SMTP suele revelar el nombre de host, versión del servidor y a veces el sistema operativo.
bash — con Netcat
nc <IP> 25
bash — con Telnet
telnet <IP> 25
bash — interacción manual
EHLO test
VRFY root
VRFY admin
QUIT
4. Enumeración con scripts NSE de Nmap
bash — comandos soportados
nmap --script smtp-commands -p 25 <IP>
bash — enumerar usuarios con VRFY
nmap --script smtp-enum-users -p 25 --script-args smtp-enum-users.methods=VRFY <IP>
bash — comprobar open relay
nmap --script smtp-open-relay -p 25 <IP>
5. Enumeración con Metasploit
msfconsole — confirmar versión
use auxiliary/scanner/smtp/smtp_version
set RHOSTS <IP>
exploit
msfconsole — enumerar usuarios
use auxiliary/scanner/smtp/smtp_enum
set RHOSTS <IP>
set USER_FILE /usr/share/metasploit-framework/data/wordlists/common_users.txt
exploit
smtp_enum prueba los métodos VRFY, EXPN y RCPT TO automáticamente para maximizar el descubrimiento de usuarios.
🗼 Flujo del ejercicio
1
ReconocimientoDetectar SMTP en 25/TCP y leer el banner.
2
Enumeración de capacidadesEHLO + smtp-commands NSE para ver qué admite el servidor.
3
Enumeración de usuariosVRFY manual + smtp-enum-users NSE + smtp_enum Metasploit.
4
ValidaciónConfirmar usuarios manualmente con Telnet/Netcat.
5
PivotingUsar usuarios descubiertos para fuerza bruta en SSH, SMB u otros servicios.
6
ObjetivoAcceder al sistema y localizar la flag.
🎯 ¿Qué buscar? — Indicadores de éxito
- VRFY devuelve
250→ usuario válido. Respuesta550→ no existe. - EXPN revela miembros de listas de correo → posible directorio de usuarios del dominio.
- Open relay confirmado → el servidor acepta correos de cualquier origen (vulnerable a spam/phishing).
- Banner con versión de Postfix → buscar CVEs de esa versión especÃfica.
- Usuarios descubiertos como
root,admin,www-data→ candidatos para fuerza bruta SSH.