SMTP - 25/465/587

1. Infos :

SMTP (Simple Mail Transfer Protocol) est un protocole TCP/IP utilisé pour l'envoi et la réception d'emails. Il est souvent utilisé avec l'un des deux autres protocoles, POP3 ou IMAP, qui permettent à un utilisateur de sauvegarder les messages dans une boite mail du serveur.

Pour résumer, les utilisateurs utilisent un programme qui utilise le protocole SMTP pour l'envoi d'email et soit le protocole POP3 soit le protocole IMAP pour la réception.

Nous utilisons un serveur smtp dans le tutoriel sur la création d'une campagne de phishing : https://white0x3paper.com/2020/07/01/social-engineering-2/

Ports par défaut : 25,465(ssl),587(ssl)

PORT   STATE SERVICE   VERSION
25/tcp open  smtp    Microsoft ESMTP 6.0.3790.3959

2. Les en-têtes

Si vous avez la possibilité de faire qu'une victime vous envoie un mail, faites-le car vous pourriez vous renseigner sur la topologie interne en observant les en-têtes des mails. Vous pouvez également obtenir un courrier électronique d'un serveur SMTP en essayant d'envoyer à ce serveur un email à une adresse inexistante. Vous devriez également essayer d'envoyer des contenus différents ainsi que des pièces jointes, car vous pouvez trouver des informations plus intéressantes dans les en-têtes, par exemple : X-Virus-Scanned : scanné par antivirus.domain.com Vous pouvez aussi essayer de joindre un fichier test EICAR qui est un fichier reconnu comme malveillant par tous les antivirus : https://www.eicar.org/?page_id=3950

SMTP:

nc -vn <IP> 25

SMTPS:

openssl s_client -starttls smtp -crlf -connect smtp.mailgun.org:587

4. Chercher les serveurs MX d'une entreprise

dig +short mx google.com

5. Enumération

nmap -p25 --script smtp-commands 10.10.10.10

6. NTLM Auth - Information disclosure

Si le serveur supporte l'authentification NTLM (Windows), vous pouvez obtenir des informations sensibles (versions).

root@kali: telnet PILOU.com 587 
220 example.com SMTP Server Banner 
>> HELO 
250 PILOU.com Hello [x.x.x.x] 
>> AUTH NTLM 334 
NTLM supported 
>> TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA= 
334TlRMTVNTUAACAAAACgAKADgAAAAFgooCBqqVKFrKPCMAAAAAAAAAAEgASABCAAAABgOAJQAAAA9JAEkAUwAwADEAAgAKAEkASQBTADAAMQABAAoASQBJAFMAMAAxAAQACgBJAEkAUwAwADEAAwAKAEkASQBTADAAMQAHAAgAHwMI0VPy1QEAAAAA

Nmap peut le faire aussi à votre place en utilisant le script <smtp-ntlm-info.nse>

7. Username Bruteforce Enumeration

Évidemment des tools existent déjà pour vous épargner tout le travail :

Metasploit: auxiliary/scanner/smtp/smtp_enum
smtp-user-enum
nmap –script smtp-enum-users.nse <IP>

Malgré ça il est intéressant de savoir le faire à la main quand même :

Avec la commande VRFY :

$ telnet 192.168.195.201 25
Trying 192.168.195.20...
Connected to 192.168.195.201
Escape character is '^]'.
220 myhost ESMTP Sendmail 8.9.3
HELO
501 HELO requires domain address
HELO x
250 myhost Hello [192.168.195.15], pleased to meet you
VRFY root
250 Super-User <root@myhost>
VRFY heho
550 heho... User unknown

Avec la commande RCPT :

$ telnet 192.168.195.201 25
Trying 192.168.195.201...
Connected to 192.168.195.201
Escape character is '^]'.
220 myhost ESMTP Sendmail 8.9.3
HELO x
250 myhost Hello [192.168.195.15], pleased to meet you
MAIL FROM:test@test.com
250 2.1.0 test@test.com... Sender ok
RCPT TO:test2
550 5.1.1 test2... User unknown
RCPT TO:admin
550 5.1.1 admin... User unknown
RCPT TO:heho
250 2.1.5 heho... Recipient ok

8. Mail Spoofing

Ici il s'agira de configurer correctement les différents type de clefs :

  • SPF

  • DKIM

  • DMARC

Last updated