> For the complete documentation index, see [llms.txt](https://b4zh.gitbook.io/b4zh/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://b4zh.gitbook.io/b4zh/metasploit-framework/explotacion-labs/explotacion-ftp-con-modulos-de-msf-proftpd.md).

# EXPLOTACIÓN FTP CON MÓDULOS DE MSF - PROFTPD

Con nmap scaneamos la máquina objetivo, la cual es MS3 Linux, en busca de vulnerabilidades, en este caso escaneamos el puerto 21 donde corre el servicio ftp, además activamos la detección de versiones y la ejecución de los scripts de la categoría default.

```bash
nmap -p21 -sVC 10.0.2.15
```

<figure><img src="https://2448382844-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FywHg0FIANmg3uxJJ9jhH%2Fuploads%2FswwkUC9iA1X4ncUIDDAL%2Fimagen.png?alt=media&amp;token=b29aa79a-aa55-41ef-afc0-03a683c3a958" alt=""><figcaption></figcaption></figure>

***

Como vemos, el servicio ftp que usa la máquina objetivo es ProFTPD en su versión 1.3.5, que si investigamos un poco encontraremos que tiene una vulnerabilidad conocida que permite una ejecución remota de comandos.

{% embed url="<https://www.exploit-db.com/exploits/49908>" %}

La vulnerabilidad está en el módulo mod\_copy del servicio ProFTPD, lo que nos permite copiar ficheros en el servidor proftpd, por ejemplo copiar un fichero como un payload en cualquier ubicación accesible en el sistema de archivos del servidor FTP.

Nosotros explotaremos la vulnerabilidad con `metasploit`, así que entramos a la `msfconsole` y buscamos un módulo compatible con la versión del servicio ftp.

```bash
msf > search ProFTPD 1.3.5
```

<figure><img src="https://2448382844-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FywHg0FIANmg3uxJJ9jhH%2Fuploads%2FFgUYQOdPmApoWW8vsaQs%2Fimagen.png?alt=media&amp;token=53b9cddd-9cfc-45a0-b074-5ad6b05e62c1" alt=""><figcaption></figcaption></figure>

***

Muy bien, como vemos existe un módulo exploit compatible con el servicio ftp vulnerable.

Así que elegimos el módulo y consultamos las opciones que podemos configurar.

```bash
msf > 0
msf exploit (unix/ftp/proftpd_modcopy_exec) > options
```

<figure><img src="https://2448382844-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FywHg0FIANmg3uxJJ9jhH%2Fuploads%2FVSMnfL12Yyg0rdT9WXXD%2Fimagen.png?alt=media&amp;token=ea443ca1-d28f-451c-82d8-85dbb1a9af5a" alt=""><figcaption></figcaption></figure>

***

Configuramos la ip de la máquina objetivo.

```bash
msf exploit (unix/ftp/proftpd_modcopy_exec) > setg rhosts 10.0.2.15
```

Configuramos la variable sitepath, en la cual va ir la ruta en donde el exploit va a copiar el payload.

Hay que seleccionar una ubicación donde el exploit pueda meter el payload, esta ruta puede ser:

```
/var/www/html
```

Elegimos esta ruta porque si escaneamos el puerto 80 de la máquina objetivo, veremos que está corre un servicio web. Y el directorio antes mencionado es el que generalmente se usa para almacenar todo el sistema de archivos que se va a servir por el servidor web

Así que esta ruta es la que probablemente nos sirva para la copia y la ejecución de ficheros, además este directorio es accesible a traves del sistema de archivos del servidor FTP.

```bash
msf exploit (unix/ftp/proftpd_modcopy_exec) > set sitepath /var/www/html
```

<figure><img src="https://2448382844-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FywHg0FIANmg3uxJJ9jhH%2Fuploads%2FxUjneRVpFWo8XVNYCQ0C%2Fimagen.png?alt=media&amp;token=91eb288c-0513-4eb9-9c97-a5407694c4c3" alt=""><figcaption></figcaption></figure>

***

<figure><img src="https://2448382844-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FywHg0FIANmg3uxJJ9jhH%2Fuploads%2F4129naiOJAcG7est8Qd4%2Fimagen.png?alt=media&amp;token=7e2c26a7-d10d-4fb5-ac13-50bd903892be" alt=""><figcaption></figcaption></figure>

Ahora como vemos el payload por defecto que nos pone MSF es uno que usa netcat para ejecutar la reverse shell, pero en este caso nosotros usaresmos otro payload. Así que buscamos un payload compatible.

```bash
msf exploit (unix/ftp/proftpd_modcopy_exec) > show payloads
```

<figure><img src="https://2448382844-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FywHg0FIANmg3uxJJ9jhH%2Fuploads%2FVZ00cwAimaXisXAhaH6A%2Fimagen.png?alt=media&amp;token=a7508694-b131-4a05-ae22-664ab2ee5294" alt=""><figcaption></figcaption></figure>

En este caso usaremos el payload escrito en perl, porque la máquina objetivo MSF Linux cuenta con perl instalado.

```bash
msf exploit (unix/ftp/proftpd_modcopy_exec) > use 10
```

<figure><img src="https://2448382844-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FywHg0FIANmg3uxJJ9jhH%2Fuploads%2FZDc90pAE9TFVH0RTfi05%2Fimagen.png?alt=media&amp;token=06bae626-80b0-4fc6-83f8-f13492f858ed" alt=""><figcaption></figcaption></figure>

Verifcamos que la dirección ip en donde se va a recibir la shell reversa sea la de nuestra máquina, y el puerto puedes cambiarlo por otro, pero en este caso lo dejamos así.

Y ejecutamos el exploit con el comando `exploit`, porque estamos usando un payload y necesitamos gestión de sesiones.

<figure><img src="https://2448382844-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FywHg0FIANmg3uxJJ9jhH%2Fuploads%2FWUVeExoIwjg4kapGssGr%2Fimagen.png?alt=media&amp;token=e64666d6-1acd-458a-a76b-7f801947fa9f" alt=""><figcaption></figcaption></figure>

Como resultado obtendremos una shell para interectuar con la máquina objetivo, es decir, la máquina ha sido vulnerada, wazza.

Entonces lo que hizo el exploit es:

* Explotar la vulnerabiliad.
* Inyectar el payload
* Obtener una reverse shell.

***

> LO MEJOR SIEMPRE ES HACER UNA EXHAUSTIVA ENUMERACIÓN PARA DETERMINAR CUÁL PAYLOAD ES EL ADECUADO, PARA QUE SE EJECUTE CORRECTAMENTE EN EL SISTEMA VÍCTIMA.

> RECUERDA SIEMPRE USAR EL PENSAMIENTO LATERAL Y PENSAR FUERA DE LA CAJA
