Demostración del Exploit CVE-2023-32784
Resumen del Proyecto
Este repositorio proporciona una demostración de CVE-2023-32784, una vulnerabilidad crítica encontrada en versiones de KeePass anteriores a la 2.54. El exploit permite la recuperación de la contraseña maestra a través de volcados de memoria, exponiendo las credenciales almacenadas. Esta documentación describe una guía paso a paso para configurar el entorno del exploit, ejecutar la herramienta PoC y comprender las estrategias de mitigación.
Detalles de la Vulnerabilidad
Descripción
CVE-2023-32784 es una vulnerabilidad de fuga de memoria en las versiones de KeePass 2.0 a 2.53, derivada del manejo inadecuado de cadenas dentro del componente Secure Textbox EX de KeePass. Cada carácter introducido de la contraseña maestra deja rastros en la memoria, lo que hace posible recuperarla mediante volcados de memoria.
Características Clave:
- Gravedad: Alta
- Explotabilidad: Se requiere acceso físico o local a los volcados de memoria; no implica ejecución remota de código.
- Impacto: La extracción de la contraseña maestra (excluyendo el primer carácter) de la memoria permite el acceso no autorizado a las credenciales almacenadas.
Detalles del Exploit
Herramientas y Técnicas
El exploit aprovecha la herramienta KeePass Master Password Dumper, que utiliza el reconocimiento de patrones de memoria para extraer caracteres de los volcados de memoria.
- Limitaciones: El primer carácter de la contraseña no se recupera, pero esto no es un obstáculo significativo, ya que el resto de la contraseña puede reconstruirse o adivinarse fácilmente.
- Modelo de Amenaza: Esta vulnerabilidad resalta los riesgos en sistemas compartidos o sin supervisión, donde es posible el acceso a volcados de memoria (por ejemplo,
pagefile.sys o hiberfil.sys).
Plan de Explotación
Requisitos Previos
Para ejecutar este exploit con éxito, son necesarios el siguiente entorno y herramientas:
- Software de Virtualización: VMware o una herramienta equivalente para aislar el entorno de prueba.
- ISO de Windows 10: El sistema operativo para la instalación vulnerable de KeePass.
- KeePass 2.x: Una versión anterior a la 2.54.
- Runtime de .NET 7: Necesario para ejecutar la herramienta PoC.
- Herramienta PoC: KeePass Password Dumper, disponible en GitHub.
Pasos con Justificaciones
1. Configuración del Entorno
- ¿Por qué una VM?
Las máquinas virtuales ofrecen un entorno seguro y controlado para probar vulnerabilidades sin poner en riesgo los sistemas de producción.
- Pasos:
- Instalar VMware y crear una nueva instancia de VM con Windows 10.
- Instalar KeePass 2.x (por ejemplo, la versión 2.53) y establecer una contraseña maestra.
- Contraseña maestra de ejemplo:
user.
2. Instalar Dependencias
- ¿Por qué .NET 7?
La herramienta PoC está construida sobre el framework .NET 7. Usar el runtime correcto garantiza la compatibilidad.
- Pasos:
- Descargar e instalar
.NET 7 desde el sitio web oficial de Microsoft.
- Confirmar la instalación usando:
3. Creación del Volcado de Memoria
- ¿Por qué volcar la memoria del proceso de KeePass?
La vulnerabilidad reside en el manejo de memoria de KeePass. Capturar un volcado permite analizar la huella de memoria, donde residen los rastros de la contraseña.
- Pasos:
- Abrir KeePass y desbloquear la base de datos con la contraseña maestra.
- Usar el Administrador de tareas para crear un archivo
.DMP del proceso de KeePass:
- Localizar KeePass en el Administrador de tareas.
- Hacer clic derecho y seleccionar Crear archivo de volcado.
- Anotar la ubicación del archivo
.DMP (normalmente en el directorio %TEMP%).
4. Ejecutar la Herramienta PoC
- ¿Por qué copiar el volcado al directorio del PoC?
La herramienta PoC procesa los archivos de volcado dentro de su directorio de trabajo. Este paso garantiza que se analice el archivo correcto.
- Pasos:
- Mover el archivo
.DMP a la carpeta extraída del PoC.
- Renombrar el archivo a
KeePass.DMP por consistencia.
- Abrir una terminal, navegar al directorio del PoC y ejecutar la herramienta:
cd Downloads/keepass-password-dumper-main
dotnet run KeePass.DMP
- Resultado Esperado:
La herramienta mostrará los caracteres de la contraseña excepto el primero.
Secuencia de Comandos de Ejemplo
cd Downloads/keepass-password-dumper-main
dir
dotnet run KeePass.DMP
Estrategias de Mitigación
Correcciones Recomendadas
-
Actualizar KeePass:
Actualizar a KeePass 2.54 soluciona la vulnerabilidad al introducir las siguientes mejoras:
- Manejo de memoria mejorado para datos sensibles.
- Inserciones de cadenas aleatorias para reducir la previsibilidad en la memoria.
-
Proteger los Volcados de Memoria:
- Limpiar o sobrescribir regularmente archivos sensibles como
pagefile.sys y hiberfil.sys.
- Reiniciar los sistemas periódicamente para eliminar datos sensibles de la memoria.
-
Practicar una Gestión Segura de la Memoria:
Los desarrolladores deberían adoptar buenas prácticas para el manejo de cadenas sensibles, como usar estructuras de datos mutables o limpiar los buffers de memoria después de su uso.
Notas Importantes
- Uso Solo para Demostración:
Este exploit está destinado a fines educativos en un entorno controlado. No utilice esta información de forma maliciosa.
- Conciencia del Impacto:
Las organizaciones deberían evaluar las implicaciones de esta vulnerabilidad en sistemas compartidos o multiusuario e implementar mitigaciones en consecuencia.
MIRA MI VIDEO DE YOUTUBE PARA LA EXPLOTACIÓN EN VIVO DEL CVE
https://youtu.be/o855F0RvI30?si=WXOtPu-jgtC31O-5
Referencias
Autor
Bhargav Raj Dutta
Licenciatura en Tecnología de la Información en Ciberseguridad y Forense Digital (Universidad de Murdoch)
Para cualquier pregunta o consulta de colaboración, no dudes en conectar en [LinkedIn www.linkedin.com/in/bhargav-raj-dutta-80251a1b4)