
KeePass Extraction du mot de passe principal - Preuve de concept pour Linux
Remerciements à vdohney pour avoir découvert cette vulnérabilité et l'avoir signalée de manière responsable, et à Dominik Reichl pour ce formidable logiciel open source et pour sa reconnaissance et correction rapides du problème.
Probablement pas. Cette exploitation nécessite un accès au système de fichiers virtuel /proc. Plus précisément, proc/[pid]/mem.
Selon le manuel de proc, l'accès à ce fichier est régi par un mode d'accès ptrace, PTRACE_MODE_ATTACH_FSCREDS, qui est limité à l'utilisateur root dans la plupart des systèmes.
Si un acteur malveillant a déjà accès à ces fichiers, vous devriez avoir d'autres inquiétudes.
Veuillez mettre à jour vers KeePass 2.54 dès sa sortie (~juillet 2023), car cela atténuera en partie ce problème. (Forum)
Tout d'abord, il commence par vider la mémoire du processus Keepass.
Le comportement par défaut consiste à analyser tous les fichiers /proc/<pid>/cmdline et à stocker le pid de ceux contenant le mot-clé KeePass dans leur argument de ligne de commande.
Ensuite, il acquiert les adresses des cartes mémoire dans /proc/<pid>/maps qui ne sont pas directement associées à une bibliothèque, c'est-à-dire qu'elles ont un chemin de fichier vide.
Il stocke ensuite la mémoire de toutes ces cartes dans un tampon en utilisant /proc/<pid>/mem. Ce serait un comportement primitif pour vider la mémoire de n'importe quel processus sous Linux.
Il analyse la mémoire pour essayer de trouver des chaînes résiduelles provenant de la saisie du mot de passe maître par l'utilisateur, des chaînes qui ressemblent à •a, ••s, •••s, en séquence. La première lettre sera manquante. Vous pouvez trouver d'autres fonctionnalités en regardant le code.
gcc dump_pwd.c -o dump et vous êtes prêt.
