# Find your style (Easy) - Dockerlabs

## Find Your Style

### Reconocimiento

#### Nmap

En primer lugar, escaneo con `nmap` los puertos abiertos buscando información que pueda ayudar a vulnerar la máquina

```bash
❯ nmap -p 0-65535 --open -T5 -A -sT -Pn -n 172.17.0.2 -oX nmapScan.xml && xsltproc nmapScan.xml -o nmapScan.html && open nmapScan.html &>/dev/null & disown
```

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

Solo hay un puerto y se trata de un servidor HTTP hecho en Drupal 8, un CMS escrito en PHP, la página contiene un `robots.txt` que deshabilita 22 entradas. Con `whatweb` saco más información sobre la página, efectivamente se trata de una web hecha en Drupal, así que lo siguiente va a ser buscar en metasploit.

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

### Explotación

Con `msfdb run` accedo a la consola y veo que el exploit 0 podría ser buena opción, así que lanzo `use 0` para poder rellenar la información necesaria para correr el exploit.

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

Con `set [OPCIÓN] [VALOR]` voy fijando los datos que el exploit requiere para correr y una vez todo está en orden lanzo `run`.

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

En unos segundos ya estoy dentro de la máquina, al hacer un `cat /etc/passwd` me fijo en el user `ballenita`, al que debo tratar de pivotar. Navego a `/var/www/html` y hago uso de la función `upload` de meterpreter para subir una reverse shell, a la cual hago una solicitud desde el navegador visitando la URL `http://IP/shell.php`, me pongo en escucha y me doy una shell que pueda sanitizar.

### Post explotación

Lo primero como siempre es sanitizar la shell. En primer lugar lo hice con

```
export SHELL=bash
export TERM=xterm
export TERM=xterm-256color
source /etc/skel/.bashrc
```

Pero me dió problemas en un paso posterior, así que utilicé este método

```
script /dev/null -c bash
## Aquí presionamos CTRL+Z
stty raw -echo; fg
>reset
>xterm
export TERM=xterm
export SHELL=bash
```

Después pasé un rato investigando hasta llegar a un archivo en `/var/www/html/sites/default` que contiene un archivo de configuración en el cual había credenciales del usuario ballenita, las cuales sirvieron para cambiar con `su ballenita`.

Para esta parte tuve que apoyarme un poco en el [writeup de d1se0](https://dise0.gitbook.io/h4cker_b00k/ctf/dockerlabs/findyoustyle-dockerlabs-easy), ya que no estaba seguro de como usar los binarios en los que el usuario ballenita tiene permisos SUDO, aunque es bastante evidente. La idea es hacer un `sudo ls` de la raíz, ahí hay un archivo con la passwd que podremos leer gracias a `grep`, una vez tenemos esa credencial, solo queda


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://galizaragozadev.gitbook.io/galizaragozadev-docs/writeups/dockerlabs/find-your-style-easy-dockerlabs.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
