SMTP Enumeration
SMTP Enumeration
Simple Mail Transfer Protocol has VRFY request asks the server to verify an email address, while EXPN asks the server for the membership of a mailing list. PORT 25
- Manual - nc -nv <ip> 25 
- VRFY <user> if user not exist in mail server , it give error 
 
- Automated script - <aside> 🐍 #!/usr/bin/python - import socket import sys - if len(sys.argv) != 3: print(f"Usage: {sys.argv[0]} <ip_address> <username_file>") sys.exit(0) - #Read the IP address and file name from the command line arguments - ip_address = sys.argv[1] filename = sys.argv[2] - #Read usernames from the text file - try: with open(filename, "r") as f: usernames = f.read().splitlines() except IOError: print(f"Error: Unable to read from file '{filename}'") sys.exit(1) - #Create a Socket - s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - #Connect to the Server - connect = s.connect((ip_address, 25)) - #Receive the banner - banner = s.recv(1024) - print(banner) - #Loop through each username and VRFY - for username in usernames: s.send(f'VRFY {username}\r\n') result = s.recv(1024) - print(result)- #Close the socket s.close() - </aside> 
- Send Mail on SMTP - telnet <ip> 25 
- Set sender’s email MAIL FROM: sender@adress.ext 
- Set recipient mail RCPT TO: recipient@adress.ext 
- To write the message, type DATA and press ‘Enter’ DATA 
- On the first line type ‘SUBJECT: Your Subject’ and press ‘Enter’ twice SUBJECT: Your Subject 
- Continue typing your message like Hello, this is test message 
- Put a single period (.) on a line by itself and press ‘Enter’ to send your message. . 
- Close the connection QUIT 
 - Reference: https://www.shellhacks.com/send-email-smtp-server-command-line/ 
Last updated
