> For the complete documentation index, see [llms.txt](https://4lec4st.gitbook.io/4lec4st/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://4lec4st.gitbook.io/4lec4st/ejpt-notes/pruebas-de-penetracion-de-host-y-red/metasploit-framework-msf/recopilacion-y-enumeracion-de-informacion/enumeracion/enumeracion-de-smtp-25.md).

# Enumeración de SMTP (25)

### 📧 Enumeración de SMTP

* **SMTP (Simple Mail Transfer Protocol)** es un protocolo de comunicación utilizado para la **transmisión de correos electrónicos** entre servidores.
* Por defecto, **SMTP usa el puerto TCP 25**, aunque también puede encontrarse en los puertos **465 (SMTP sobre SSL)** y **587 (SMTP autenticado)**.
* Podemos utilizar **módulos auxiliares de Metasploit** para:

  * Enumerar la **versión del servidor SMTP**.
  * Enumerar **usuarios** existentes en el sistema de destino (si está mal configurado y responde a comandos como `VRFY` o `EXPN`).

***

## 🧪 Laboratorio Práctico

**Paso 1:** Abra el enlace del laboratorio para acceder a la máquina Kali.

<figure><img src="/files/90nEP1Lt6eJs6RkiXckQ" alt=""><figcaption></figcaption></figure>

**Paso 2:** ¿Cuál es el nombre del servidor SMTP y el banner?

**Respuesta:**

```
Server: Postfix
Banner: openmailbox.xyz ESMTP Postfix: Welcome to our mail server.
```

**Dominio:**

```
nmap -sV -script banner demo.ine.local
```

<figure><img src="/files/AxXtZmfXq5BOUXnbGHWX" alt=""><figcaption></figcaption></figure>

**Paso 3:** Conéctese al servicio SMTP utilizando netcat y recupere el nombre de host del servidor (nombre de dominio).

**Respuesta:**

```
openmailbox.xyz
```

**Dominio:**

```
nc demo.ine.local 25
```

<figure><img src="/files/nu8ppa1FU61WIpZMFKOa" alt=""><figcaption></figcaption></figure>

**Paso 4:** ¿Existe el usuario "admin" en el servidor? Conéctese al servicio SMTP mediante netcat y compruébelo manualmente.

**Respuesta:**

```
Yes
```

**Dominio:**

```
VRFY admin@openmailbox.xyz
```

<figure><img src="/files/DjrC5pTGVnynmlnfLO2v" alt=""><figcaption></figcaption></figure>

**Paso 5:** ¿Existe el usuario "commander" en el servidor? Conéctese al servicio SMTP mediante netcat y compruébelo manualmente.

**Respuesta:**

```
No
```

**Dominio:**

```
VRFY commander@openmailbox.xyz
```

<figure><img src="/files/AkCS0DzvpCQZgPgOuVU9" alt=""><figcaption></figcaption></figure>

**Paso 6:** ¿Qué comandos se pueden usar para comprobar los comandos/capacidades compatibles? Conéctese al servicio SMTP mediante Telnet y compruébelo.

**Comandos:**

```
telnet demo.ine.local 25
HELO attacker.xyz
EHLO attacker.xyz
```

<figure><img src="/files/HN4JSR7S43h1eknRZues" alt=""><figcaption></figcaption></figure>

**Paso 7:** ¿Cuántos nombres de usuario comunes del diccionario /usr/share/commix/src/txt/usernames.txt existen en el servidor? Utilice la herramienta smtp-user-enum para esta tarea.

**Respuesta:**

```
8
```

**Dominio:**

```
smtp-user-enum -U /usr/share/commix/src/txt/usernames.txt -t demo.ine.local
```

<figure><img src="/files/1gPw6zN5dgLqcMJUGgrd" alt=""><figcaption></figcaption></figure>

**Paso 8:** Determine cuántos nombres de usuario comunes del diccionario /usr/share/metasploit-framework/data/wordlists/unix\_users.txt existen en el servidor. Utilice el módulo de Metasploit adecuado para esta tarea.

**Respuesta:**

```
20
```

**Comandos:**

```
msfconsole -q
use auxiliary/scanner/smtp/smtp_enum
set RHOSTS demo.ine.local
exploit
```

<figure><img src="/files/fFNqFOH8exgjbHHQQWiW" alt=""><figcaption></figcaption></figure>

**Paso 9:** Conéctese al servicio SMTP usando telnet y envíe un correo falso al usuario root.

**Comandos:**

```
telnet demo.ine.local 25
HELO attacker.xyz
mail from: admin@attacker.xyz
rcpt to:root@openmailbox.xyz
data
Subject: Hi Root
Hello,
This is a fake mail sent using telnet command.
From,
Admin
.
```

**Nota:** Hay un punto (.) en la última línea que indica la terminación de los datos.

<figure><img src="/files/UN3OzNsWE1lSqFrlrDvI" alt=""><figcaption></figcaption></figure>

**Paso 10:** Envíe un correo falso al usuario root usando el comando sendemail.

**Dominio:**

```
sendemail -f admin@attacker.xyz -t root@openmailbox.xyz -s demo.ine.local -u Fakemail -m "Hi root, a fake from admin" -o tls=no
```

<figure><img src="/files/489pOp3h4pSgsaDxBBVK" alt=""><figcaption></figcaption></figure>

## Conclusión

En este laboratorio, analizamos los conceptos básicos del reconocimiento del servidor SMTP Postfix.
