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

# 🟩 WalkingCMS

🧠Dificultad: Fácil | 🔓15/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%2FoaylX1IIDbPrns8825GX%2Fimage.png?alt=media&amp;token=d707117a-a920-460b-a6fd-64e3ac29cd43" alt=""><figcaption></figcaption></figure>

Vemos que solo está el puerto 80 activo (servicio web). Si realizamos un escaneo de directorios encontramos lo siguiente:

{% code overflow="wrap" expandable="true" %}

```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%2FGVIs2sKlGHFre4pEghRm%2Fimage.png?alt=media&amp;token=d7f12e64-4451-44c3-ad2d-b6a940c13ded" alt=""><figcaption></figcaption></figure>

Estamos ante un WordPress. Vamos a enumerarlo con la herramienta `wpscan`:

{% code overflow="wrap" %}

```bash
wpscan --url http://$IPTARGET/wordpress --enumerate --api-token <token>
```

{% endcode %}

Esta herramienta nos encuentra un usuario que podemos utilizar en un ataque de diccionario.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FCmIgRHYKpbnA1RsuGNr3%2Fimage.png?alt=media&amp;token=8b4be61d-96a8-403e-a871-7d0ae96c5b27" alt=""><figcaption></figcaption></figure>

Para realizar este ataque se ha utilizado la wordlist `rockyou.txt`.

{% code overflow="wrap" %}

```bash
wpscan --password-attack xmlrpc -t 20 -U mario -P /usr/share/wordlists/rockyou.txt --url http://$IPTARGET/wordpress
```

{% endcode %}

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FW3vIQYCNwMzJzQihl3U8%2Fimage.png?alt=media&amp;token=c8dd2936-2f3d-4541-bb5a-e9df3da14acf" alt=""><figcaption></figcaption></figure>

Encontramos una combinación para entrar al panel de WordPress: `mario:love`.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FSCrpd35gYuzHLwijpLEp%2Fimage.png?alt=media&amp;token=c059d75b-a07f-43f2-9c38-a1f88e5c2d32" alt=""><figcaption></figcaption></figure>

## 🚪 Ganando acceso

Una vez dentro, podemos modificar un fichero php de una plantilla de WordPress para inyectar una reverse shell. Cada vez que solicitemos ese recurso dentro del directorio `wp-content`, se ejecutará el código que nos da acceso a la máquina.

En este caso, voy a editar el fichero `index.php` de la plantilla `twentytwentytwo` para añadir la reverse shell de pentestmonkey.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FHSiQvwWFrg2R3M00emco%2Fimage.png?alt=media&amp;token=1df5f898-85c8-4fde-ad0b-fc844c10e3e5" alt=""><figcaption></figcaption></figure>

Una vez actualizado el recurso, lo solicitamos a través del siguiente enlace. Previamente, nos ponemos a la escucha con `netcat`.

```
http://172.17.0.2/wordpress/wp-content/themes/twentytwentytwo/index.php
```

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2F5vAbCoZQMCe9raxsI0NI%2Fimage.png?alt=media&amp;token=c0d84628-c221-4e01-ba8d-867d073f5032" alt=""><figcaption></figcaption></figure>

## 💥 Escalada de privilegios

Si buscamos los binarios con el bit SUID activado, encontramos uno potencialmente peligroso: `/usr/bin/env`. Con este binario podemos ejecutar cualquier comando o binario, y al tener el bit SUID activo, lo podemos hacer con los privilegios del propietario del archivo (`root`).

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FLuS7exeeVrFDpbk9lqtD%2Fimage.png?alt=media&amp;token=ed6208d8-8647-4418-ae22-450e5d11507e" alt=""><figcaption></figcaption></figure>
