عرض استغلال CVE-2023-32784
نظرة عامة على المشروع
يوفر هذا المستودع عرضًا توضيحيًا لثغرة CVE-2023-32784، وهي ثغرة حرجة موجودة في إصدارات KeePass السابقة للإصدار 2.54. يسمح الاستغلال باستعادة كلمة المرور الرئيسية من خلال تفريغات الذاكرة، مما يكشف بيانات الاعتماد المخزنة. توضح هذه الوثائق دليلًا خطوة بخطوة لإعداد بيئة الاستغلال، وتشغيل أداة إثبات المفهوم (PoC)، وفهم استراتيجيات التخفيف.
تفاصيل الثغرة
الوصف
CVE-2023-32784 هي ثغرة تسريب للذاكرة في إصدارات KeePass من 2.0 حتى 2.53، ناجمة عن معالجة غير صحيحة للسلاسل النصية داخل مكوّن Secure Textbox EX في KeePass. كل حرف يُدخل من كلمة المرور الرئيسية يترك آثارًا في الذاكرة، مما يجعل استعادتها ممكنة عبر تفريغات الذاكرة.
الخصائص الرئيسية:
- الخطورة: عالية
- قابلية الاستغلال: يتطلب وصولًا ماديًا أو محليًا إلى تفريغات الذاكرة؛ ولا يتضمن تنفيذًا عن بُعد للكود.
- الأثر: استخراج كلمة المرور الرئيسية (باستثناء الحرف الأول) من الذاكرة يتيح وصولًا غير مصرح به إلى بيانات الاعتماد المخزنة.
تفاصيل الاستغلال
الأدوات والتقنيات
يستفيد الاستغلال من أداة KeePass Master Password Dumper، التي تستخدم التعرف على الأنماط في الذاكرة لاستخراج الأحرف من تفريغات الذاكرة.
- القيود: لا يتم استرداد الحرف الأول من كلمة المرور، لكن هذا ليس عائقًا كبيرًا حيث يمكن إعادة بناء باقي كلمة المرور أو تخمينها بسهولة.
- نموذج التهديد: تُبرز هذه الثغرة المخاطر على الأنظمة المشتركة أو غير المراقبة، حيث يمكن الوصول إلى تفريغات الذاكرة (مثل
pagefile.sys أو hiberfil.sys).
خطة الاستغلال
المتطلبات الأساسية
لتنفيذ هذا الاستغلال بنجاح، يلزم توفر البيئة والأدوات التالية:
- برنامج المحاكاة الافتراضية: VMware أو أداة مكافئة لعزل بيئة الاختبار.
- ملف Windows 10 ISO: نظام التشغيل لتثبيت KeePass المعرض للثغرة.
- KeePass 2.x: إصدار سابق للإصدار 2.54.
- وقت تشغيل .NET 7: مطلوب لتشغيل أداة إثبات المفهوم (PoC).
- أداة إثبات المفهوم (PoC): KeePass Password Dumper، متاحة على GitHub.
الخطوات مع المبررات
1. إعداد البيئة
- لماذا جهاز افتراضي (VM)؟
توفر الأجهزة الافتراضية بيئة آمنة ومضبوطة لاختبار الثغرات دون المخاطرة بالأنظمة الإنتاجية.
- الخطوات:
- ثبّت VMware وأنشئ مثيل جهاز افتراضي جديد بنظام Windows 10.
- ثبّت KeePass 2.x (مثل الإصدار 2.53) وعيّن كلمة مرور رئيسية.
- مثال لكلمة المرور الرئيسية:
user.
2. تثبيت التبعيات
- لماذا .NET 7؟
أداة إثبات المفهوم مبنية على إطار عمل .NET 7. استخدام وقت التشغيل الصحيح يضمن التوافق.
- الخطوات:
- حمّل وثبّت
.NET 7 من موقع Microsoft الرسمي.
- تأكد من التثبيت باستخدام:
3. إنشاء تفريغ الذاكرة
- لماذا تفريغ ذاكرة عملية KeePass؟
تكمن الثغرة في معالجة KeePass للذاكرة. يتيح التقاط تفريغ للذاكرة تحليل البصمة الذاكرية حيث توجد آثار كلمة المرور.
- الخطوات:
- افتح KeePass وألغِ قفل قاعدة البيانات باستخدام كلمة المرور الرئيسية.
- استخدم إدارة المهام لإنشاء ملف
.DMP لعملية KeePass:
- ابحث عن KeePass في إدارة المهام.
- انقر بزر الماوس الأيمن واختر إنشاء ملف تفريغ.
- لاحظ موقع ملف
.DMP (عادةً في مجلد %TEMP%).
4. تشغيل أداة إثبات المفهوم
- لماذا نسخ التفريغ إلى مجلد أداة إثبات المفهوم؟
تعالج أداة إثبات المفهوم ملفات التفريغ داخل مجلد العمل الخاص بها. تضمن هذه الخطوة تحليل الملف الصحيح.
- الخطوات:
- انقل ملف
.DMP إلى مجلد أداة إثبات المفهوم المستخرج.
- أعد تسمية الملف إلى
KeePass.DMP للاتساق.
- افتح طرفية (Terminal)، وانتقل إلى مجلد أداة إثبات المفهوم، ونفّذ الأداة:
cd Downloads/keepass-password-dumper-main
dotnet run KeePass.DMP
- النتيجة المتوقعة:
ستقوم الأداة بإخراج أحرف كلمة المرور باستثناء الحرف الأول.
مثال على تسلسل الأوامر
cd Downloads/keepass-password-dumper-main
dir
dotnet run KeePass.DMP
استراتيجيات التخفيف
الإصلاحات الموصى بها
-
تحديث KeePass:
يؤدي الترقية إلى KeePass 2.54 إلى معالجة الثغرة من خلال تقديم التحسينات التالية:
- تعزيز معالجة الذاكرة للبيانات الحساسة.
- إدراج سلاسل نصية عشوائية لتقليل قابلية التنبؤ في الذاكرة.
-
تأمين تفريغات الذاكرة:
- امسح أو استبدل بانتظام الملفات الحساسة مثل
pagefile.sys وhiberfil.sys.
- أعد تشغيل الأنظمة بشكل دوري لمسح البيانات الحساسة من الذاكرة.
-
ممارسة إدارة آمنة للذاكرة:
يجب على المطورين اعتماد أفضل الممارسات للتعامل مع السلاسل النصية الحساسة، مثل استخدام هياكل بيانات قابلة للتغيير أو مسح مخازن الذاكرة المؤقتة بعد الاستخدام.
ملاحظات مهمة
- للاستخدام التوضيحي فقط:
هذا الاستغلال مخصص للأغراض التعليمية في بيئة خاضعة للتحكم. لا تستخدم هذه المعلومات بشكل ضار.
- الوعي بالأثر:
يجب على المؤسسات تقييم آثار هذه الثغرة على الأنظمة المشتركة أو متعددة المستخدمين وتنفيذ إجراءات التخفيف وفقًا لذلك.
شاهد فيديو اليوتيوب الخاص بي للاستغلال المباشر للثغرة
https://youtu.be/o855F0RvI30?si=WXOtPu-jgtC31O-5
المراجع
المؤلف
Bhargav Raj Dutta
بكالوريوس تكنولوجيا المعلومات في الأمن السيبراني والأدلة الرقمية الجنائية (Murdoch University)
لأي أسئلة أو استفسارات تعاون، لا تتردد في التواصل عبر [LinkedIn www.linkedin.com/in/bhargav-raj-dutta-80251a1b4)