← retour aux outils back to tools

# 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-enum

## Overview

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