SMTP (25,587)

El Simple Mail Transfer Protocol (SMTP) es un protocolo para enviar correos electrónicos en una red IP. Se puede utilizar entre un cliente de correo electrónico y un servidor de correo saliente o entre dos servidores SMTP. SMTP a menudo se combina con los protocolos IMAP o POP3, que pueden buscar correos electrónicos y enviar correos electrónicos
  • Comando: Descripción
  • AUTH PLAIN: AUTH es una extensión de servicio utilizada para autenticar al cliente.
  • HELO: El cliente inicia sesión con el nombre de su computadora y, por lo tanto, inicia la sesión.
  • MAIL FROM: El cliente nombra al remitente de correo electrónico.
  • RCPT TO: El cliente nombra al destinatario del correo electrónico.
  • DATA: El cliente inicia la transmisión del correo electrónico.
  • RSET: El cliente aborta la transmisión iniciada pero mantiene la conexión entre el cliente y el servidor.
  • VRFY: Verificar usuarios (Enumerarlos)
  • EXPN: El cliente también comprueba si hay un buzón disponible para enviar mensajes con este comando.
  • NOOP: El cliente solicita una respuesta del servidor para evitar la desconexión debido al tiempo de espera.
  • QUIT: El cliente termina la sesión.
Para interactuar con el servidor SMTP, podemos utilizar el telnet

Comandos

HELO/EHLO

Son lo mismo sirve para iniciar la conexión con el servidor
txt
HELO mail1.inlanefreight.htb

250 mail1.inlanefreight.htb

EHLO mail1

250-mail1.inlanefreight.htb
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250-SMTPUTF8
250 CHUNKING

VRFY

Sirve para enumerar los usuarios existentes en el sistema. Sin embargo, esto no siempre funciona
txt
VRFY root

252 2.0.0 root

VRFY cry0l1t3

252 2.0.0 cry0l1t3

VRFY testuser

252 2.0.0 testuser

VRFY aaaaaaaaaaaaaaaaaaaaaaaaaaaa

252 2.0.0 aaaaaaaaaaaaaaaaaaaaaaaaaaaa

Footprinting del Servicio

Los scripts predeterminados de Nmap incluyen smtp-commands, que utiliza el EHLO comando para enumerar todos los comandos posibles que se pueden ejecutar en el servidor SMTP de destino
txt
sudo nmap 10.129.14.128 -sC -sV -p25

PORT   STATE SERVICE VERSION
25/tcp open  smtp    Postfix smtpd
|_smtp-commands: mail1.inlanefreight.htb, PIPELINING, SIZE 10240000, VRFY, ETRN, ENHANCEDSTATUSCODES, 8BITMIME, DSN, SMTPUTF8, CHUNKING,

Open-Relay

Para identificar el servidor SMTP de destino como un relé abierto utilizando 16 pruebas diferentes
txt
PORT   STATE SERVICE
25/tcp open  smtp
| smtp-open-relay: Server is an open relay (16/16 tests)
|  MAIL FROM:<> -> RCPT TO:<relaytest@nmap.scanme.org>
|  MAIL FROM:<antispam@nmap.scanme.org> -> RCPT TO:<relaytest@nmap.scanme.org>
|  MAIL FROM:<antispam@ESMTP> -> RCPT TO:<relaytest@nmap.scanme.org>
|  MAIL FROM:<antispam@[10.129.14.128]> -> RCPT TO:<relaytest@nmap.scanme.org>
|  MAIL FROM:<antispam@[10.129.14.128]> -> RCPT TO:<relaytest%nmap.scanme.org@[10.129.14.128]>
|_ MAIL FROM:<antispam@[10.129.14.128]> -> RCPT TO:<nmap.scanme.org!relaytest@ESMTP>

Enumerar usuarios con fuerza bruta

Se puede usar el modulo de metasploit smtp enum