# Escolares (Easy) - Dockerlabs

## Writeup

#### Reconocimiento

Comienzo por escanear con nmap los puertos abiertos para ver que vectores de ataque podemos aprovechar para vulnerar la máquina.

```shell
❯ nmap -p 0-65535 --open -T5 -A -sT -Pn -n 172.17.0.2 -oX nmapScan.xml && xsltproc nmapScan.xml -o nmapScan.html && open nmapScan.html &>/dev/null & disown
```

<figure><img src="/files/971fFhilUGDXnotOI0Oe" alt=""><figcaption></figcaption></figure>

A parte del SSH que hay en el puerto 22, no hay otra cosa que un servidor HTTP expuesto por el puerto 80, así que voy a echarle un vistazo al contenido de la página. La página tiene varios enlaces, pero es en su mayoría estática, es la web de una universidad de ciberseguridad, y tiene una serie de rutas como `/alumnado`, `/escolares` o `/carreras`, como digo todas ellas estáticas. La sección de contacto si tiene un formulario con varios inputs de texto que podría ser un vector. Inspeccionando el código doy con un comentario que revela una ruta con información relevante.

<figure><img src="/files/1OuVEKZZZ3Kd5IrfVfjL" alt=""><figcaption></figcaption></figure>

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

El último que se ve en la imagen es el que me interesa, ya que como se puede ver es el admin de wordpress. Al ir a `/wordpress` me encuentro con una página rota y sin ningún panel de login ni enlace funcional, después de un fuzzeo dentro de `/wordpress` llego a `/wp-login.php`. Usando `wpscan` enumero los usuarios que hay en la página.

```shell
❯ wpscan --url http://172.17.0.2/wordpress/ -e u

...

[+] luisillo
 | Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection)
```

#### Explotación

Después de perder un poco el tiempo me doy cuenta de que no me está haciendo las redirecciones y de que no funcionaban algunos enlaces porque no había configurado `/etc/hosts` como requiere este laboratorio, así que lo corrijo añadiendo a este archivo la ip y al lado el dominio que encontramos en el código fuente y al que apuntan las redirecciones: `escolares.dl`. Para ir cerrando frentes abiertos pruebo con el formulario de contacto pero mirando el código fuente veo que es atrezzo.

Creo que la información de la matrícula y fecha de nacimiento encontrada en `/profesores.html` puede ser útil, y lo lógico ahora sería confeccionar un diccionario custom para atacar de nuevo con `wpscan`, así que tras investigar un poco doy con un repositorio llamado [CUPP](https://github.com/Mebus/cupp/tree/master#), una herramienta escrita en python que genera archivos con combinaciones de datos como nombre, cumpleaños... Basadas en la información recopilada sobre un objetivo. Le paso el nombre, nick, fecha de nacimiento y matrícula, y me genera un archivo de texto con el que atacar de nuevo.

```
❯ wpscan --url http://escolares.dl/wordpress/wp-login.php -U luisillo -P luis.txt
```

Esta vez conseguimos dar con la clave generada por el creador de diccionarios.

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

Una vez dentro del panel de administrador de WordPress, simplemente voy al plugin File Manager, creo un archivo llamado `shell.php` y voy a revshells.com para utilizar la de PHP de Pentest Monkey. Con esto hecho, solo hace falta ponerse en escucha con `nc -nvlp 443` y entonces hacer una solicitud a `escolares.dl/wordpress/shell.php` y ya estamos dentro como `www-data`.

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

#### Post explotación

Lo primero una vez hemos ganado acceso es sanitizar la shell.

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

Nada más empezar a buscar doy con un archivo en `/home` llamado secret.txt, le hago un `cat` y revela una contraseña secreta, podría servir para un login de phpmyadmin que encontré antes en un fuzzeo o quizá para pivotar a otro usuario.

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

Efectivamente, la clave sirve para pivotar al usuario luisillo, puesto que la máquina tiene ssh voy a utilizar las credenciales para conectarme por ahí. Una vez autenticado como `luisillo`, pruebo en primer lugar a lanzar un `sudo -l`, y resulta que puedo ejecutar el binario `awk` como root, así que después de una búsqueda rápida en GTFObins el laboratorio queda resuelto.

<figure><img src="/files/gSgSTtDRoJiL9llah0dv" 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://galizaragozadev.gitbook.io/galizaragozadev-docs/writeups/dockerlabs/escolares-easy-dockerlabs.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.
