IMAP et POP3
Ports :
- 110 (POP3)
- 143 (IMAP avec ou sans TLS)
- 993 (IMAP (avec TLS)
- 995 (POP3 avec TLS)
Enumeration
Via NMAP
sudo nmap $TARGET -sV -p110,143,993,995 -sC
Via cURL
curl -k "imaps://$TARGET_IP" --user user:password -v
Via OpenSSL
# POP3 over TLS
openssl s_client -connect $TARGET_IP:pop3s
# IMAP over TLS
openssl s_client -connect $TARGET_IP:imaps
Commandes IMAP
Tutoriel : https://nickb.dev/blog/introduction-to-imap/
ATTENTION : certain client IMAP semble n'accepter que des commandes qui se terminent par \r\n
. L'utilitaire nc
n'envoie qu'un \n
. Mais on peut utiliser ncat --crlf $TARGET_IP 143
qui enverra des sauts de ligne de type \r\n
$ rlwrap -g LOGIN openssl s_client -connect $TARGET_IP:imaps -quiet -crlf
# Authentification
1 LOGIN username password
# Liste des boîtes aux lettres
1 LIST * *
# Sélection d'une boîte aux lettres :
1 SELECT DEV.DEPARTMENT.INT
1 SELECT INBOX
# Recherche des messages présents :
1 UID SEARCH ALL
* SEARCH 1 <==== on a 1 mail dont l'UID est '1'
# Lecture d'un message dont on connait l'UID (1 ici)
# (PEEK permet de ne pas marquer le message comme Lu)
1 FETCH 1 BODY.PEEK[HEADER] <== affiche l'entête smtp
1 FETCH 1 BODY.PEEK[TEXT] <== affiche le corps du mail
Exploitation
Enumération d'utilisateurs
Automatisée
[[Enumération d'utilisateurs à distance via la messagerie]]
Manuelle
telnet $TARGET_IP 110
[...]
USER baduser1
-ERR
USER existinguser
+OK