TomGhost es una maquina de TryHackMe. Identificamos una vulnerabilidad en Tomcat para leer las credenciales de esta misma plataforma, lo que nos permitio acceder por SSH donde luego encontramos un archivo encriptado y, que, con la ayuda de John obtuvimos la contraseña para un segundo usuario. Escalamos privilegios utilizando Sudo con Zp e informacion de GTFOBins.
Room
Titulo | tomghost |
---|---|
Descripción | Identify recent vulnerabilities to try exploit the system or read files that you should not have access to. |
Puntos | 810 |
Dificultad | Facil |
Maker |
NMAP
Escaneo de puertos tcp, nmap nos muestra el puerto http (8080), ajp13 (8009) y el puerto ssh (22) abiertos.
|
|
GOBUSTER
Utilizamos gobuster para busqueda de directorios y archivos.
|
|
HTTP Puerto 8080
Encontramos Apache Tompact en el puerto 8080.
AJP - Ghostcat File Read/Inclusion
Para el servicio en el puerto 8009 (Apache Jserv) encontramos un exploit que permite lectura de archivos, utilizamos el exploit CVE-2020-1938. Intentamos leer el archivo index.jsp
y logramos obtener el codigo fuente.
Ya que logramos obtener el codigo fuente de index.jsp
, intentamos obtener el archivo de configuracion web.xml
, logramos obtener el codigo fuente y logramos ver lo que parecen credenciales.
USER - SKYFUCK
Intentamos ingresar en el panel de tomcat (/manager/html
) pero no esta autorizado el acceso. Utilizamos el servicio SSH con las credenciales encontradas y logramos obtener una shell.
Dentro de la carpeta principal de Skyfuck encontramos dos arhivos una clave y un archivo encriptado, intentamos importar la key y desencriptar el archivo gpg pero al parecer la clave esta protegida por una frase.
Utilizamos gpg2john para generar el hash y utilizar john para encontrar la frase.
Una vez encontrada la frase utilizamos esta para desencriptar el archivo credentials.gpg
.
USER - MERLIN
Utilizamos las credenciales encontradas y obtenemos una shell con el usuario merlin y nuestra flag user.txt.
PRIVILEGE ESCALATION
Hacemos una pequeña enumeracion con sudo -l -l
y vemos que tenemos permisos root (sudo) para ejecutar el comando zip
. Utilizamos zip para obtener una shell root.
Logramos obtener una shell con usuario root y nuestra flag root.txt.