Entrada

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 comando sudo -l el cual nos dice que podemos abrir archivos zip sin necesidad de ser root y sudo --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.

Esta entrada está licenciada bajo CC BY 4.0 por el autor.