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

# 🟩 WhereIsMyWebShell

🧠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%2FVTrJIZCPHWERl5hLDNTW%2Fimage.png?alt=media&amp;token=7a54ac10-c296-45b9-ab90-621470d22925" alt=""><figcaption></figcaption></figure>

Solo se encuentra el puerto del servicio web activo. Procedemos a realizar un escaneo de directorios:

{% 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%2FifuICWTrHPFCQc2pNZUy%2Fimage.png?alt=media&amp;token=4f56deb1-121d-4169-a5e7-b6958d3eb2ad" alt=""><figcaption></figcaption></figure>

Si entramos a la página `warning.html`, encontramos el siguiente mensaje:

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FzVUC7SYj7tkGYAsxKPER%2Fimage.png?alt=media&amp;token=5d1c2ce1-4278-457a-9c79-6d317874220e" alt=""><figcaption></figcaption></figure>

Tendremos que realizar un escaneo de parámetros en `shell.php` para ver qué parametro es el utilizado para la webshell.

{% code overflow="wrap" %}

```bash
ffuf -w /usr/share/wordlists/SecLists-2025.2/Discovery/Web-Content/burp-parameter-names.txt:FUZZ -u "http://$IPTARGET/shell.php?FUZZ=whoami" -mc 200
```

{% endcode %}

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2F8VwGep18cmZ0B4txdKU3%2Fimage.png?alt=media&amp;token=d1911cfe-6b1d-4a95-a7f7-00b79ab2713b" alt=""><figcaption></figcaption></figure>

Vemos que el parámetro es `parameter`. Con esto podemos ejecutar comandos en la máquina víctima.

## 🚪 Ganando acceso

Con burpsuite capturamos la petición e inyectamos el comando que nos ejecuta la reverse shell. En este caso he usado PHP con la herramienta [reverse shell generator](https://www.revshells.com/).

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FfifGN44TWgvWOJdmmjXo%2Fimage.png?alt=media&amp;token=fcf04934-2915-407c-a3e8-7991d4f923ee" alt=""><figcaption></figcaption></figure>

Nos ponemos a la escucha con `netcat` y mandamos la petición.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FkDemMg97bLV9eZuiMPjK%2Fimage.png?alt=media&amp;token=f9232377-dcc4-461a-9f2e-199f8f568b4d" alt=""><figcaption></figcaption></figure>

## 💥 Escalada de privilegios

Buscamos los ficheros .txt en el sistema. Encontramos un fichero en `/tmp/.secret.txt`:

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FbbsD6mbJFkxVxY0DnfRE%2Fimage.png?alt=media&amp;token=72f0a77b-aafb-43b9-9d92-d2b9820e3ac2" alt=""><figcaption></figcaption></figure>

Este fichero contiene la contraseña de `root`, por lo que nos da acceso directo.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FFGtWu0Hz6rFU48CKymBP%2Fimage.png?alt=media&amp;token=fd514112-20cc-4d0a-b8ca-2fff067caa18" alt=""><figcaption></figcaption></figure>
