Hack The Box: Keeper (Linux, Fácil)

Introducción

Keeper es una máquina de dificultad fácil que podemos encontrar en la plataforma de Hack The Box. Enfocada en un sistema de ayuda que utiliza Request Tracker y un administrador que emplea KeePass. Para resolver este CTF, utilizaremos credenciales predeterminadas para acceder a la instancia de RT donde encontraremos las credenciales de un usuario en su perfil. Este usuario está resolviendo un problema con KeePass mediante un volcado de memoria. Aprovecharemos la vulnerabilidad CVE-2022-32784 para obtener la contraseña maestra del volcado, lo que permitirá el acceso a una clave SSH raíz en formato Putty. Luego, la convertiremos al formato OpenSSH y obtendremos acceso de nivel raíz.

Enumeración

Enumeración de puertos

Comenzamos la resolución de la máquina Keeper, realizando una enumeración rápida de los puertos que tiene abiertos el sistema objetivo.

nmap -p- --open -Pn --min-rate 500 10.10.11.227

Dos servicios abiertos, puertos 22 y 80. El siguiente paso será la enumeración detallada de los servicios abiertos.

nmap -p22,80 -sVC -Pn 10.10.11.227 

Enumeración Web

El sistema objetivo está ejecutando un servicio Web en el puerto 80. Vamos a realizar la enumeración de esta Web.

Vemos el siguiente mensaje. Vamos a registrar el dominio en el archivo /etc/hosts de nuestra máquina de ataque.

sudo nano /etc/hosts

Lo primero que haremos es probar diversas credenciales por defecto en este login. Las credenciales por defecto root:password, nos permiten acceder al panel de control del sitio Web.

Explotación

Una vez hemos accedido al panel de control del sitio Web, vamos a buscar posibles vectores de acceso al sistema.

En el directorio admin > users encontramos dos usuarios de la plataforma. Dentro del usuario “lnorgaard” encontramos una posible password.

Vamos a tratar de acceder al sistema aprovechando el servicio SSH activo y las credenciales encontradas.

ssh lnorgaard@10.10.11.227
password: Welcome2023!

Obtenemos acceso al sistema. El siguiente paso será buscar la flag de usuario user.txt

Encontramos la flag user.txt dentro del directorio /home/lnorgaard.

Elevación de privilegios

Mientras buscábamos la flag user.txt, encontramos un archivo “raro” RT30000.zip. Vamos a descargarlo a nuestra máquina de ataque.

scp lnorgaard@10.10.11.227:~/RT30000.zip .

Descomprimimos el archivo ZIP en nuestra máquina de ataque.

unzip RT30000.zip

Parece que tenemos dos archivos relacionados con la aplicación de gestión de contraseñas, Keepass. Vamos a investigarlos.
Después de buscar en Google, encontré un exploit KeePass 2.X Master Password Dumper ( CVE-2023–32784 )
Vamos a utilizar esta herramienta que encontramos en el siguiente repositorio para tratar de descifrar la contraseña.
https://github.com/vdohney/keepass-password-dumper
Descargamos e instalamos todas las dependencias necesarias.

Una vez que hemos instalados todas las dependencias, ejecutamos de la siguiente forma.

dotnet run KeePassDumpFull.dmp

Y obtendremos el siguiente resultado.

Vemos una posible contraseña a la que le faltan dos caracteres.

Aunque investigando un poco en Google, parece que encontramos los caracteres que faltan. Es un plato típico de Dinamarca. La contraseña completa es “Rødgrød med fløde”
El siguiente paso es tratar de acceder al archivo de Keepass que hemos encontrado dentro del ZIP. Para ello, vamos a utilizar la herramienta online https://app.keeweb.info/

En su interior encontramos el contenido de un archivo PuTTY PPK para el usuario root. Copiamos su contenido en un archivo key.ppk.
El siguiente paso será convertir este archivo en una clave válida para utilizar con el servicio SSH.

puttygen key.ppk -O private-openssh -o id_rsa
chmod 600 id_rsa
ssh -i id_rsa root@10.10.11.227

Obtenemos acceso al sistema como usuario root. Solo quedará buscar la flag root.txt para completar la resolución de esta máquina.

No responses yet

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *