Thomgost
Hoy vamos a centrarnos en conseguir las vulnerabilidades que presenta la máquina #tomghost de #tryhackme.
SCANEO
Empezamos usando nmap para scanear la maquina y asi obtener la mayor información posible.
nmap -sV -sC -A 10.10.162.118 -oN scan.txt -vvv
Como resultado nos muestra lo siguiente:
Detectamos un servidor Apache Tomcat 9.0.30, que a simple vista, parece ser la página de instalación de el servidor.
EXPLOTACIÓN
El siguiente paso que realizamos es la busqueda de posibles exploits que podamos utilizar para obtener acceso a la maquina.
Realizamos una busqueda por internet para obtener informacion de las posibles vulnerabilidades que tenga, tanto el servidor, como la version instalada. Tras visitar la página oficial, nos encontramos que detectaron la siguiente vulnerabilidad:
Buscamos en internet si existe algun xploit y tras localizar #ajpShooter en github, lo descargamos y ejecutamos con el siguiente comando:
python3 ajpShooter.py http://10.10.162.118 8009 /WEB-INF/web.xml read
De aqui sacamos el usuario y la contraseña para poder intentar acceder por ssh:
- Procedemos a acceder por ssh con las credenciales que obtuvimos
- Una vez dentro, listamos las carpetas y archivos a los cuales podemos acceder. Nos encontramos con dos archivos interesantes, asi que nos los descargamos a nuestro equipo usando el comando #scp
Ahora procedemos a usar #JohnTheRipper para poder crackear el archivo
.asc
Para ello debemos realizar un paso previo, usando gpg2john:
gpg2john tryhackme.asc > tryhackem.asc.john
Ahora, podemos usar john:
john $ROCKYOU tryhackme.asc.john
Y tras esperar un rato, obtenemos la clave:
1 2 3 4 5 6 7 8 9 10 11 12
john --wordlist=/usr/share/wordlists/rockyou.txt tryhackme.asc.john Using default input encoding: UTF-8 Loaded 1 password hash (gpg, OpenPGP / GnuPG Secret Key [32/64]) Cost 1 (s2k-count) is 65536 for all loaded hashes Cost 2 (hash algorithm [1:MD5 2:SHA1 3:RIPEMD160 8:SHA256 9:SHA384 10:SHA512 11:SHA224]) is 2 for all loaded hashes Cost 3 (cipher algorithm [1:IDEA 2:3DES 3:CAST5 4:Blowfish 7:AES128 8:AES192 9:AES256 10:Twofish 11:Camellia128 12:Camellia192 13:Camellia256]) is 9 for all loaded hashes Will run 4 OpenMP threads Press 'q' or Ctrl-C to abort, almost any other key for status alexandru (tryhackme) 1g 0:00:00:00 DONE (2023-12-17 21:47) 2.272g/s 2436p/s 2436c/s 2436C/s theresa..alexandru Use the "--show" option to display all of the cracked passwords reliably Session completed.
Importamos la clave y usamos la clave que cabamos de conseguir
Y asi conseguimos desencriptar el archivo
credentials.pgp
Esto nos ofrece otro nombre de usuario contraseña, los cuales usaremos para conectarnos por ssh de nuevo.
Nos conectamos con el usuario merlin por ssh:
ssh merlin@<ip>
Tras logearnos con el usuario merlin y revisar archivos y carpetas, obtenemos el primer flag:
Ahora procedemos a escalar privilegios. Nos fijaremos en un par de detalles, el primero es que podemos aprovechar la carpeta oculta
.nano
ya que dispone de todos los permisos necesarios. El segundo punto, es usar el comandosudo -l
el cual nos dice que podemos abrir archivos zip sin necesidad de ser root ysudo --version
para comprobar la version.Buscamos en GTOBINS como podemos explotar la vulnerabilidad y tras seguir las indicaciones, accedemos como usuario root y obtenemos la segunda flag.
POST EXPLOTACIÓN
Hemos descubierto que la vulnerabilidad se debe a que el sistema no está debidamente actualizado. Se recomienda siempre tener el sistema actualizado a las ultimas versiones.