ToolsRus - TryHackMe
SUMMARY
Debemos encontrar una bandera en la maquina ToolsRus. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servidor web Apache, un servidor SSH, un servidor web Apache Tomcat, y el módulo Apache Jserv para la comunicación entre el servidor web Apache y Tomcat. Luego, realice fuerza bruta de directorios sobre el directorio raíz del servidor web Apache, encontrando una página web que contenía un username valido. Además, encontré un recurso protegido por un método de autenticación, pero logre encontrar unas credenciales validas a través realizar un ataque de fuerza bruta con Hydra, permitiéndome acceder al recurso, que resulto ser un rabbit hole. Luego, realice fuerza bruta de directorios sobre el directorio raíz del servidor web Tomcat, encontrando un recurso protegido por un método de autenticación, pero logre acceder a el utilizando las credenciales encontradas anteriormente. Luego, a través de la interfaz web del recurso, logre desplegar una aplicación web Java con un payload malicioso, que cree con msfvenom, permitiéndome acceder al sistema destino siendo el usuario root.
FASE RECONOCIMIENTO ACTIVO
En este caso debemos acceder al sistema destino y obtener las banderas. Para ello empezaremos utilizando el comando openvpn con el fin de establecer una conexión VPN con la red virtual dónde está la máquina ToolsRus. Para ello utilizaremos el archivo de configuración, que lo podemos descargar en la plataforma de Tryhackme, que puede incluir información como la dirección del servidor VPN, los certificados y claves de seguridad, la configuración de encriptación, etc.
Luego de que se establece la conexión VPN se crea una interfaz virtual de red en nuestra máquina. Donde se enruta todo el tráfico de red a través de esa interfaz.
Además, la plataforma de Tryhackme nos muestra la dirección ip de la máquina ToolsRus.
FASE ESCANEO Y ENUMERACION
Luego pasaremos a la fase de Escaneo y Enumeración con el fin de poder escanear los puertos del nodo. Además, obtendremos los servicios que se han levantado en los puertos abiertos, las versiones de los servicios, y el sistema operativo de la máquina ToolsRus. Para ello utilizaremos Nmap
. Donde le pasaremos los siguientes parámetros:
- El parámetro -sC o –script=”default” para utilizar todos los scripts de la categoría default con el fin de realizar un escaneo y detección de los puertos de manera avanzada.
- El parámetros -sV con el fin de conocer las versiones de los servicios levantados en los puertos abiertos.
- El parámetro -n para evitar la resolución DNS, y el parámetro –max-rate para indicarle el número máximo de paquetes por segundo que va a utilizar Nmap para el escaneo con el fin de evitar sobrecargar la red con el tráfico generado por la herramienta.
- El parámetro -p- para realizar un escaneo de los 65535 puertos del nodo y el parámetro –open con el fin de que nos muestre información solo de los puertos abiertos.
Los resultados que obtuvimos del escaneo vienen a ser:
- Un servidor SSH levantado en el puerto 22, y la versión del programa servidor.
- Un servidor web Apache levantado en el puerto 80, y la versión del programa servidor.
- Un servidor web Apache Tomcat en el puerto 1234, y la versión del programa servidor. además, Coyote JSPengine viene a ser un componente en el servidor web Apache Tomcat que se encarga de manejar las solicitudes y respuestas relacionadas con las páginas JSP
- El módulo Apache Jserv que utiliza el protocolo AJP13(ejecutado en el puerto 8009) para la comunicación entre el servidor web Apache y el Apache Tomcat. Por lo tanto, las aplicaciones web en Java desarrolladas en el servidor Tomcat van a ser servidas por el servidor web Apache.
Ahora realizaremos fuerza bruta de directorios con Wfuzz sobre el directorio raíz del servidor web Apache con el fin de encontrar recursos escondidos.
Podemos observar que se llegó a encontrar dos recursos escondidos.
Ahora accederemos al recurso guidelines a través de mi navegador web.
Podemos observar que el recurso viene a ser una pagina web que consta de un mensaje realizado hacia el usuario bob, que probablemente viene a ser a ser el desarrollador web.
Ahora accederemos al recurso protected a través de mi navegador web, pero antes debemos percatarnos en los resultados de Wfuzz, que recibimos el código de estado HTTP 401 en la respuesta HTTP, esto quiere decir que hay un método de autenticación que posiblemente está solicitando credenciales para acceder al recurso.
FASE GANAR ACCESSO O EXPLOTACION O HACKING
Ahora realizaremos un ataque de fuerza bruta con Hydra sobre el método de autenticación del recurso, y suponiendo que un username valido es bob.
Podemos observar que la herramienta llego a encontrar unas credenciales validas.
Ahora nos autenticaremos en el método de autenticación del recurso protected con el fin de observar su contenido a través del navegador web.
Podemos observar que se trata de un rabbit hole.
Ahora realizaremos fuerza bruta de directorios con Wfuzz sobre el directorio raíz del servidor web Apache Tomcat con el fin de encontrar recursos escondidos.
Podemos observar que se llego a encontrar varios recursos escondidos, pero los recursos docs y examples vienen a ser aplicaciones web que vienen por defecto al momento de instalar el servidor web. Además, el recurso manager viene a ser una aplicación web que viene por defecto en la instalación del servidor web, y proporciona una interfaz web para administrar las aplicaciones web contenidas en el servidor web, es decir, donde se puede iniciar y detener aplicaciones web, desplegar nuevas aplicaciones y ver información sobre las aplicaciones en ejecución.
Ahora accederemos al recurso manager s a través de mi navegador web para acceder a su interfaz web.
Podemos observar que la interfaz web de la aplicación manager esta siendo protegido por un método de autenticación.
Ahora intentaremos utilizar las credenciales validas que encontramos anteriormente.
Podemos observar que logramos acceder a la interfaz web de la aplicación manager. Además, podemos observar que podemos desplegar aplicaciones web Java a traves de archivo con extensión war que van a contener las aplicaciones web empaquetadas para su despliegue en servidores de aplicaciones Java, como Apache Tomcat
Aprovechando esto vamos a crear un payload, que nos generara una reverse Shell cuando se ejecute, a través de msfvenom con un formato de salida igual a war para que sea interpreta correctamente por el servidor web Tomcat.
Luego, desplegaremos nuestra aplicación web java, que contiene nuestro payload malicioso, con el fin de ejecutarlo y tener una Shell en el sistema destino, pero antes habilitaremos el puerto 1500 en nuestro sistema para que este en modo listening y esperando la conexión entrante de la reverse Shell.
Podemos observar que llegamos acceder al sistema destino siendo el usuario root. Por lo tanto, el usuario root era quien estaba ejecutando el servidor web Apache Tomcat. Ademas, debido a que logramos acceder al sistema destino siendo el usuario root, no realizaremos una escalada privilegios.
Ahora buscaremos la bandera contenida en el archivo flag.txt.