1. Infos :
SMTP (Simple Mail Transfer Protocol) est un protocole TCP/IP utilisé pour l’envoi et la réception de courriers électroniques. Cependant, comme il est limité dans sa capacité à mettre les messages en file d’attente, il est généralement utilisé avec l’un des deux autres protocoles, POP3 ou IMAP, qui permettent à l’utilisateur de sauvegarder les messages dans une mailbox du serveur et de les télécharger périodiquement à partir du serveur.
En d’autres termes, les utilisateurs utilisent généralement un programme qui utilise le protocole SMTP pour l’envoi de courrier électronique et soit le protocole POP3 soit le protocole IMAP pour la réception de courrier électronique. Sur les systèmes basés sur Unix, sendmail est le serveur SMTP le plus utilisé pour le courrier électronique.
Nous utilisons un serveur smtp dans le tutoriel sur la création d’un serveur mail de phishing : https://white0x3paper.com/2020/07/01/social-engineering-2/
Ports par défaut : 25,465(ssl),587(ssl)
PORT STATE SERVICE REASON VERSION 25/tcp open smtp syn-ack Microsoft ESMTP 6.0.3790.3959
2. Les en-têtes
Si vous avez la possibilité de faire qu’une victime vous envoie un courrier électronique, 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 courrier électronique à une adresse inexistante (parce que le serveur enverra à l’attaquant un courrier NDN). Mais assurez-vous que vous envoyez le courrier électronique à partir d’une adresse autorisée (vérifiez la politique SPF) et que vous pouvez recevoir des messages NDN.
Vous devriez également essayer d’envoyer des contenus différents, car vous pouvez trouver des informations plus intéressantes dans les en-têtes, par exemple : X-Virus-Scanned : par av.domain.com
Vous devez envoyer le fichier test EICAR.
La détection de l’AV peut vous permettre d’exploiter des vulnérabilités connues.
3. Récupération de la bannière et première connection
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. Enumeration
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 example.com 587 220 example.com SMTP Server Banner >> HELO 250 example.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
Nous avons déjà abordé le sujet dans la création du serveur de phishing, je vous renvoi donc à cet article : https://white0x3paper.com/2020/07/01/social-engineering-2/