En el ultimo año "Google Password Manager" -un software para administrar contraseñas privada- ha logrado posicionarse como una de las primeras opciones de usuarios a nivel mundial para gestionar sus accesos a redes sociales, programas, softwares, etc... El software de Google se caracteriza principalmente por ser un Password Manager robusto, versátil y sencillo de utilizar para los usuarios finales solo con su cuenta de correo, esto sin embargo no quita que aun se utilicen alternativas gratuitas en producción, inclusive existen empresas que utilizan programas sin costo para administrar las claves de acceso a su información, lo cual no es un error siempre que se implementen medidas correctas de protección y de una masterkey robusta.
En este post analizaremos y descubriremos de manera empírica una forma de explotar un archivo .kdbx (archivo que almacena credenciales o contraseñas del programa "KeePass") para poder aplicarlo en nuestras pruebas de penetración, en CTF's , máquinas de prueba, etc... Esta manera de explotación nos servirá para evaluar la complejidad de una masterkey que no necesariamente debe la contraseña tener una entropía gigante para ser una buena contraseña de uso personal.
La primera forma aplica para aquellas versiones de KeePass no actualizadas, con estas versiones se puede utilizar keepass2john:
1keepass2john database_old.kdbx > hash_kdbx_old2Ejemplo de salida:3$keepass$*2*100000*0*36c1b27ee73ab987d4f76330ae22d91b2cf8341832b118ae532faefc71fa1c5e*8cd7d38e010a3cce065bfcd69c4f3ccbb4318d58436f063fb8ee4f1a7fd323a8*758ed74daa44027c1fc29fa0039af3e0*31c6c1caf044b519c98068ad92a2711e72349783ad60301ecb3209ef1a0ec715*d587dcaf78693bf1b4669fa3d8f2029398164bdc70bdf2e8456ad74b35287d26
Este comando crea en principio un hash listo para ser crackeado e iterarse dentro de hashcat o nuestro programa de crackeo de preferido.
1$ hashcat -m 13400 hash_kdbx_old wordlist.txt2$ hashcat -m 13400 hash_kdbx_old --show
Podemos llegar a pensar que si hacemos lo mismo con versiones actuales de KeePass podemos volver hashear la contraseña, sin embargo keepass2john no soporta este nuevo tipo de formato "40000" de KeePass, dando un paso adelante y tratando de renovar la manera en que podemos obtener contraseña en texto plano encontramos un repositorio de GitHub que utiliza una técnica sencilla pero bien aplicada que itera posibles contraseñas de un diccionario dado hacia a un archivo .kdbx, aprovechándose de keepassxc como dependencia que es la versión para consola de Keepass.
Esta herramienta básicamente lo que hace es automatizarnos el proceso de escribir contraseña por contraseña en el inicio de sesión de keepass. Podemos hacer un stop aquí y analizar el código que realmente no es difícil de entender incluso para un principiante.
https://github.com/r3nt0n/keepass4brute
1$ sudo apt install keepassxc -y2$ chmod +x keepass_bruteforce.sh
Esto primero instala el keepass para consola (en caso no lo tengas), luego le damos permiso de ejecución al archivo que hemos creado en base al repositorio o también si clonamos el repositorio podemos darle permisos de ejecución.
1$ ./keepass_bruteforce.sh recovery.kdbx rockyou.txt
Con este comando podemos finalmente poner en marcha el script.
Esto si bien es cierto puede durar mucho ya que las iteraciones no son exponenciales, sino que se iteran con moderación.
Esto si bien está siendo utilizado con el diccionario rockyou.txt aun puede ser utilizable con diccionarios personalizados según el comportamiento del target, puedes analizar los patrones de contraseñas que hayan tenido haciendo más optimizado el diccionario, como por ejemplo si intuyes que las contraseñas usualmente utilizan o terminan con "!" combinado de Mayúsculas y Minúsculas puedes crear un diccionario con estas características, o si las contraseñas tienen la inicial de la persona y luego su apellido seguido de algunos caracteres aleatorios puedes también crear un diccionario personalizado.
Es importante resaltar que cuando uno crea una contraseña propia no necesariamente tiene que tener un nivel de aleatoriedad con caracteres exageradamente variados ya que eso nos dificultará el hecho de acordarnos de la misma contraseña, por el contrario se debe crear una contraseña con algo poco esperado, fácil de recordar y además personalizada como por ejemplo: miperrotienepulgasyQu3@
Como podemos ver tenemos que hay muchas contraseñas que contienen la palabra "miperro" , pero no la que hemos creado.
Espero este articulo les sirva de ayuda para poder aplicarlo en sus máquinas (guiño), como dato curioso estos posts y los que haré en el futuro serán contemporáneos con algunas explotaciones que se muestran en las máquinas de la plataforma Hack The Box. (̶◉͛‿◉̶)
https://hashcat.net/forum/archive/index.php?thread-10838.html
https://www.digitalinformationworld.com/2024/11/2024-study-36-use-password-managers-79.html
https://explodingtopics.com/blog/password-stats
kdbx bypass, keepass bypass, keepass brute force, keepass password cracking, keepass2john tutorial, extract keepass hash, hashcat keepass, crack keepass database, decrypt kdbx file, keepass hash extraction, bruteforce keepass 2025, keepass 2 bruteforce, keepass 2 bypass, keepass vulnerability, keepass vuln hack the box, kdbx abuse.