# 25 - SMTP

## Nmap

Para facilitar información de este puerto puedes usar sus NSE's correspondientes

{% code overflow="wrap" %}

```
#opcion 1 - todos los que contengan *telnet* en el NSE
nmap -p 25 -sV --script=*smtp* IP

#opcion 2 - específicamente los siguientes
nmap -p 25 -sV --script=telnet-encryption,telnet-ntlm-info,telnet-brute IP
```

{% endcode %}

## Probar

### Comandos de SMTP

• HELO – Comando enviado por el cliente para identificarse. Ejemplo: HELO 192.168.101 or HELO [client.microsoft.com](http://client.microsoft.com).

• EHLO – Es similar al comando HELO. La diferencia se basa en comunicar al servidor que el cliente quiere usar el modo extendido de SMTP: ESMTP.

• STARTTLS – Emplear cifrado TLS para cifrar las comunicaciones pues por defecto SMTP se comunica en texto plano.

• RCPT TO – Especifica la dirección de correo del destinatario.

• DATA – Comienza la transferencia del contenido del mensaje.

• RSET – Resetear/abortar la comunicación..

• MAIL – Especifica la dirección de correo del remitente.

• QUIT – Cierra la conexión.

• HELP – Comando de ayuda para listar los comandos habilitados en el servidor.

• AUTH – Para autenticarse en el servidor.

• VRFY – Comando para preguntar al servidor si un correo esta disponible o registrado en el servidor.

### Conectar con el activo

```bash
root@miau# telnet IP 25
Trying ***...
Connected to ***.
Escape character is '^]'.
220 **************************************
quit
221 2.0.0 Bye
Connection closed by foreign host.
```

#### Usar Smtp-User-Enum

{% code overflow="wrap" %}

```bash
root@miau# smtp-user-enum -M VRFY -U /usr/share/wordlists/metasploit/unix_users.txt -t IP
```

{% endcode %}

#### Verificar si están habilitadas las comunicaciones internas

```bash
nc -nv IP 25
VRFY <user>

root@miau:~# nc IP 25
220 **************************************
HELO LOCALHOST
250 *****
VRFY postmaster
252 2.0.0 postmaster
MAIL from: postmaster
250 2.1.0 Ok
RCPT to: postmaster
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Email sent with no authorization
.
250 2.0.0 Ok: queued as 99A18407AA7F
```

### Tipos de pruebas

* Identificación del banner y búsqueda de posibles vulnerabilidades propias de la versión.

```
nv -vn IP 25
```

* Enumeración de usuarios.
* Fuerza bruta

```
hydra -l <username> -P <password_list> IP smtp://IP
```

* SMTP Relay
* Incorrecto control de acceso para poder enviar un correo suplantando el origen.

Opciones de obtener información si han dejado la configuración por defecto:

* Obtención del banner con la ejecución de Nmap.
* Al acceder al servidor mediante Telnet o netcat
* Metasploit cuenta con un módulo auxiliar: /scanner/smtp/smtp\_version

```
msf > use auxiliary/scanner/smtp/smtp_enum
msf > use auxiliary/scanner/smtp/smtp_version
```

## Máquinas resueltas que usan SMTP

* HTB
  * SneakyMailer

## Referencias

* <https://www.offensive-security.com/metasploit-unleashed/scanner-smtp-auxiliary-modules/>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki.securiters.com/securiters-wiki/puertos-and-servicios/25-smtp.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
