tags: enumerazione smtp nmap user email


Il Simple Mail Transfer Protocol (SMTP) è un protocollo di comunicazione basato su standard Internet per la trasmissione di posta elettronica. I sistemi di posta utilizzano comunemente SMTP con POP3 e IMAP, che consentono agli utenti di salvare i messaggi nella casella di posta del server e di scaricarli dal server quando necessario. SMTP utilizza server di scambio di posta (MX) per indirizzare la posta tramite DNS. Funziona sulla porta TCP 25, 2525 o 587.

Un modo semplice per ottenere informazioni da un server SMTP è tramite l’utilizzo di Telnet che ci permette di fare domande alla porta 25 ed ottenere username, indirizzi email, ecc.

Le da fare sono le seguenti:

telnet <Indirizzo IP> 25
 
telnetl <Indirizzo IP> 25

I punti interessanti della risposta sono:

  • VRFY: Utenti validati
  • EXPN: mostra gli attuali indirizzi di consegna degli alias nella lista delle mail
  • RCPT TO: mostra i destinatari di un messaggio

Nmap

L’enumerazione dell’SMTP tramite Nmap può essere eseguita dall’esterno della rete, a patto che la porta 25 (o altre porte SMTP come 587 o 465) sia esposta pubblicamente e non bloccata da firewall o altre restrizioni di rete.

Di solito, i server SMTP sono accessibili dall’esterno, poiché sono progettati per ricevere email da altri server. Tuttavia, molte organizzazioni limitano le funzionalità disponibili dall’esterno, rendendo alcune informazioni meno accessibili o disattivando completamente alcune funzionalità di enumerazione.

Da questo server si possono ricavare molte informazioni utili e per raccoglierle possiamo usare il mitico Nmap.

Questo comando Nmap ci permette di enumerare gli utenti presenti nel server:

nmap -p 25 --script=smtp-enum-users <Indirizzo IP> 

Un altro tipo di enumerazione è quella dei relay (Il mail relay è la pratica di far inoltrare a un server SMTP messaggi di posta elettronica a destinatari che non fanno parte del dominio gestito dal server stesso. In pratica, un server SMTP “relay” può accettare un’email da un mittente esterno e inoltrarla a un destinatario esterno, agendo da intermediario. Questo era comune nelle prime configurazioni SMTP, ma oggi è considerato rischioso, poiché può trasformare un server in un “open relay” (relay aperto), che può essere sfruttato per inviare spam.)

Ogni volta che si trova un server SMTP è sempre buona pratica verificare che il server non sia un open relay per assicurarsi che il server utilizzato dall’azienda non sia un motore per gli spam, per fare ciò possiamo continuare ad utilizzare Nmap:

nmap -p 25 --script=smtp-open-relay <Indirizzo IP>

Un ulteriore enumerazione che si può compiere tramite server SMPT è quella dei comandi che ci fornisce informazioni su quali comandi possiamo utilizzare il chè può tornare utile per ricavare ulteriori informazione:

nmap -p 25 --script=smtp-commands <Indirizzo IP>

E infine una bella scansione del servizio non guasta mai:

nmap -p 25 -sV <Indirizzo IP>

Metasploit

Enumerazione attraverso wordlist degli utenti di un server SMTP.

 
msf > use auxiliary/scanner/smtp/smtp_enum
 
msf > set rhost <indirizzo IP>
 
# DI default metasploit utilizza la seguente wordlist /usr/share/60etasploit-framework/data/wordlists/unix_users.txt, ma possiamo utilizzare una nostra con il seguente comando:
 
msf auxiliary(smtp_enum) > set USER_FILE <location of wordlists file>
 
msf auxiliary(smtp_enum) > run
 

SMTP-user-enum

smtp-user-enum.pl [options] (-u username|-U file-of-usernames) (-t host|-T file-of-targets)