> 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-cheatsheet/enumeracion-ftp-21.md).

# Enumeración FTP (21)

## 📌 Metodología

1. **Detectar el servicio y su versión.**
2. **Probar acceso anónimo.**
3. **Realizar fuerza bruta (si el acceso anónimo falla).**
4. **(Opcional) Buscar vulnerabilidades asociadas.**

***

## 🧰 Herramientas Manuales

#### 🔎 1. Detección de versión del servicio FTP

```bash
nmap -sV -p 21 <IP>
# o escaneo más detallado:
nmap -p 21 -sV --script=ftp-* <IP>
```

También puedes conectarte directamente con `nc` o `telnet`:

```bash
nc <IP> 21
# o
telnet <IP> 21
```

Ejemplo de respuesta:

```bash
220 (vsFTPd 3.0.3)
```

***

#### 👤 2. Probar acceso anónimo

```bash
ftp <IP>
# Usuario: anonymous
# Contraseña: <ENTER>
```

Si se permite iniciar sesión como "anonymous", puedes listar archivos:

```bash
ls
get <archivo>
put <archivo>  # (si tiene permisos de escritura)
```

***

#### 🔐 3. Fuerza bruta de acceso (con Hydra o Medusa)

```bash
hydra -L <Diccionario Users> -P <Diccionario Password> ftp://<IP>
# Diccionario Users: /usr/share/metasploit-framework/data/wordlists/common_users.txt
# Diccionario Password: /usr/share/metasploit-framework/data/wordlists/unix_password.txt
```

***

## 🧰 Enumeración FTP con Metasploit

#### 1. Detectar la versión del servicio

```bash
use auxiliary/scanner/ftp/ftp_version
set RHOSTS <IP>
run
```

***

#### 2. Probar acceso anónimo

```bash
use auxiliary/scanner/ftp/anonymous
set RHOSTS <IP>
run
```

***

#### 3. Fuerza bruta de credenciales

```bash
use auxiliary/scanner/ftp/ftp_login
set RHOSTS <IP>
set USER_FILE /usr/share/metasploit-framework/data/wordlists/common_users.txt
set PASS_FILE /usr/share/metasploit-framework/data/wordlists/unix_password.txt
run
```
