LaxCTF es una maquina de TryHackMe, descubrimos LaTex con una vulnerabilidad lo que nos permitio leer un fichero cifrado, y, con el analisis de codigo fuente a un APK obtuvimos credenciales para SSH. Escalamos privilegios mediante un CronJob y un archivo ovpn.
Room
Titulo | LaxCTF |
---|---|
Descripción | Try Harder! |
Puntos | * |
Dificultad | Media |
Maker |
NMAP
Escaneo de puertos tcp, nmap nos muestra el puerto http (80) y el puerto ssh (22) abiertos.
|
|
HTTP
Encontramos una pagina web en el puerto 80.
RUSTBUSTER
Utilizamos rustbuster para busqueda de directorios y archivos.
|
|
LaTeX - EXPLOIT
En la pagina encontramos pdfTeX
para generar PDF a partir de un template y texto ingresado, ingresamos un texto cualquiera y nos devuelve la direccion en donde se encuentra el PDF. Además la version de pdfTeX Version 3.14159265-2.6-1.40.16
En la direccion, el PDF con el texto ingresado.
Con el siguiente “payload” logramos obtener la primera linea del archivo /etc/passwd
|
|
Intentamos utilizar el mismo payload que utilizamos en CHAOS - HTB pero al parecer tiene un blacklist parecido a este:
|
|
Por lo que no es posible utilizar los “comandos” conocidos. Probamos diferentes combinaciones pero ninguna de estas combinaciones funcionó. Reallizamos una busqueda de un posible exploit
en google y encontramos un PoC en Moodle < 1.6.9/1.7.7/1.8.9/1.9.5 - File Disclosure donde indica como es posible leer archivos a traves del siguiente payload:
|
|
Logramos leer el archivo e incrustarlo en el PDF:
Además, dentro de la respuesta al enviar el PoC encontramos el contenido del archivo /etc/passwd
con la informacion desordenada, donde logramos ver uno de los usuarios con su directorio principal y una carpeta no muy comun dentro de este archivo. Uno de los usuarios es Lax
o king
(Lax puede referirse al hostname) y su carpeta principal se encuentra en /home/king
, el otro directorio es /opt/secret
.
Utilizando el directorio principal del usuario que encontramos podemos leer nuestra flag user.txt
.
|
|
Hicimos lo mismo con /opt/secret
pero a un principio no tenia nada en su interior, pero al inspeccionar el codigo fuente encontramos strings separadas por etiquetas HTML.
Utilizamos HTML-strip para poder eliminar las etiquetas y obtener el texto completo, además eliminamos todos los espacios existentes y caracteres al inicio y al final " y 1
. Logramos leer lo que parece una encriptacion AES en modo CBC
pero para obtener el texto necesitamos KEY e IV.
|
|
KING - USER
APK
Encontramos un apk en /Google-Earth/
y utilizamos jadx
para leer el codigo fuente de la aplicacion, en donde encontramos funciones para encriptar y desencriptar, además encontramos el IV y KEY.
Utilizamos CyberChef para desencriptar el texto (eliminamos AES/CBC/128).
El texto esta codificado en brainfuck
, utilizamos dcode.fr
Nuevamente utilizamos CyberChef para obtener lo que parecen credenciales del usuario king
.
Logramos obtener una shell con el usuario King.
PRIVILEGE ESCALATION
Hacemos una pequeña enumeracion con pspy
y encontramos que se ejecuta un cron, el problema es de que no sabemos cual es el contenido de dicho archivo (run.sh
).
En el directorio principal de king
encontramos un archivo ovpn
por lo que agregamos una shell inversa al igual que en VAULT - HTB esperando a alguna conexion a nuestra maquina.
|
|
Logramos obtener una shell con usuario root y nuestra flag root.txt
.
Revisamos el archivo run.sh
y es el que ejecutó el archivo ovpn.
|
|