Hacemos el escaneo de nmap: {{pasted_image_20230816112121.png|}} Vamos a ver la web que corre por el puerto 8080; y se trata de un tomcat donde vemos la versión: {{pasted_image_20230816112215.png|}} Si miramos por internet, vemos que tenemos un exploit para esta versión: {{pasted_image_20230816112319.png|}} Y aquí tenemos la PoC: {{pasted_image_20230816112501.png|}} Que nos lleva a este otro repositorio: {{pasted_image_20230816112516.png|}} Nos descargamos el exploit: {{pasted_image_20230816112539.png|}} Vemos en las instrucciones del exploit como usarlo, donde parece que podremos leer archivos internos de la máquina: {{pasted_image_20230816112650.png|}} Ejecutamos el comando exactamente igual a como vemos en las instrucciones: python2 CNVD-2020-10487-Tomcat-Ajp-lfi.py -p 8009 -f WEB-INF/web.xml 10.10.71.74 Y nos devuelve unas credenciales ssh: skyfuck:8730281lkjlkjdqlksalks {{pasted_image_20230816113647.png|}} Y conseguimos entrar: {{pasted_image_20230816123654.png|}} Dentro de este mismo directorio nos encontramos con dos archivos, donde el .asc es la clave que debo importar para abrir el credential.pgp: {{pasted_image_20230816123818.png|}} Una de ellas que podemos romper con john the ripper: {{pasted_image_20230816123850.png|}} Nos traemos ambos archivos a nuestra máquina local utilizando scp para enviárnoslo vía ssh: scp skyfuck@10.10.101.24:credential.pgp . scp skyfuck@10.10.101.24:tryhackme.asc . {{pasted_image_20230816124241.png|}} Ahora debemos ejecutar gpg2john del fichero tryhackme.asc para extraer el hash y poder crackearlo: gpg2john tryhackme.asc >> hash {{pasted_image_20230816124513.png|}} Y ahora si hacemos un ataque de fuerza bruta, vemos que nos extrae la contraseña, la cual es alexandru: {{pasted_image_20230816124606.png|}} Y ahora que ya tenemos la contraseña para desencriptar el tryhackme.asc, ya podemos usarla para abrir el credential.gpg, donde debemos de ejecutar los siguientes comandos: gpg --decrypt credential.pgp # Esto dará error. gpg --import tryhackme.asc # Importamos la clave. gpg --decrypt credential.pgp # Ahora ya no dará error. {{pasted_image_20230816124823.png|}} Y el resultado es el siguiente: merlin:asuyusdoiuqoilkda312j31k2j123j1g23g12k3g12kj3gk12jg3k12j3kj123j Al tener la contraseña del usuario merlin, podemos acceder a él: {{pasted_image_20230816124949.png|}} Y siendo este usuario vemos que podemos ejecutar zip como root: {{pasted_image_20230816125011.png|}} Por tanto, miramos en gtfobins y vemos esto al buscar por el binario zip: {{pasted_image_20230816125036.png|}} Ejecutamos la primera y segunda línea y ya somos root: {{pasted_image_20230816125200.png|}} Con el comando find buscamos las flags de user y root y las encontramos: {{pasted_image_20230816125323.png|}}