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

# 🟩 ShowTime

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

## 🕵️ Reconocimiento

Comenzamos con un escaneo de puertos usando `nmap`:

{% code overflow="wrap" %}

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

{% endcode %}

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2F4IZCy7XR8a6Z6czflYbN%2Fimage.png?alt=media&amp;token=ce785f24-e3bc-44a5-b5af-c2461741c5e0" alt=""><figcaption></figcaption></figure>

Los únicos puertos abiertos son el del servicio web y el de SSH. Con un escaneo de directorios encontramos lo siguiente:

{% 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%2FstnYS8eL2qifl6WQBDSK%2Fimage.png?alt=media&amp;token=de5a305a-5bfe-4fef-a821-36bd9f75c7ae" alt=""><figcaption></figcaption></figure>

Si nos vamos al directorio `/login_page`, encontramos un formulario de inicio de sesión. Probando combinaciones típicas, como `admin:admin` o `admin:admin123`, no se obtiene nada. Si introducimos el caracter `'` en el campo de contraseña, obtenemos un mensaje de error de SQL, lo que nos indica que no está sanitizando correctamente la entrada y es muy probable que podamos aprovecharnos de un SQLI.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2F9YuGzNLje7NBL99q7wn0%2Fimage.png?alt=media&amp;token=1e2ba614-199e-4348-924c-9468b08b0edf" alt=""><figcaption></figcaption></figure>

Con `burpsuite` vemos que la petición POST del login se hace a `/login_page/auth.php`, con los campos `usuario` y `contraseña`.&#x20;

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FpZZq8kiiAGJPw1lO4k8a%2Fimage.png?alt=media&amp;token=de9a1228-5199-49ec-9c9a-1832abd22723" alt=""><figcaption></figcaption></figure>

Con `sqlmap` encontramos que el formulario es vulnerable a 3 tipos de SQLI, entre ellos, un time-based blind (relacionado con el nombre de la máquina).

{% code overflow="wrap" %}

```bash
sqlmap -u "http://172.17.0.2/login_page/auth.php" --data="usuario=admin&contraseña=admin" --batch --level=5 --risk=3 --dbs
```

{% endcode %}

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2F0m3IGrdWNbb4WitCNaBE%2Fimage.png?alt=media&amp;token=dfe3b3d0-162f-4955-8358-67b5ea30de06" alt=""><figcaption></figcaption></figure>

## 🚪 Ganando acceso

Primero, vemos el contenido de la base de datos `users`.

{% code overflow="wrap" %}

```bash
sqlmap -u "http://172.17.0.2/login_page/auth.php" --data="usuario=admin&contraseña=admin" --batch --level=5 --risk=3 -D users --tables
```

{% endcode %}

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FnvqZJf2S7HdApz0fy3QL%2Fimage.png?alt=media&amp;token=8e45ed76-1562-467f-8a28-03a00827b3a6" alt=""><figcaption></figcaption></figure>

Dentro de esta base de datos, vemos la única tabla llamada `usuarios`. Veamos qué hay dentro de esta tabla.

{% code overflow="wrap" %}

```bash
sqlmap -u "http://172.17.0.2/login_page/auth.php" --data="usuario=admin&contraseña=admin" --batch --level=5 --risk=3 -D users -T usuarios --dump
```

{% endcode %}

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FJiad9efPmHZklfXcBxl0%2Fimage.png?alt=media&amp;token=1ecb1564-7512-4d1e-9fe4-842054a9a7d1" alt=""><figcaption></figcaption></figure>

Podemos iniciar sesión con el último usuario de esta tabla, con las credenciales `joe:MiClaveEsInhackeable`. Accedemos a un panel donde podemos ejecutar código en python:

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2Fimo0OBP2ghUxjhVRWHIX%2Fimage.png?alt=media&amp;token=eb899b61-662b-4665-b149-3908f3798e4b" alt=""><figcaption></figcaption></figure>

Si introducimos un código en python para generar una reverse shell, podemos ganar acceso a la máquina.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FPNttC0NE1H19MhRTaV7b%2Fimage.png?alt=media&amp;token=7145d429-73cd-4b4e-a5a7-730deb8f3332" alt=""><figcaption></figcaption></figure>

## 💥 Escalada de privilegios

En el directorio `/tmp` se encuentra un fichero llamado `.hidden_text.txt`. El contenido de este fichero es una lista de trucos del San Andreas (qué recuerdos...).

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FSTmmUDQPQU6ZKRP9ERds%2Fimage.png?alt=media&amp;token=8637d09e-07e6-4fd2-bde1-b94eba8e525f" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FHGADGjlf7PO6tfI5U9yr%2Fimage.png?alt=media&amp;token=93963642-59d6-41ec-8676-d95f0a1be71e" alt=""><figcaption></figcaption></figure>

Esta lista probablemente sea una wordlist para acceder con alguno de los dos usuarios de la máquina (mirando el `/etc/passwd` sabemos los usuarios que hay). Probamos con `hydra` y no obtenemos nada.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FqwwhL3o7JSOBoYp61oyc%2Fimage.png?alt=media&amp;token=a2c813c9-b829-4814-93d7-4f181d573fa8" alt=""><figcaption></figcaption></figure>

Pasando la wordlist de mayúsculas a minúsculas, encontramos finalmente la contraseña del usuario `joe`.

{% code overflow="wrap" %}

```bash
tr 'A-Z' 'a-z' < wordlist > wordlist_lower
```

{% endcode %}

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FpbvpOVqlBIkEEi2w0hcF%2Fimage.png?alt=media&amp;token=4a65cc36-1d79-46ba-82a5-6a22ab6e69b4" alt=""><figcaption></figcaption></figure>

Una vez accedemos con este usuario, vemos los permisos que tenemos con `sudo`. Podemos ganar acceso directo al usuario `luciano`, ya que posh es un programa que nos habilita una shell, y podemos ejecutarlo como luciano sin necesidad de contraseña.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FVMM6UBrRfpn0CE0M1rlH%2Fimage.png?alt=media&amp;token=3638f76f-fcc0-4249-bab6-b20d78b238e8" alt=""><figcaption></figcaption></figure>

Con el usuario luciano vemos que tenemos permiso para ejecutar `/bin/bash /home/luciano/script.sh` como root sin introducir contraseñas.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FzVRt4WDKGEfVkwyCrkmv%2Fimage.png?alt=media&amp;token=34ac0550-8a39-4fbc-a81d-854fbffe9e51" alt=""><figcaption></figcaption></figure>

Si miramos el script, vemos que es una reverse shell (gracias).

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

Cambiamos la IP con `sed -i 's/192.168.1.100/172.17.0.1/' script.sh` y ejecutamos el script con sudo a la vez que estamos a la escucha en nuestra máquina atacante.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2F15uYEDahsJf1uezCAeZ2%2Fimage.png?alt=media&amp;token=5f5b58a0-0159-4be6-ab78-61933a2388a7" alt=""><figcaption></figcaption></figure>

Obtenemos acceso a la máquina víctima como root.
