IMAP/POP3 Pentesting Notes
Protocol Overview
Basic Information
IMAP:
Port: TCP 143 (default), TCP 993 (IMAPS)
Protocol Type: Application layer, client-server
Purpose: Email access and management on server
Security: Plain text by default, supports SSL/TLS
POP3:
Port: TCP 110 (default), TCP 995 (POP3S)
Protocol Type: Application layer, client-server
Purpose: Email retrieval and deletion
Security: Plain text by default, supports SSL/TLS
Protocol Differences
Storage
Server-side
Client-side
Sync
Multi-device sync
Single device
Management
Full email/folder management
Basic retrieval/deletion
Connection
Persistent connection
Connect, download, disconnect
Initial Enumeration
Port Scanning
Banner Grabbing
Authentication Testing
IMAP Authentication
POP3 Authentication
Brute Force Attacks
Using Hydra
Using Metasploit
Command Reference
IMAP Commands
LOGIN
Authenticate
a001 LOGIN user pass
LIST
List mailboxes
a002 LIST "" "*"
SELECT
Select mailbox
a003 SELECT INBOX
FETCH
Retrieve message
a004 FETCH 1 BODY[]
STORE
Modify flags
a005 STORE 1 +FLAGS (\Deleted)
EXPUNGE
Delete marked messages
a006 EXPUNGE
LOGOUT
End session
a007 LOGOUT
POP3 Commands
USER
Set username
USER username
PASS
Set password
PASS password
STAT
Get mailbox stats
STAT
LIST
List messages
LIST
RETR
Retrieve message
RETR 1
DELE
Delete message
DELE 1
QUIT
End session
QUIT
Common NSE Scripts
SSL/TLS Testing
Configuration Files
Server Configuration
Dovecot:
/etc/dovecot/dovecot.conf
Courier:
/etc/courier/imapd
,/etc/courier/pop3d
Cyrus:
/etc/imapd.conf
,/etc/cyrus.conf
Security Files
SSL Certificates: Often in
/etc/ssl/certs/
Authentication: Various PAM or SASL configs
Common Vulnerabilities
Authentication Issues:
Clear text transmission
Weak credentials
No rate limiting
Authentication bypass
SSL/TLS Problems:
Weak ciphers
Outdated protocols
Invalid certificates
Missing encryption
Configuration:
Debug logging enabled
Anonymous access
Unencrypted ports open
Excessive information disclosure
Post Exploitation
Information Gathering
Access email content
Extract attachments
Find sensitive data
Gather internal addresses
Map email relationships
Privilege Escalation
Check attachment permissions
Search for credentials
Test for command injection
Access configuration files
Response Codes
IMAP Response Codes
OK
Command completed
NO
Command failed
BAD
Invalid command
PREAUTH
Authenticated connection
BYE
Server signing off
POP3 Response Codes
+OK
Command successful
-ERR
Command failed
Best Practices for Pentesting
Initial Reconnaissance:
Version identification
SSL/TLS check
Capability enumeration
Authentication methods
Deep Enumeration:
Vulnerability scanning
User enumeration
SSL/TLS analysis
Configuration review
Documentation:
Server details
Found vulnerabilities
Access methods
Sensitive data
Risk Assessment:
Impact analysis
Data sensitivity
Attack vectors
Mitigation recommendations
Additional Tools
swaks:
evolution:
Custom Python Scripts:
Misc Tools:
thunderbird (GUI client)
mutt (terminal client)
alpine (terminal client)