smtp-user-enum
Outil d'énumération d'utilisateurs SMTP. Utilise les commandes VRFY, EXPN et RCPT TO pour énumérer des adresses e-mail et pseudonymes valides sur des serveurs SMTP sans authentification. SMTP user enumeration tool. Uses VRFY, EXPN, and RCPT TO commands to enumerate valid email addresses and usernames on SMTP servers without authentication.
↗ https://pentestmonkey.net/tools/user-enumeration/smtp-user-enumOverview
smtp-user-enum exploits SMTP server commands (VRFY, EXPN, RCPT TO) to verify whether usernames/email addresses exist on a mail server. Many SMTP servers respond differently to valid vs. invalid addresses, enabling user enumeration without authentication.
Basic Usage
Enumerate with VRFY method
smtp-user-enum -M VRFY -U users.txt -t 10.10.10.1
Enumerate with RCPT method
smtp-user-enum -M RCPT -U users.txt -t 10.10.10.1
Enumerate with EXPN method
smtp-user-enum -M EXPN -U users.txt -t 10.10.10.1
Test single username
smtp-user-enum -M VRFY -u admin -t 10.10.10.1
SMTP Methods
# VRFY — directly asks if user exists
# EHLO test.com
# VRFY username
# 250 = exists, 550 = doesn't exist
# EXPN — expand mailing list
# EXPN username
# 250 = user/list exists
# RCPT TO — send test email (most widely supported)
# MAIL FROM: fake@fake.com
# RCPT TO: target@target.com
# 250 = accepted (user exists), 550 = rejected
Username Lists
Use built-in username lists
smtp-user-enum -M VRFY -U /usr/share/wordlists/metasploit/unix_users.txt -t 10.10.10.1
Common username list
smtp-user-enum -M VRFY -U /usr/share/seclists/Usernames/top-usernames-shortlist.txt -t 10.10.10.1
Custom list from OSINT
smtp-user-enum -M RCPT -U discovered_users.txt -t mail.target.com
Options
Set port (default: 25)
smtp-user-enum -M VRFY -U users.txt -t 10.10.10.1 -p 25
Set EHLO domain
smtp-user-enum -M RCPT -U users.txt -t 10.10.10.1 -D target.com
Verbose output
smtp-user-enum -M VRFY -U users.txt -t 10.10.10.1 -v
Multiple threads
smtp-user-enum -M VRFY -U users.txt -t 10.10.10.1 -w 20
Timeout
smtp-user-enum -M VRFY -U users.txt -t 10.10.10.1 -T 10
Manual Testing
# Connect and test manually
nc -nv 10.10.10.1 25
EHLO test.com
VRFY root
VRFY admin
VRFY nobody
# For RCPT method:
EHLO test.com
MAIL FROM:<fake@fake.com>
RCPT TO:<admin@target.com>
Tips
- RCPT TO is the most reliable method — works even when VRFY/EXPN are disabled
- Use SMTP enumeration in combination with OSINT usernames for targeted attacks
- Discovered usernames feed directly into SSH/FTP brute-force with hydra
- Some servers respond to VRFY with 252 (ambiguous) regardless — try RCPT
- Port 587 (submission) may also be enumerable with the same techniques
Help / Man page
smtp-user-enum [options]
-M METHOD Method: VRFY, EXPN, or RCPT (default: VRFY)
-u USER Single username to test
-U FILE Username list file
-t HOST Target host
-p PORT SMTP port (default: 25)
-D DOMAIN Domain for RCPT TO and EHLO
-w N Number of threads (default: 5)
-T N Timeout in seconds (default: 5)
-v Verbose
Vue d’ensemble
smtp-user-enum exploite les commandes de serveur SMTP (VRFY, EXPN, RCPT TO) pour vérifier si des pseudonymes/adresses e-mail existent sur un serveur de messagerie. De nombreux serveurs SMTP répondent différemment aux adresses valides et invalides, ce qui permet une énumération d’utilisateurs sans authentification.
Utilisation de base
# Énumérer avec la méthode VRFY
smtp-user-enum -M VRFY -U users.txt -t 10.10.10.1
# Énumérer avec la méthode RCPT
smtp-user-enum -M RCPT -U users.txt -t 10.10.10.1
# Énumérer avec la méthode EXPN
smtp-user-enum -M EXPN -U users.txt -t 10.10.10.1
# Tester un seul pseudonyme
smtp-user-enum -M VRFY -u admin -t 10.10.10.1
Méthodes SMTP
# VRFY : demande directement si l'utilisateur existe
# EHLO test.com
# VRFY username
# 250 = existe, 550 = n'existe pas
# EXPN : développe une liste de diffusion
# EXPN username
# 250 = l'utilisateur/la liste existe
# RCPT TO : envoie un e-mail de test (le plus largement supporté)
# MAIL FROM: fake@fake.com
# RCPT TO: target@target.com
# 250 = accepté (l'utilisateur existe), 550 = rejeté
Listes de pseudonymes
# Utiliser les listes de pseudonymes intégrées
smtp-user-enum -M VRFY -U /usr/share/wordlists/metasploit/unix_users.txt -t 10.10.10.1
# Liste de pseudonymes courants
smtp-user-enum -M VRFY -U /usr/share/seclists/Usernames/top-usernames-shortlist.txt -t 10.10.10.1
# Liste personnalisée issue d'OSINT
smtp-user-enum -M RCPT -U discovered_users.txt -t mail.target.com
Options
# Définir le port (défaut : 25)
smtp-user-enum -M VRFY -U users.txt -t 10.10.10.1 -p 25
# Définir le domaine EHLO
smtp-user-enum -M RCPT -U users.txt -t 10.10.10.1 -D target.com
# Sortie verbeuse
smtp-user-enum -M VRFY -U users.txt -t 10.10.10.1 -v
# Threads multiples
smtp-user-enum -M VRFY -U users.txt -t 10.10.10.1 -w 20
# Timeout
smtp-user-enum -M VRFY -U users.txt -t 10.10.10.1 -T 10
Test manuel
# Se connecter et tester manuellement
nc -nv 10.10.10.1 25
EHLO test.com
VRFY root
VRFY admin
VRFY nobody
# Pour la méthode RCPT :
EHLO test.com
MAIL FROM:<fake@fake.com>
RCPT TO:<admin@target.com>
Conseils
- RCPT TO est la méthode la plus fiable : fonctionne même quand VRFY/EXPN sont désactivés
- Utiliser l’énumération SMTP en combinaison avec des pseudonymes issus d’OSINT pour des attaques ciblées
- Les pseudonymes découverts alimentent directement le brute-force SSH/FTP avec hydra
- Certains serveurs répondent à VRFY avec 252 (ambigu) quel que soit le cas : essayer RCPT
- Le port 587 (submission) peut aussi être énumérable avec les mêmes techniques
Aide / Page de manuel
smtp-user-enum [options]
-M METHOD Method: VRFY, EXPN, or RCPT (default: VRFY)
-u USER Single username to test
-U FILE Username list file
-t HOST Target host
-p PORT SMTP port (default: 25)
-D DOMAIN Domain for RCPT TO and EHLO
-w N Number of threads (default: 5)
-T N Timeout in seconds (default: 5)
-v Verbose