Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
keepass-password-dumper — PoC original para CVE-2023-32784 | Kitploit
Herramientas/GitHubGitHub/vdohney/keepass-password-dumper
Forensia de MemoriaAtaques de ContraseñasAnálisis de VulnerabilidadesExplotaciónAnálisis ForenseForensia Digital
GitHubvdohney/keepass-password-dumper

keepass-password-dumper

PoC original para CVE-2023-32784

Ver Repositorio
65160hace 3 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Volcador de contraseña maestra de KeePass 2.X (CVE-2023-32784)

Actualización

La vulnerabilidad fue asignada CVE-2023-32784 y corregida en KeePass 2.54. Gracias nuevamente a Dominik Reichl por su rápida respuesta y solución creativa.

Aclaración: la contraseña debe escribirse en un teclado, no copiarse del portapapeles (consulte las secciones Cómo funciona).

Qué puedes hacer

Primero, actualiza a KeePass 2.54 o superior.

Segundo, si has estado usando KeePass por mucho tiempo, tu contraseña maestra (y potencialmente otras contraseñas) podría estar en tu archivo de paginación/swap, archivo de hibernación y volcados de memoria. Dependiendo de tu nivel de paranoia, puedes considerar estos pasos para resolver el problema:

  1. Cambia tu contraseña maestra
  2. Elimina los volcados de memoria (depende de tu SO, en Windows al menos C:\Windows\memory.dmp, pero puede haber otros)
  3. Elimina el archivo de hibernación
  4. Elimina el archivo de paginación/swap (puede ser molesto, no olvides volver a habilitarlo)
  5. Sobrescribe los datos eliminados en el disco duro para evitar la recuperación (por ejemplo, Cipher con /w en Windows)
  6. Reinicia tu computadora

O simplemente sobrescribe tu disco duro y realiza una instalación limpia de tu SO.

Lista incompleta de productos que no se ven afectados (por favor, crea un pull request o un issue para agregar más). La regla general es que si no es la aplicación original KeePass 2.X escrita en .NET, probablemente no se vea afectada.

  • KeePassXC
  • Strongbox
  • KeePass 1.X


KeePass Master Password Dumper es una herramienta simple de prueba de concepto utilizada para volcar la contraseña maestra de la memoria de KeePass. Aparte del primer carácter de la contraseña, es capaz de recuperar la mayor parte de la contraseña en texto plano. No se requiere ejecución de código en el sistema objetivo, solo un volcado de memoria. No importa de dónde provenga la memoria: puede ser el volcado de proceso, archivo de intercambio (pagefile.sys), archivo de hibernación (hiberfil.sys), varios volcados de memoria o volcado de RAM de todo el sistema. No importa si el espacio de trabajo está bloqueado o no. También es posible volcar la contraseña de la RAM después de que KeePass ya no se esté ejecutando, aunque la probabilidad de que funcione disminuye con el tiempo transcurrido desde entonces.

Probado con KeePass 2.53.1 en Windows (inglés) y KeePass 2.47 en Debian (paquete keepass2). También debería funcionar para la versión de macOS. Desafortunadamente, habilitar la opción Enter master key on secure desktop no ayuda a prevenir el ataque. El PoC podría tener problemas con bases de datos creadas por versiones antiguas de KeePass, pero no pude reproducirlo (ver issue #4).

El hallazgo fue confirmado por Dominik Reichl, autor de KeePass, aquí. Agradezco la rápida respuesta de Dominik. ¡Espero que se solucione pronto!

Configuración

  1. Instala .NET (soporta la mayoría de los sistemas operativos principales).
  2. Clona el repositorio: git clone https://github.com/vdohney/keepass-password-dumper o descárgalo desde GitHub
  3. Entra en el directorio del proyecto en tu terminal (Powershell en Windows) cd keepass-password-dumper
  4. dotnet run PATH_TO_DUMP

La forma más fácil de probar esto en Windows es crear un volcado de proceso en el administrador de tareas haciendo clic derecho en el proceso de KeePass y seleccionando "Crear archivo de volcado".

Usage example

  1. Alternativamente, puedes agregar otro parámetro dotnet run PATH_TO_DUMP PATH_TO_PWDLIST para generar una lista de todas las contraseñas posibles a partir del segundo carácter.

¿Deberías Preocuparte?

Depende de tu modelo de amenaza. Si tu computadora ya está infectada por malware que se ejecuta en segundo plano con los privilegios de tu usuario, este hallazgo no empeora mucho tu situación. Sin embargo, podría ser más fácil para el malware ser sigiloso y evadir el antivirus, ya que a diferencia de KeeTheft o KeeFarce, no es necesaria la inyección de procesos ni otro tipo de ejecución de código.

Si tienes una sospecha razonable de que alguien podría obtener acceso a tu computadora y realizar un análisis forense, esto podría ser malo. El peor escenario es que la contraseña maestra sea recuperada, a pesar de que KeePass esté bloqueado o no se esté ejecutando en absoluto.

Si usas cifrado de disco completo con una contraseña fuerte y tu sistema está limpio, deberías estar bien. Nadie puede robar tus contraseñas de forma remota a través de internet solo con este hallazgo.

Cómo Funciona

KeePass 2.X utiliza un cuadro de texto desarrollado a medida para la entrada de contraseñas, SecureTextBoxEx. Este cuadro de texto no solo se usa para la entrada de la contraseña maestra, sino también en otros lugares de KeePass, como los cuadros de edición de contraseñas (por lo que el ataque también se puede usar para recuperar su contenido).

La falla explotada aquí es que por cada carácter escrito, se crea una cadena residual en la memoria. Debido a cómo funciona .NET, es casi imposible deshacerse de ella una vez creada. Por ejemplo, cuando se escribe "Password", resultará en estas cadenas residuales: •a, ••s, •••s, ••••w, •••••o, ••••••r, •••••••d. La aplicación POC busca en el volcado estos patrones y ofrece un carácter probable para cada posición en la contraseña.

La confiabilidad de este ataque puede verse influenciada dependiendo de cómo se escribió la contraseña y cuántas contraseñas se escribieron por sesión. Sin embargo, he descubierto que incluso si hay múltiples contraseñas por sesión o errores tipográficos, la forma en que .NET CLR asigna estas cadenas significa que es probable que estén bien ordenadas en la memoria. Entonces, si se escribieron tres contraseñas diferentes, es probable que obtengas tres candidatos para cada posición de carácter en ese orden, lo que hace posible recuperar las tres contraseñas.

Desarrollo

Es un POC rápido, por lo que probablemente no sea muy confiable y robusto. Por favor, crea un pull request si encuentras algún problema y lo solucionas.

Los caracteres de contraseña permitidos están actualmente codificados así: ^[\x20-\x7E]+$ (todos los caracteres ASCII imprimibles y espacio).

Agradecimientos

Gracias a adridlug por agregar la posibilidad de generar automáticamente la lista de contraseñas, y a ynuwenhof por refactorizar el código.

Proyectos Relacionados

  • Python implementation of the PoC by CMEPW
  • Rust implementation of the PoC by ynuwenhof

Aún no he revisado ninguno de ellos.

Descargar herramienta