
يستعيد كلمة المرور الرئيسية من تفريغ ذاكرة Keepass، باستخدام تلميح من القوة الغاشمة.
نسخة Python من vdohney/keepass-password-dumper (CVE-2023-32784) — كل الفضل في تنفيذ C# الأصلي والتقنية الأساسية يعود إلى vdohney.
يقوم السكربت بفحص تفريغ ذاكرة العملية بحثًا عن سلاسل العرض المتبقية التي يتركها SecureTextBoxEx الخاص بـ KeePass 2.x خلفه أثناء قيام المستخدم بكتابة كلمة المرور الرئيسية، ويستعيد كل حرف من كلمة المرور باستثناء الحرف الأول. اختياريًا، يقوم بعد ذلك بفرض الحرف الأول المجهول ضد ملف KDBX باستخدام keepassxc-cli.
الخلل يكمن في عنصر التحكم المخصص SecureTextBoxEx: لكل حرف يتم كتابته، يحتفظ .NET بسلسلة متبقية في الذاكرة المُدارة بالشكل
●a, ●●s, ●●●s, … والتي يمكن من خلالها استعادة كل حرف من كلمة المرور بعد الحرف الأول.
إذا كنت تستخدم KeePass ≤ 2.53.1، افترض أن كلمة المرور الرئيسية معرضة للخطر:
C:\Windows\memory.dmp),powercfg /h off على Windows),cipher /w: على Windows) حتى لا يمكن استخراج البقايا من القطاعات المخصصة سابقًا,keepassxc-cli في $PATH (مطلوب فقط لـ --kdbx)على Debian / Ubuntu، قم بتثبيت KeePassXC CLI إذا كنت تخطط لفرض القوة الغاشمة:
sudo apt install keepassxc
# استعادة الأحرف المرشحة وطباعتها
python3 keepass_dumper.py memory.dmp
# تفريغ قائمة المرشحين المولدة إلى ملف
python3 keepass_dumper.py memory.dmp -p candidates.txt
# الاستعادة وفرض الحرف الأول المفقود ضد KDBX
python3 keepass_dumper.py memory.dmp --kdbx db.kdbx
شغّل python3 keepass_dumper.py --help للحصول على قائمة الخيارات الكاملة.