# Tre

<figure><img src="/files/Ef4dhUyVw0dtLw22FApM" 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="/files/ZIyVk3BgGABBRB9M5bIa" 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="/files/gG7Fzp4De0yxS40nFrUs" 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="/files/NrvKUyUuwwswC5XyufS6" 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="/files/HnlbqiQR8BhqZr74UuiA" 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="/files/UmDDQBrPc5TSBpxs1cHx" 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="/files/piZb33Lz5T2i3BpXKMM5" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/weisF5bQF4jCxy3XPWSL" 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="/files/RRf2G1ILCpq3DDGVD7kx" 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="/files/TwcwzCs8qJnIglC9pd0Y" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/yGUL9Qa9hNuGoMlfYWTb" 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="/files/i6MZy5bvif1Lmgz7DI1b" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/fh7dqMar1wEesqbCJrzR" 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="/files/M2nWMYnVmqPEG9raMrim" 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="/files/EtJSvxTxRgQcWNJfz7nv" alt=""><figcaption></figcaption></figure>

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

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

<figure><img src="/files/EZU5DPgPcKmpj8LrCBhk" 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="/files/VO8jRZGjIB4tIKPM6bgX" 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="/files/7RAdt2Csx1IXYeAiR5wv" alt=""><figcaption></figcaption></figure>

Ahora consultamos en GTFOBins como elevar privilegios utilizando este binario.

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

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

<figure><img src="/files/IshX4bkrX27Y41xax5cs" 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="/files/AL8q6dJobq90B2W3X4Db" alt=""><figcaption></figcaption></figure>

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

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki.securiters.com/securiters-wiki/write-ups/proving-grounds/tre.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
