> 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/upload-write-up.md).

# Upload write-up

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

<figure><img src="/files/3yMYsnzZYRxKqHyOG1mj" alt=""><figcaption></figcaption></figure>

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

Usamos la herramienta **Nmap** para escanear los puertos abiertos con el siguiente comando:

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

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

El escaneo nos indica que el puerto 80 (HTTP) está abierto, así que ponemos la IP de la máquina víctima en el navegador y nos encontramos con un formulario de subida.

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

Por lo tanto, vamos a subir un archivo php que al ser ejecutado nos envié una shell inversa, para ello usaremos el código del siguiente repositorio de [Github](https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php) (recuerda poner la IP de la máquina atacante y el puerto donde se enviará la shell inversa).

<figure><img src="/files/5XDKAmmXw6KJ5Qy6T12p" alt=""><figcaption></figcaption></figure>

Una vez subido solo tendríamos que localizar donde esta y ejecutarlo después de ponernos en escucha. Así que vamos a usar la herramienta **Dirb** para encontrar rutas ocultas con el siguiente comando:

```bash
dirb http://172.17.0.2/
```

<figure><img src="/files/3fzT9eG5MOh9mlAUPAFf" alt=""><figcaption></figcaption></figure>

Esta herramienta nos indica la ruta `http://172.17.0.2/uploads/`, que es un directory lists donde se encuentran los archivos que se suben, así que la ponemos en el navegador y encontramos el archivo que habíamos subido.

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

Luego, nos ponemos en escucha por el puerto que habíamos puesto en el virus con el siguiente comando y hacemos clic el archivo subido y ya tendríamos acceso a máquina víctima:

```bash
sudo nc -nlvvp 444
```

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

## **Escalada de privilegios**

Una vez dentro de la máquina víctima ejecutamos el comando `sudo -l` que nos indica que podemos ejecutar el comando `env` como usuario root sin necesidad de contraseña.

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

Así que para obtener privilegios root ejecutaremos el siguiente comando:

```bash
sudo /usr/bin/env /bin/bash -p
```

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