the_open_door
café
ESEN
← Volver al índice

KeePass Cracking

El crackeo de KeePass convierte un gestor de contraseñas robado en las claves de todo lo demás: se localiza la base .kdbx, se extrae su hash con keepass2john, se rompe la contraseña maestra offline y se abre el llavero, que suele guardar credenciales de SSH, dominio, bases de datos y paneles.

Por qué funciona. KeePass cifra la base con una clave derivada de la contraseña maestra (y, si existe, de un fichero .key). Esa derivación es un objetivo perfecto para un ataque de diccionario offline: nadie te bloquea la cuenta ni te ve probar millones de candidatas. Y las bases .kdbx acaban en sitios accesibles (perfiles de usuario, recursos compartidos, copias de seguridad) porque el usuario confía en que "está cifrada".

El abuso. Se saca el hash de la base y se ataca con john o hashcat; con la maestra se abre el llavero.

keepass2john <file>.kdbx > kp.hash          # si hay .key: keepass2john -k <file>.key
john --wordlist=<rockyou.txt> kp.hash
hashcat -m 13400 kp.hash <rockyou.txt>          # modo 13400 = KeePass
# abrir la base ya con la maestra y volcar entradas
kpcli --kdb <file>.kdbx

Variante sin diccionario: CVE-2023-32784. KeePass 2.x anterior a 2.54 deja en memoria casi toda la contraseña maestra en texto claro (todos los caracteres menos el primero), recuperable de un volcado del proceso, un .dmp, un crash dump o el hiberfil.sys. No hace falta crackear nada:

# volcar el proceso KeePass (procdump/Task Manager) y extraer la maestra del dump
python3 keepass-password-dumper.py KeePass.DMP
# -> ●assword: recupera la maestra salvo el primer caracter (se prueban pocas variantes)

Requisitos. Acceso de lectura al fichero .kdbx (y al .key si la base lo usa). Si la maestra es fuerte y hay fichero llave separado, el crackeo puede ser inviable; en ese caso, la vía de memoria (CVE-2023-32784) la sortea si la versión es vulnerable y se puede volcar el proceso.

Cómo detectarlo. El robo de un .kdbx es difícil de ver una vez exfiltrado (el crackeo ocurre fuera). La señal defensiva está antes: accesos anómalos a ficheros .kdbx, copias a rutas temporales o su salida por la red. Monitorizar el acceso a los llaveros y alertar de lecturas por procesos que no son el propio KeePass.

Defensa. Contraseña maestra larga y aleatoria más un fichero llave guardado aparte del .kdbx, no dejar la base en recursos compartidos y cifrar los backups. Encadena con el rastreo de credenciales y el reciclaje de credenciales; es primo del crackeo de .pfx y del crackeo de hashes.

Herramientaskeepass2john