> For the complete documentation index, see [llms.txt](https://propus.gitbook.io/hackbook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://propus.gitbook.io/hackbook/writeups/dockerlabs/whoiam.md).

# 🟩 Whoiam

🧠Dificultad: Fácil | 🔓16/02/2026

## 🕵️ Reconocimiento

Comenzamos con un escaneo de puertos con `nmap`:

```bash
nmap -sC -sV -Pn $IPTARGET | tee nmap
```

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2F7mfNUKPBX99TNntHyuq3%2Fimage.png?alt=media&amp;token=e386235c-c574-45d3-906a-9771529bcec5" alt=""><figcaption></figcaption></figure>

Vemos que solo está abierto el puerto 80 con un WordPress. Hacemos un escaneo de directorios con `ffuf`:

{% code overflow="wrap" %}

```bash
ffuf -w /usr/share/wordlists/SecLists-2025.2/Discovery/Web-Content/directory-list-2.3-medium.txt:FUZZ -u "http://$IPTARGET/FUZZ" -e .html,.php,.txt,.xml,.js
```

{% endcode %}

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2Fb42ZEkWI5eHEXaeDYE45%2Fimage.png?alt=media&amp;token=84ef9156-9e71-4fdd-b342-9e481810de67" alt=""><figcaption></figcaption></figure>

Vemos un directorio que nos llama la atención: `/backups`.&#x20;

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2Ff65aAJXet1VeyZ4wNCT1%2Fimage.png?alt=media&amp;token=8df811c7-a290-4caf-a1be-c81aca609ecd" alt=""><figcaption></figcaption></figure>

Descargamos el zip y lo extraemos en nuestra máquina. Vemos que contiene un fichero con credenciales.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FJlZmKRBkyoZKw1QZy2Ei%2Fimage.png?alt=media&amp;token=ee300f34-0f99-45b0-840d-4e0e36039da3" alt=""><figcaption></figcaption></figure>

Probamos estas credenciales en el panel de WordPress y obtenemos acceso al panel de administrador.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FuUImmZ6m5wgKS2Z2XDR1%2Fimage.png?alt=media&amp;token=b69732a2-d079-4f55-b5d7-ca4747fc8d65" alt=""><figcaption></figcaption></figure>

Si echamos un vistazo a la versión de los plugins, encontramos un plugin que es vulnerable (`Modern Events Calendar 5.16.2`):

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FWjvDV9cFSi1h6PGDbiGE%2Fimage.png?alt=media&amp;token=a580c8c5-14db-43d2-a88d-17102370d6c1" alt=""><figcaption></figcaption></figure>

Vemos un RCE que necesita autenticación (la tenemos).

## 🚪 Ganando acceso

Configuramos metasploit para usar el exploit.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FSu3uoNagDj0uwLgQmmNP%2Fimage.png?alt=media&amp;token=b8dc8602-ea97-46f6-a8dc-5713e995d795" alt=""><figcaption></figcaption></figure>

Una vez tenemos todo configurado, conseguimos una sesión de meterpreter y abrimos una shell.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FThfm2HAjEOuaVTrkGlt6%2Fimage.png?alt=media&amp;token=7f1aaf46-2db5-4ea4-9ba4-018efe504fde" alt=""><figcaption></figcaption></figure>

## 💥 Escalada de privilegios

Una vez dentro de la máquina, vemos los permisos que tenemos con sudo con el usuario `www-data`:

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FnoVmNmSZ64hhUMvXlOMc%2Fimage.png?alt=media&amp;token=41f54bd0-04a6-41cf-85cb-0648a67514ad" alt=""><figcaption></figcaption></figure>

Podemos usar el binario `/usr/bin/find` como `rafa` sin necesidad de contraseña para conseguir una shell con el parámetro `-exec`:

```bash
find . -exec /bin/sh \; -quit
```

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FrlkG80JUJ2RCF6Iv95k7%2Fimage.png?alt=media&amp;token=937e32e2-bcb3-400a-8021-157b3e80c91b" alt=""><figcaption></figcaption></figure>

Como `rafa` volvemos a ver los permisos con `sudo`:

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FwaNXoh2DzvMyd1VcnSLR%2Fimage.png?alt=media&amp;token=e9489acb-fd86-4fab-96a8-57493ab0e37c" alt=""><figcaption></figcaption></figure>

Tenemos permisos para ejecutar `/usr/sbin/debugfs` como `ruben` sin contraseña. En [gtfobins](https://gtfobins.org/gtfobins) vemos un exploit que podemos usar para conseguir una shell.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FYEAuzfV0AX8mKr9W4WXt%2Fimage.png?alt=media&amp;token=9e9d0d64-ce35-4878-829c-85688cc83bf8" alt=""><figcaption></figcaption></figure>

De nuevo, vemos los permisos que tenemos con `ruben`. Podemos ejecutar `/bin/bash /opt/penguin.sh` como `root` sin necesidad de contraseña. El script no lo podemos modificar porque no tenemos permisos de escritura en él.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FkD9sprjW00kzr9IEpXG5%2Fimage.png?alt=media&amp;token=c4aeec20-ede7-428b-9ca8-0e009ae6b2e0" alt=""><figcaption></figcaption></figure>

Si introducimos como variable `a[$(/bin/bash >&2 1>&2)]`, lo que va a hacer el intérprete es intentar calcular la dirección de un array (el array `a[]`). Para ello, va a evaluar lo que hay dentro de la expresión `$()`, que corresponde a un bash.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2F9wz4s08izEBm7EtJ3ssP%2Fimage.png?alt=media&amp;token=2f24be3f-7161-41f9-af32-3398464045c0" alt=""><figcaption></figcaption></figure>
