La vulnerabilidad CVE-2023-32784 afecta a versiones anteriores a KeePass 2.54. Esta falla permite extraer la contraseña maestra en texto claro desde la memoria del sistema, incluso si la base de datos está bloqueada o KeePass ya no está en ejecución. Los datos residuales de contraseñas ingresadas permanecen en ubicaciones como el memory dump, el archivo de intercambio (pagefile.sys), o el archivo de hibernación (hiberfil.sys).
El problema radica en cómo KeePass maneja las contraseñas en su cuadro de texto personalizado (SecureTextBoxEx), donde se almacenan fragmentos del texto ingresado en la memoria de forma no segura. Aunque el primer carácter de la contraseña no es recuperable, los demás pueden reconstruirse usando herramientas específicas, como el script keepass-password-dumper, desarrollado como prueba de concepto por investigadores.
Una mitigación ha sido introducida en KeePass 2.54 mediante el uso de llamadas a la API de Windows que insertan cadenas aleatorias para dificultar la recuperación de datos de memoria. Sin embargo, esta vulnerabilidad no puede explotarse remotamente y requiere acceso físico o malware en el sistema afectado【14】【15】【16】.
Recomendaciones:
Actualiza a KeePass 2.54 o superior.
Elimina archivos como dumps de memoria, archivos de hibernación y de intercambio después de cerrar KeePass.
Asegura el dispositivo contra malware, ya que la explotación requiere acceso local.
Para poder realizar esta tecnica la version de keepass tiene que ser la 2.53.1 ya que es la version vulnerable, junto con algunas dependencias que vamos a necesitar mas, todo esta en el siguiente link:
Tendremos que instalar los 3 para preparar nuestro entorno y el instalador del keepass lo instalaremos en nuestro entorno vulnerable, cuando se haya instalado keepass tendremos que crear una base de datos asignandole una contraseña la cual vamos a descubrir con la tecnica, en mi caso pondre secretpassword, por lo que nos metera en la base de datos y teniendo la base de datos abierta y activa, tendremos que realizar un volcado de memoria de la misma.
En este punto un atacante tendra que esperar hasta que la victima tenga el keepass abierto, por lo que nos iremos al administrador de tareas y buscaremos keepass, veremos algo asi:
Por lo que le daremos click derecho -> Crear archivo de volcado de memoria y esto nos lo creara, le daremos a Abrir ubicacion del archivo y lo pegaremos donde tengamos la carpeta que descomprimimos inicialmente entrando en ella y pegandola dentro de la carpeta llamada keepass-password-dumper-main.
Una vez echo eso y teniendo el .dmp dentro de la carpeta abriremos una terminal en la misma carpeta keepass-password-dumper-main y ejecutaremos lo siguiente:
Lo descomprimiremos y moveremos el ejecutable llamado procdump64.exe a la carpeta keepass-password-dumper-main y desde la terminal estando dentro de la carpeta pondremos lo siguiente para realizar un volcado del keepass:
.\procdump64.exe-ma 9556 KeePass.dmp
Info:
ProcDump v11.0 - Sysinternals process dump utility
Copyright (C) 2009-2022 Mark Russinovich and Andrew Richards
Sysinternals - www.sysinternals.com
[14:24:12] Dump 1 initiated: C:\Users\clipd\Desktop\CVE-2023-32784\keepass-password-dumper-main\KeePass.dmp
[14:24:12] Dump 1 writing: Estimated dump file size is 260 MB.
[14:24:12] Dump 1 complete: 260 MB written in 0.4 seconds
[14:24:13] Dump count reached.
Vemos que se ha realizado correctamente y si vamos a ver si esta el archivo, veremos lo siguiente:
Se ha realizado correctamente, por lo que ya podremos seguir con el proceso para intentar dumpear la contraseña.