> For the complete documentation index, see [llms.txt](https://wiki.securiters.com/securiters-wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.securiters.com/securiters-wiki/write-ups/proving-grounds/tre.md).

# Tre

Write-up de la máquina Tre de Proving Grounds #writeup #walkthrough

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FAqrOOPv48RZ921C03gll%2FSQL%20injection%20vulnerability%20in%20WHERE%20clause%20allowing%20retrieval%20of%20hidden%20data%20(4).png?alt=media&amp;token=ef9e46e4-b0d3-49ee-bd2a-48bc06be698b" alt=""><figcaption></figcaption></figure>

## Enumeración

### Servicios abiertos

Vamos a comenzar la resolución del CTF Tre, enumerando que puertos tiene abiertos esta máquina. Comenzamos con una enumeración rápida de los servicios.

```
nmap -p- --open --min-rate 1000 -Pn -n -vvv 192.168.84.84 
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fz0YzA29aKFqOCWUZgL7g%2Fimage.png?alt=media&amp;token=66417915-8a06-4916-bc37-95330f669e57" alt=""><figcaption></figcaption></figure>

Tres puertos abiertos: 22, 80 y 8082. El siguiente paso será la enumeración profunda de estos servicios. Esto lo hacemos de la siguiente forma:

```
nmap -p22,80,8082 -Pn -n -sVC -vvv 192.168.84.84 
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FDq5JFZuhdCPmVNsc2vm7%2Fimage.png?alt=media&amp;token=17d6bc73-caf7-4f4e-8de7-809a9208d1c0" alt=""><figcaption></figcaption></figure>

Servicios abiertos:

* Puerto 22 -> SSH -> OpenSSH 7.9
* Puerto 80 -> HTTP -> Apache httpd 2.4.38
* Puerto 8082 -> HTTP -> nginx 1.14.2

### Enumeración Web

La máquina Tre ejecuta dos servicios http, en el puerto 80 y 8082. Vamos a comenzar enumerando el puerto 80.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FKgP9rRLcIKBLQS4D0rZU%2Fimage.png?alt=media&amp;token=b52e21b8-eb0f-4660-93db-74eb21730add" alt=""><figcaption></figcaption></figure>

Consultando el contenido del puerto 8082, vemos la misma imagen.&#x20;

Vamos a continuar enumerando directorios y archivos. Esto vamos a hacerlo con la herramienta feroxbuster.

```
feroxbuster -u http://192.168.84.84:80 -s200,301 -x html,txt,php -w /usr/share/wordlists/dirb/big.txt
```

Después de un momento, encontramos dos resultados que pueden ser interesantes.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FO6T37SmYCocvBVsFn9r9%2Fimage.png?alt=media&amp;token=1a9c920d-77da-4369-8d85-462398c50a69" alt=""><figcaption></figcaption></figure>

En adminer.php, encontramos un formulario de inicio de sesión para lo que parece una base de datos.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F9AQ6QQDV4hIfCjytyTha%2Fimage.png?alt=media&amp;token=6a804c70-7472-41d5-a1ea-256f035e7a2c" alt=""><figcaption></figcaption></figure>

Vamos a volver a enumerar para el directorio "/mantisbt".

```
feroxbuster -u http://192.168.84.84/mantisbt -s200,301 -x html,txt,php -w /usr/share/wordlists/dirb/big.txt
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FXwUwzt2eSZEiaq8JnmdQ%2Fimage.png?alt=media&amp;token=99645dea-9dd5-4797-9efc-23262204d649" alt=""><figcaption></figcaption></figure>

Encontramos un directorio /config, que puede contener información interesante.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FayWz1DIaHChvWMjXEz5K%2Fimage.png?alt=media&amp;token=2b48e779-9e32-4fd3-9c14-b9cb02f6acad" alt=""><figcaption></figcaption></figure>

Encontramos unas credenciales en el archivo "a.txt". Vamos a probarlas en el formulario que encontramos anteriormente.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FkeuorppQpN9bFtmJ7MLj%2Fimage.png?alt=media&amp;token=b4eef017-57be-4ac7-9c24-48f2619ca3c0" alt=""><figcaption><p>mantissuser:password@123AS</p></figcaption></figure>

Estas credenciales nos permiten acceder a la base de datos del sitio Web.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FPCY2XgMT1injKzcBy9pL%2Fimage.png?alt=media&amp;token=6b57ae10-dc96-409f-b748-1d156d06a19b" alt=""><figcaption></figcaption></figure>

Vamos a buscar credenciales de usuarios en la base de datos.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fvj6p7JVoFjrZDDrubj5Y%2Fimage.png?alt=media&amp;token=073e5896-4ec4-46ff-adda-1fef6caa076f" alt=""><figcaption></figcaption></figure>

## Explotación

Encontramos credenciales para el usuario administrator y tre. Probamos estas credenciales en el formulario de inicio de sesión <http://192.168.84.84/mantisbt/login_page.php> pero no son válidas. Recordamos que encontramos el puerto 22 abierto durante la enumeración inicial de puertos.

Las credenciales del usuario "tre" son válidas para iniciar sesión a través de SSH.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FvygM3MaC360rjvwRRzR0%2Fimage.png?alt=media&amp;token=66e89388-783c-4c5a-ba01-1ac9fa673570" alt=""><figcaption></figcaption></figure>

El siguiente paso será la búsqueda de la flag local.txt

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fy2Wqsqq5DKKGc3G51BNA%2Fimage.png?alt=media&amp;token=5b3a3b25-beba-44c7-9462-198c4f2b80ac" alt=""><figcaption></figcaption></figure>

## Elevación de privilegios

Comenzamos enumerando que puede ejecutar el usuario "tre" con privilegios elevados sin necesidad de contraseña.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FOtIIIOzMdkISJ1Co7Bs6%2Fimage.png?alt=media&amp;token=8a7dbf53-068f-42ec-89b5-21fee0d42c6c" alt=""><figcaption></figcaption></figure>

El usuario tre puede ejecutar /sbin/shutdown en la máquina sin contraseña pero si lo ejecutamos, mataremos la sesión así que no es buena idea.&#x20;

Vamos a enumerar vectores posibles de elevación de privilegios utilizando la herramienta LinPeas.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FwH8aStp7cXnaFWk9vlUb%2Fimage.png?alt=media&amp;token=e9986448-7224-41f6-8fdc-670e3b0a52b9" alt=""><figcaption></figcaption></figure>

Encontramos el siguiente ejecutable que puede ser interesante. Veamos su contenido.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FeEdiPeJSzr4H5rcjbC2z%2Fimage.png?alt=media&amp;token=d07ff7d1-bf0b-4990-8fea-fee040231bae" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FAUHVwYfJIQkhRj4XdMA5%2Fimage.png?alt=media&amp;token=8c282952-6f98-4729-8421-38620e876d1f" alt=""><figcaption></figcaption></figure>

El usuario "root" es el propietario del archivo con permiso de lectura y escritura para todos.

Este script realiza una verificación del sistema en cada reinicio. Podemos tratar de añadir contenido a este archivo que queramos que se ejecute al inicio del sistema. Debido a que se ejecuta como root y podemos reiniciar la máquina, podemos agregar permisos SUID a un binario arbitrario, como /usr/bin/find. Podemos agregar la siguiente instrucción al archivo.

```
chmod +s /usr/bin/find 
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FqP509eLNcRA64vwO9UV1%2Fimage.png?alt=media&amp;token=3f7a6bd7-7c23-49d2-9bf6-29cf8f3e1192" alt=""><figcaption></figcaption></figure>

El siguiente paso será reiniciar el sistema.

```
sudo shutdown -r now
```

Una vez reiniciada la máquina, vamos a consultar que archivos tiene activo el bit SUID.&#x20;

```
find / -perm -u=s -type f 2>/dev/null
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FMubHiLUbekOVjBjiMNzG%2Fimage.png?alt=media&amp;token=22a7871f-b97c-4106-90e7-f8fceae71e89" alt=""><figcaption></figcaption></figure>

Ahora consultamos en GTFOBins como elevar privilegios utilizando este binario.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F8oigOSSZUCKFXD1PAccG%2Fimage.png?alt=media&amp;token=841e69ca-37a4-447e-8401-72c0ffb8bb7c" alt=""><figcaption></figcaption></figure>

```
./find . -exec /bin/sh -p \; -quit
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FGPw2MZkLkN1dmZDclcmW%2Fimage.png?alt=media&amp;token=54e89c97-cd48-45ce-9b85-67914a51dcdf" alt=""><figcaption></figcaption></figure>

Y obtenemos privilegios máximos dentro de la máquina objetivo. Solo quedará buscar la fla proof.txt.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FxX2Cfn98IrxLRak4H1R6%2Fimage.png?alt=media&amp;token=67191356-8814-42b3-82e5-34ad872daab3" alt=""><figcaption></figcaption></figure>

{% embed url="<https://www.youtube.com/watch?v=bHeSn3uDKwo>" %}

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FJlSkew9YBZouDHuaKSc1%2Fimage.png?alt=media&amp;token=5f2b2f35-a26e-44c9-937f-4de30e91f0d8" alt=""><figcaption></figcaption></figure>
