Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
keepass-password-dumper — PoC original pour CVE-2023-32784 | Kitploit
Outils/GitHubGitHub/vdohney/keepass-password-dumper
Criminalistique MémoireAttaques de Mots de PasseAnalyse des VulnérabilitésExploitationAnalyse ForensiqueCriminalistique Numérique
GitHubvdohney/keepass-password-dumper

keepass-password-dumper

PoC original pour CVE-2023-32784

Voir le dépôt
65160il y a 3 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

KeePass 2.X Master Password Dumper (CVE-2023-32784)

Mise à jour

La vulnérabilité a reçu l'identifiant CVE-2023-32784 et a été corrigée dans KeePass 2.54. Merci encore à Dominik Reichl pour sa réponse rapide et son correctif astucieux !

Précision : le mot de passe doit être saisi au clavier, et non copié depuis le presse-papiers (voir les sections « Comment ça fonctionne »).

Que pouvez-vous faire

Tout d'abord, mettez à jour KeePass vers la version 2.54 ou une version supérieure.

Ensuite, si vous utilisez KeePass depuis longtemps, votre mot de passe maître (et éventuellement d'autres mots de passe) pourrait se trouver dans votre pagefile/swapfile, dans votre fichier d'hibernation et dans vos fichiers de vidage sur incident. Selon votre niveau de paranoïa, vous pouvez envisager les étapes suivantes pour résoudre le problème :

  1. Changez votre mot de passe maître
  2. Supprimez les fichiers de vidage sur incident (cela dépend de votre système d'exploitation ; sous Windows, au moins C:\Windows\memory.dmp, mais il peut y en avoir d'autres)
  3. Supprimez le fichier d'hibernation
  4. Supprimez le fichier d'échange (pagefile/swapfile) (cela peut être assez pénible, n'oubliez pas de le réactiver ensuite)
  5. Écrasez les données supprimées sur le disque dur pour empêcher le carving (par exemple Cipher avec /w sous Windows)
  6. Redémarrez votre ordinateur

Ou alors, écrasez simplement votre disque dur et réinstallez votre système d'exploitation à neuf.

Liste incomplète des produits non concernés (merci de créer une pull request ou une issue pour en ajouter d'autres). En règle générale, si ce n'est pas l'application KeePass 2.X d'origine écrite en .NET, elle n'est probablement pas concernée.

  • KeePassXC
  • Strongbox
  • KeePass 1.X


KeePass Master Password Dumper est un outil simple de type preuve de concept utilisé pour extraire le mot de passe maître de la mémoire de KeePass. Hormis le premier caractère du mot de passe, il est généralement capable de récupérer le mot de passe en clair. Aucune exécution de code sur le système cible n'est requise, seulement un dump mémoire. Peu importe d'où provient la mémoire : il peut s'agir du dump du processus, du fichier d'échange (pagefile.sys), du fichier d'hibernation (hiberfil.sys), de divers fichiers de vidage sur incident ou d'un dump RAM de l'ensemble du système. Peu importe que l'espace de travail soit verrouillé ou non. Il est également possible d'extraire le mot de passe de la RAM après l'arrêt de KeePass, bien que les chances que cela fonctionne diminuent avec le temps écoulé depuis lors.

Testé avec KeePass 2.53.1 sous Windows (anglais) et KeePass 2.47 sous Debian (paquet keepass2). Il devrait également fonctionner avec la version macOS. Malheureusement, l'activation de l'option Enter master key on secure desktop ne permet pas d'empêcher l'attaque. Le PoC peut rencontrer des problèmes avec les bases de données créées par des versions plus anciennes de KeePass, mais je n'ai pas pu reproduire ce problème (voir issue #4).

La découverte a été confirmée par Dominik Reichl, l'auteur de KeePass, ici. J'apprécie la réponse rapide de Dominik. Espérons que cela sera corrigé bientôt !

Configuration

  1. Installez .NET (la plupart des principaux systèmes d'exploitation sont pris en charge).
  2. Clonez le dépôt : git clone https://github.com/vdohney/keepass-password-dumper ou téléchargez-le depuis GitHub
  3. Entrez dans le répertoire du projet dans votre terminal (Powershell sous Windows) cd keepass-password-dumper
  4. dotnet run PATH_TO_DUMP

La façon la plus simple de tester cela sous Windows est de créer un dump du processus dans le Gestionnaire des tâches en cliquant avec le bouton droit sur le processus KeePass et en sélectionnant « Créer un fichier de vidage ».

Usage example

  1. Vous pouvez également ajouter un autre paramètre dotnet run PATH_TO_DUMP PATH_TO_PWDLIST pour générer une liste de tous les mots de passe possibles à partir du second caractère.

Devez-vous vous inquiéter ?

Cela dépend de votre modèle de menace. Si votre ordinateur est déjà infecté par un malware qui s'exécute en arrière-plan avec les privilèges de votre utilisateur, cette découverte n'aggrave pas vraiment votre situation. Cependant, il pourrait être plus facile pour le malware de se faire discret et d'échapper à l'antivirus, car contrairement à KeeTheft ou KeeFarce, aucune injection de processus ni aucun autre type d'exécution de code n'est nécessaire.

Si vous avez un soupçon raisonnable que quelqu'un puisse accéder à votre ordinateur et effectuer une analyse forensique, cela pourrait être grave. Dans le pire des cas, le mot de passe maître sera récupéré, même si KeePass est verrouillé ou n'est pas du tout en cours d'exécution.

Si vous utilisez le chiffrement complet du disque avec un mot de passe fort et que votre système est sain, vous ne devriez avoir aucun problème. Personne ne peut voler vos mots de passe à distance via Internet avec cette seule découverte.

Comment ça fonctionne

KeePass 2.X utilise une zone de texte développée sur mesure pour la saisie du mot de passe, SecureTextBoxEx. Cette zone de texte n'est pas utilisée uniquement pour la saisie du mot de passe maître, mais aussi à d'autres endroits de KeePass, comme les champs de modification des mots de passe (l'attaque peut donc également être utilisée pour récupérer leur contenu).

La faille exploitée ici est que pour chaque caractère saisi, une chaîne résiduelle est créée en mémoire. En raison du fonctionnement de .NET, il est presque impossible de s'en débarrasser une fois qu'elle est créée. Par exemple, lorsque « Password » est saisi, cela produit les chaînes résiduelles suivantes : •a, ••s, •••s, ••••w, •••••o, ••••••r, •••••••d. L'application POC recherche ces motifs dans le dump et propose un caractère de mot de passe probable pour chaque position du mot de passe.

La fiabilité de cette attaque peut varier selon la façon dont le mot de passe a été saisi et le nombre de mots de passe saisis par session. Cependant, j'ai découvert que même s'il y a plusieurs mots de passe par session ou des fautes de frappe, la manière dont le CLR .NET alloue ces chaînes fait qu'elles sont probablement bien ordonnées en mémoire. Ainsi, si trois mots de passe différents ont été saisis, vous obtiendrez probablement trois candidats pour chaque position de caractère, dans cet ordre, ce qui permet de récupérer les trois mots de passe.

Développement

C'est un POC rapide, donc probablement pas très fiable ni robuste. Merci de créer une pull request si vous trouvez un problème et de le corriger.

Les caractères autorisés pour le mot de passe sont actuellement codés en dur de cette façon : ^[\x20-\x7E]+$ (tous les caractères ASCII imprimables et l'espace).

Remerciements

Merci à adridlug pour avoir ajouté la possibilité de générer automatiquement la liste de mots de passe, et à ynuwenhof pour avoir remanié le code.

Projets associés

  • Implémentation Python du PoC par CMEPW
  • Implémentation Rust du PoC par ynuwenhof

Je n'en ai encore vérifié aucun.

Télécharger l’outil