SMTP user enumeration (VRFY/EXPN/RCPT)
El protocolo SMTP (puerto 25) incluye comandos pensados para verificar destinatarios que, mal configurados, permiten averiguar qué cuentas existen en el sistema sin autenticarse. Son tres:
VRFY <user>: pide al servidor que verifique si un usuario existe.EXPN <lista>: expande una lista de correo a sus miembros.RCPT TO:<user>: en una sesión de envío, el servidor acepta o rechaza el destinatario.
La respuesta distingue lo que existe de lo que no. Con VRFY, un usuario válido suele devolver 252 (o 250) y uno inexistente un 550. Probándolo a mano:
nc <ip> 25
EHLO test
VRFY michael # 252 -> existe
VRFY noexiste # 550 -> no existePara automatizarlo se itera un diccionario de usuarios (por ejemplo xato-net-10-million-usernames.txt) filtrando por el código de éxito. Como cada petición puede ser lenta, conviene paralelizar:
while read -r u; do
r=$(echo -e "VRFY $u" | nc -w1 <ip> 25 | grep -c 252)
[ "$r" = "1" ] && echo "[+] $u existe"
done < users.txtPor qué importa. Confirmar usuarios reales (michael, root...) acota una fuerza bruta de SSH, da nombres para probar reutilización de credenciales, o corrobora cuentas vistas por otra vía (un LFI de /etc/passwd, por ejemplo). Es enumeración pura, pero muy rentable.
Cómo detectarlo. El patrón es inconfundible en los logs del servidor de correo: una ráfaga de comandos VRFY/EXPN o de RCPT TO con muchos destinatarios distintos desde una sola IP en poco tiempo, con una proporción alta de respuestas 550 (usuario inexistente). En Postfix, eso llena /var/log/mail.log de NOQUEUE: reject o de líneas VRFY; una regla de fail2ban o del SIEM que cuente VRFY/RCPT fallidos por origen lo detecta. A nivel de red, tráfico al puerto 25 lleno de VRFY desde un host que no es un MTA legítimo es la señal. La clave es el volumen de sondas por origen, no una consulta suelta.
Defensa. Desactivar VRFY y EXPN (disable_vrfy_command = yes en Postfix), y configurar el servidor para que responda igual ante destinatarios válidos e inválidos, de modo que RCPT no filtre información. Relacionado con la pulverización de contraseñas que suele seguir.