Démonstration de l'exploitation de CVE-2023-32784
Présentation du projet
Ce dépôt fournit une démonstration de CVE-2023-32784, une vulnérabilité critique trouvée dans les versions de KeePass antérieures à 2.54. L'exploit permet la récupération du mot de passe maître via des dumps mémoire, exposant les identifiants stockés. Cette documentation présente un guide étape par étape pour configurer l'environnement d'exploitation, exécuter l'outil PoC et comprendre les stratégies d'atténuation.
Détails de la vulnérabilité
Description
CVE-2023-32784 est une vulnérabilité de fuite mémoire dans KeePass versions 2.0 à 2.53, découlant d'une gestion incorrecte des chaînes de caractères dans le composant Secure Textbox EX de KeePass. Chaque caractère saisi du mot de passe maître laisse des traces en mémoire, le rendant récupérable via des dumps mémoire.
Caractéristiques principales :
- Sévérité : Élevée
- Exploitabilité : Un accès physique ou local aux dumps mémoire est requis ; aucune exécution de code à distance n'est impliquée.
- Impact : L'extraction du mot de passe maître (sauf le premier caractère) depuis la mémoire permet un accès non autorisé aux identifiants stockés.
Détails de l'exploit
Outils et techniques
L'exploit utilise l'outil KeePass Master Password Dumper, qui exploite la reconnaissance de motifs mémoire pour extraire les caractères des dumps mémoire.
- Limites : Le premier caractère du mot de passe n'est pas récupéré, mais cela ne constitue pas un obstacle majeur car le reste du mot de passe peut être facilement reconstruit ou deviné.
- Modèle de menace : Cette vulnérabilité met en évidence les risques sur les systèmes partagés ou sans surveillance, où l'accès aux dumps mémoire (par exemple,
pagefile.sys ou hiberfil.sys) est possible.
Plan d'exploitation
Prérequis
Pour exécuter avec succès cet exploit, l'environnement et les outils suivants sont nécessaires :
- Logiciel de virtualisation : VMware ou un outil équivalent pour isoler l'environnement de test.
- ISO Windows 10 : Le système d'exploitation pour l'installation vulnérable de KeePass.
- KeePass 2.x : Une version antérieure à 2.54.
- Runtime .NET 7 : Requis pour exécuter l'outil PoC.
- Outil PoC : KeePass Password Dumper, disponible sur GitHub.
Étapes avec justifications
1. Configuration de l'environnement
- Pourquoi une VM ?
Les machines virtuelles offrent un environnement sécurisé et contrôlé pour tester les vulnérabilités sans risquer les systèmes de production.
- Étapes :
- Installer VMware et créer une nouvelle instance de VM avec Windows 10.
- Installer KeePass 2.x (par exemple, version 2.53) et définir un mot de passe maître.
- Exemple de mot de passe maître :
user.
2. Installation des dépendances
- Pourquoi .NET 7 ?
L'outil PoC est basé sur le framework .NET 7. L'utilisation du bon runtime garantit la compatibilité.
- Étapes :
- Télécharger et installer
.NET 7 depuis le site officiel de Microsoft.
- Confirmer l'installation avec :
3. Création du dump mémoire
- Pourquoi dumper la mémoire du processus KeePass ?
La vulnérabilité réside dans la gestion mémoire de KeePass. Capturer un dump permet d'analyser l'empreinte mémoire, où les traces du mot de passe résident.
- Étapes :
- Ouvrir KeePass et déverrouiller la base de données avec le mot de passe maître.
- Utiliser le Gestionnaire de tâches pour créer un fichier
.DMP pour le processus KeePass :
- Localiser KeePass dans le Gestionnaire de tâches.
- Cliquer droit et sélectionner Créer un fichier de dump.
- Noter l'emplacement du fichier
.DMP (généralement dans le répertoire %TEMP%).
4. Exécution de l'outil PoC
- Pourquoi copier le dump dans le répertoire PoC ?
L'outil PoC traite les fichiers de dump dans son répertoire de travail. Cette étape garantit que le bon fichier est analysé.
- Étapes :
- Déplacer le fichier
.DMP dans le dossier PoC extrait.
- Renommer le fichier en
KeePass.DMP pour plus de cohérence.
- Ouvrir un terminal, naviguer vers le répertoire PoC et exécuter l'outil :
cd Downloads/keepass-password-dumper-main
dotnet run KeePass.DMP
- Résultat attendu :
L'outil affichera les caractères du mot de passe à l'exception du premier.
Exemple de séquence de commandes
cd Downloads/keepass-password-dumper-main
dir
dotnet run KeePass.DMP
Stratégies d'atténuation
Correctifs recommandés
-
Mettre à jour KeePass :
La mise à niveau vers KeePass 2.54 corrige la vulnérabilité en introduisant les améliorations suivantes :
- Gestion mémoire renforcée pour les données sensibles.
- Insertions de chaînes aléatoires pour réduire la prédictibilité en mémoire.
-
Sécuriser les dumps mémoire :
- Effacer ou écraser régulièrement les fichiers sensibles tels que
pagefile.sys et hiberfil.sys.
- Redémarrer les systèmes périodiquement pour vider les données sensibles de la mémoire.
-
Pratiquer une gestion mémoire sécurisée :
Les développeurs devraient adopter les bonnes pratiques pour la gestion des chaînes sensibles, comme l'utilisation de structures de données mutables ou le nettoyage des tampons mémoire après utilisation.
Remarques importantes
- Usage réservé à la démonstration uniquement :
Cet exploit est destiné à des fins éducatives dans un environnement contrôlé. N'utilisez pas ces informations de manière malveillante.
- Prise de conscience de l'impact :
Les organisations devraient évaluer les implications de cette vulnérabilité sur les systèmes partagés ou multi-utilisateurs et mettre en œuvre des mesures d'atténuation en conséquence.
REGARDEZ MA VIDÉO YOUTUBE POUR L'EXPLOITATION EN DIRECT DE LA CVE
https://youtu.be/o855F0RvI30?si=WXOtPu-jgtC31O-5
Références
Auteur
Bhargav Raj Dutta
Bachelor en Technologies de l'Information en Cybersécurité et Criminalistique Numérique (Murdoch University)
Pour toute question ou demande de collaboration, n'hésitez pas à me contacter sur [LinkedIn www.linkedin.com/in/bhargav-raj-dutta-80251a1b4)