Willow es una maquina de TryHackMe, encontramos un reto que nos permitio generar una clave privada encriptada a la cual encontramos la frase secreta con John lo que nos permitio obtener acceso por SSH. Encontramos credenciales al montar una particion, con ello logramos acceder como root.
Room
Titulo | Willow |
---|---|
Descripción | What lies under the Willow Tree? |
Puntos | 60 |
Dificultad | Media |
Maker |
NMAP
Escaneo de puerto tcp, en el cual nos muestra varios puertos abiertos.
|
|
HTTP
GOBUSTER
Utilizamos gobuster para busqueda de directorios y archivos.
|
|
USER - Willow
PRIVATE KEY
En la pagina principal de willow encontramos una cadena en hexadecimal.
Utilizamos CyberChef para decodificar el contenido de esta cadena.
Èncontramos un mensaje en el que indica que la clave privada de Willow esta encriptada - Asumimos que willow es un usuario registrado en la maquina:
Hey Willow, here's your SSH Private key -- you know where the decryption key is!
Adjunto al mensaje, una lista de numeros.
NFS
En el puerto 2049 encontramos un punto de montaje el cual puede utilizar cualquiera (nobody:nogroup), utilizamos mount
para montar la carpeta permitida (/var/failsafe
).
|
|
El contenido del archivo que encontramos en la carpeta es rsa_keys
que contiene las claves para la clave publica y la clave privada.
|
|
En este post RSA Encription explica a la perfeccion como funcionan, encriptacion y desencriptacion de RSA. Para este reto escribi un pequeño script en python que por cada numero que encontramos en el mensaje, lo vamos a convertir a hexadecimal utilizando las claves (6—7, 3—7) del archivo rsa_keys
, en este caso vamos a utilizar el de la clave privada para poder conectarnos atraves del servicio SSH. Una vez hecho lo anterior convertimos a texto el mensaje (lista) en hexadecimal que obtuvimos.
Ejecutamos nuestro script y obtenemos nuestra clave privada:
Utilizamos la clave para iniciar sesion en el servicio de SSH pero esta esta protegida por una frase.
Utilizamos John para obtener el hash de la clave y obtener la frase.
Una vez con la frase de nuestro archivo, iniciamos sesion en el servicio SSH y obtenemos nuestra shell con usuario Willow.
Encontramos una imagen en la carpeta principal de Willow:
La codificamos a base64 y utilizamos nuevamente CyberChef
para renderizar nuestra imagen (podemos utilizar scp
btw), obtenemos nuestra flag user.txt:
PRIVILEGE ESCALATION
Enumeramos los comandos que podemos ejecutar sin contraseña utilizando sudo sudo -l -l
y vemos que podemos utilizar mount
.
Revisamos /mnt/ y encontramos la carpeta /creds que no contiene nada.
Vemos el contenido de /dev
en donde se supone estan las “particiones” montadas, y podemos ver inmediatamente hidden_backup
lo cual no es muy comun de encontrar.
Ya que podemos utilizar mount
con sudo vamos a proceder a montar esta “particion” en /mnt/creds
(puede ser en cualquier otra carpeta a la que willow tenga acceso).
Encontramos las credenciales del usuario root y willow, cambiamos al usuario root y dentro de su carpeta encontramos un mensaje en root.txt.
La nota nos indica que la flag root.txt ya nos fue dada antes de que obtuvieramos una shell, recordemos que la primera flag la encontramos en la imagen, regresamos a la imagen que encontramos y extraemos su contenido con la contraseña de root, en donde podemos ver nuestra ultima flag.