Tony The Tiger - Java serialisation attack
Datos Generales
- URL: https://tryhackme.com/r/room/tonythetiger
- Dificultad: Fácil
- Flags: Usuario y Root
- Aprendizaje: Explotación con metasploit, criptografía y esteganografía
Conocimientos iniciales
Serialización
La serialización, en sentido abstracto, es el proceso de convertir objetos en bytes, para luego transmitirlos por la red. Posteriormente este flujo de bytes se convierten nuevamente en objeto. Esta conversión final se conoce como desserialización. Información ampliada en el siguiente enlace: Serialización de objetos en java

El CTF
Reconocimiento
Al iniciar el proceso de reconocimiento es común realizar la enumeración de puertos, el scaneo de directorios y de subdominios, entre otras pruebas según presente la aplicación web obejtivo. En el caso de este ctf se obtuvo resultados de ínteres mediante el scaneo de puertos. La herramienta utilizada para ello fue nmap. El resultado muestra que el puerto 8080 se encuentra habilitado para desplegar un servicio http. El mismo funciona utilizando la tecnología Apache / Coyote JSP.

Ingresando por el puerto 8080 se reconoce que la aplicación JBoss se utiliza para el front-end.

Primera Flag
Además, se pudo identificar que existe una imagen en la web, la misma se encuentra almacenada en imgur y se puede observar que contiene un mensaje oculto utilizando la herramienta strings.


Segunda Flag
Luego de obtener la primera flag, realizamos la explotación de la vulnerabilidad jboss reconocida anteriormente. Para ello descargamos el exploit desde github: https://github.com/joaomatosf/jexboss. fijamos la ip atacante (nuestra ip) y el puerto por el cual nos conectaremos.

Para mantener funcional el exploit utilizaremos netcat escuchando por el puerto 4444

Hallando la flag del usuario jboss
Una vez realizado la conexión con el servidor, es posible navegar en los ficheros del usuario cmnatic. Mediante una inspección simple de los ficheros se observo la carpeta jboss. utilizando el comando ls -la se puede observar el archivo .jboss.txt el mismo que es posible desplegar utilizando el comando cat.

Escalamiento
Además, en el mismo fichero encontramos el archivo note, que contiene información útil para el escalamiento

Posteriormente hacemos más amigable la terminal y logeamos con el usuario jboss

Obteniendo la flag de root
Dentro la cuenta de jboss podemos intentar acceder a la carpeta root, a la cual no tenemos permiso para acceder. Explotando una vulnerabilidad de comandos en linux es posible acceder como usuario root. El payload se encuentra en https://gtfobins.github.io/gtfobins/find/#sudo Accediendo al fichero root, se puede observar el documento root.txt el cual contiene un mensaje en base64

Utilizando ciberchef.org se pudo determinar el valor del mensaje, el cual es un hash que es posible determinar mediante uso de bibliotecas.

Finalmente obtenemos el valor de la flag
