Hack the Box. Tutorial Tabby. RCE a Tomcat y elevación de privilegios a través de LXD



Sigo publicando soluciones enviadas a la finalización de máquinas desde el sitio HackTheBox .



En este artículo, obtengamos RCE en Tomcat, rompamos el archivo zip y elevemos los privilegios usando LXD.



Información organizacional
, , Telegram . , , .



. , - , .



Recon



Esta máquina tiene una dirección IP de 10.10.10.194, que agrego a / etc / hosts.



10.10.10.194 	tabby.htb


El primer paso es escanear los puertos abiertos. Hago esto usando el siguiente script, que toma un argumento: la dirección del host que se escanea:



#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)
nmap -p$ports -A $1






La elección es pequeña, comencemos con el puerto 80, donde el próximo sitio se encuentra con nosotros.







Mirando alrededor del sitio, notamos una forma interesante de mostrar noticias (con un toque de LFI).







Y también agregue otra entrada a / etc / hosts.



10.10.10.194    megahosting.htb


Comprobemos si LFI está disponible, yo uso LFISuite para eso.















Y encontramos a LFI. Como no obtenemos más, vayamos al puerto 8080. Allí nos recibe una página de la que nos enteramos de que se está utilizando Tomcat.







Llamamos su atención sobre un archivo interesante. Al hacer clic en otro enlace, aparece una ventana de autenticación HTTP. Leamos el archivo dado /usr/share/tomcat9/etc/tomcat-users.xml.







Y hay credenciales con las que podemos iniciar sesión. Desde aquí podemos obtener el RCE usando el módulo tomcat_mgr_deploy.







Establezcamos los parámetros requeridos.







Y obtenemos el error de ruta del archivo.



Punto de entrada



Después de deambular un poco, nos encontramos con la ayuda, que contiene el directorio de texto.











Muestremos este camino.







Y tenemos una sesión de meterpreter. Para realizar un reconocimiento rápidamente, coloquemos el script LinPEAS en el host y ejecútelo.







Al analizar cuidadosamente la salida, encontramos un archivo interesante.







USUARIO



Descárgalo e intenta abrirlo. Pero se nos pide una contraseña.











Intentemos repetirlo.



fcrackzip -D -p ../tools/rockyou.txt 16162020_backup.zip






Y encontramos la contraseña probable. No hay nada interesante en el archivo en sí, pero es una contraseña de un usuario creado en el sistema.







Para una conexión conveniente, creemos una clave SSH.







RAÍZ



Conectemos vía SSH usando una clave privada y veamos que el usuario está en el grupo lxd.







LXD es un administrador de contenedores del sistema. Ofrece una interfaz de usuario similar a las máquinas virtuales, pero en su lugar utiliza contenedores de Linux.



El kernel LXD es un demonio privilegiado que expone las API REST a través del socket Unix local, así como a través de la red si está configurado para hacerlo. Los clientes como la herramienta de línea de comandos proporcionada con LXD envían solicitudes a través de esta API REST. Esto significa que, independientemente de si está accediendo a localhost o de forma remota, todo funciona igual.



Pero podemos ejecutar comandos a través de él, es decir, como root. Para ello necesitaremos el siguiente software, descargue y compile las fuentes. Cargue la imagen resultante en el host remoto. Y después de la parte preparatoria, importamos nuestro archivo de imagen compatible con lxd.



lxc image import ./alpine-v3.12-x86_64-20200810_0015.tar.gz --alias ralf






Se nos dice que tenía que inicializarse primero, pero esto se puede hacer más tarde. Asegúrese de que la imagen esté cargada.



lxc image list






Ahora inicialicemos.







Creemos un contenedor con una imagen y un nombre.



lxc init ralf ignite -c security.privileged=true


Y estableceremos las configuraciones donde se montará el disco como / mnt / root.



lxc config device add ignite mydevice disk source=/ path=/mnt/root recursive=true


Lanzar y ejecutar.



lxc start ignite
lxc exec ignite /bin/sh






Y tenemos derechos de root.



Puedes unirte a nosotros en Telegram . Allí puede encontrar materiales interesantes, cursos filtrados y software. Reunamos una comunidad en la que haya personas con experiencia en muchas áreas de TI, entonces siempre podremos ayudarnos unos a otros en cualquier problema de TI y seguridad de la información.



All Articles