
مختبر تعليمي يُظهر CVE-2021-36934 (HiveNightmare) - Windows LPE عبر سوء تكوين قائمة التحكم في الوصول لنسخة الظل.
إعادة إنتاج وتحليل ثغرة HiveNightmare في بيئة مختبرية خاضعة للرقابة.
CVE-2021-36934، يُلقب بـ "SeriousSAM" أو "HiveNightmare"، هي ثغرة تصعيد صلاحيات محلية (LPE) تؤثر على ويندوز 10 من الإصدار 1809 فصاعدًا، والإصدارات الأولية من ويندوز 11، بالإضافة إلى ويندوز سيرفر 2019 و2022. تسمح لمستخدم عادي بنسخ والوصول إلى ملفات النظام المحمية التي تحتوي على بيانات حساسة، مثل تجزئات كلمات المرور المحلية. يكمن الجوهر في قوائم التحكم في الوصول (ACLs) الخاطئة التي تمنح أذونات القراءة لجميع المستخدمين على ملفات النظام الحساسة (خاصة خلايا SAM وSYSTEM وSECURITY). بينما تظل هذه الملفات مقفلة أثناء التشغيل العادي، فإن نسخها الاحتياطية (عبر نسخ الظل/نقاط الاستعادة) ترث نفس الأذونات الخاطئة وتصبح قابلة للوصول والاستغلال من قبل أي مستخدم للنظام.
يتطلب استغلال الثغرة شرطين أساسيين: (1) تمكين حماية النظام و (2) وجود نقطة استعادة. غالبًا ما تكون هذه العناصر موجودة افتراضيًا على أجهزة ويندوز 10/11. يعتمد التطبيق على استخراج نسخ من ملفات SAM وSYSTEM وSECURITY من نسخ الظل (نقاط الاستعادة). هذه الملفات، المقفلة عادةً أثناء تنفيذ النظام، تصبح قابلة للوصول عبر نسخها الفورية التي ترث نفس قوائم ACL الأصلية.
من حساب مستخدم غير مميز، يمكن الاستغلال عبر نصوص برمجية عامة، أشهرها hivenightmare.exe، المكتوب بلغة C. للملفات الثلاثة المستردة أدوار تكميلية. SAM يحتوي على تجزئات كلمات مرور الحسابات المحلية (مشفرة)، SECURITY يخزن أسرار LSA إضافية (بيانات اعتماد مخبأة، كلمات مرور الخدمات، مشفرة أيضًا)، و SYSTEM يوفر مفتاح فك التشفير (BootKey). لتصعيد الصلاحيات المحلي الصارم، هناك حاجة فقط إلى SAM و SYSTEM لاستخراج تجزئات NTLM. بمجرد الحصول على هذه الملفات، يمكن لأدوات مثل secretsdump.py أو mimikatz فك تشفير التجزئات وتنفيذ هجمات pass-the-hash، أو الحصول على وصول المسؤول الكامل عبر psexec.py.
يعتمد تطبيق الاستغلال على استخراج خلايا ويندوز (SAM, SYSTEM, SECURITY) من نسخ الظل/نقاط الاستعادة، ثم استخدام التجزئات المستخرجة للحصول على وصول SYSTEM عبر secretsdump.py و psexec.py.
المنصة المختبرة: ويندوز 10، الإصدار 1903 (تحديث ديسمبر 2020).
1. السياق: إصدار ويندوز نحن نستخدم إصدار ويندوز 10 (1903، تحديث ديسمبر 2020) الذي يحتوي على الثغرة قيد الدراسة.
2. الأذونات على الملفات الحساسة نلاحظ أن أذونات NTFS على خلايا SAM وSYSTEM وSECURITY تسمح للمستخدمين المحليين بالوصول للقراءة، موروثة هنا من مجلد config.
3. تشغيل hivenightmare من مستخدم محلي بدون نقطة استعادة عند تشغيل hivenightmare.exe من حساب محلي بدون نقاط استعادة/نسخ ظل، يفشل الأداة لأنها لا تجد أي نقاط استعادة لاستغلالها.
4. تمكين حماية النظام وإنشاء نقطة استعادة
لإنشاء الظروف اللازمة لاستخراج الخلية، نقوم بتمكين حماية النظام ثم إنشاء نقطة استعادة يدويًا. بمجرد وجود نقطة الاستعادة، سيتمكن hivenightmare من الوصول إلى نسخ الملفات الحساسة.

5. استخراج الخلايا الحساسة بعد إنشاء نقطة الاستعادة، يتم تشغيل hivenightmare.exe مرة أخرى ويقوم بنجاح باستخراج ملفات SAM وSYSTEM وSECURITY من نسخة الظل. هناك العديد من النصوص البرمجية الأخرى (C#, Go, PowerShell,...). بغض النظر عن التقنية المستخدمة، تستهدف جميع النصوص المسار نفسه:
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy[i]\Windows\System32\config\[SENSITIVE FILE]
6. التحليل على Kali: استرجاع التجزئات باستخدام secretsdump.py يتم نقل الملفات المستخرجة إلى جهاز Kali. نستخدم secretsdump.py (Impacket) لعرض الحسابات واسترجاع التجزئات في نص عادي.
7. تصعيد الصلاحيات: إعادة استخدام التجزئة عبر psexec.py باستخدام التجزئة المستخرجة، نستخدم psexec.py للمصادقة وفتح جلسة بصلاحيات SYSTEM، مما يمنح سيطرة كاملة على الجهاز.
الإصلاح الرسمي من مايكروسوفت (KB5004605، يوليو 2021) يعيد قوائم ACL المناسبة على الملفات المتأثرة. ومع ذلك، يُوصى بعدة إجراءات تكميلية. أولاً، التحقق يدويًا من الأذونات على C:\Windows\System32\config للتأكد من أن فقط SYSTEM والمسؤولين لديهم وصول كامل. ثانيًا، حذف نسخ الظل القديمة التي تم إنشاؤها قبل تطبيق التصحيح، لأنها تحتفظ بالأذونات الضعيفة. لأسباب تشغيلية (خطر فقدان البيانات، تأثير على المستخدم)، لم يتم تضمين الحذف التلقائي لنقاط الاستعادة القديمة في التصحيح الموزع. أخيرًا، مراقبة الوصول غير المعتاد إلى نسخ الظل من خلال سجلات أحداث النظام.
نوضح هنا كيفية تخفيف الثغرة من خلال التصحيح اليدوي لقوائم ACL وحذف نسخ الظل السابقة.
1. التصحيح اليدوي لقوائم ACL يقوم هذا الأمر بكسر الوراثة على مجلد C:\Windows\System32\config.
2. التحقق بعد تصحيح قوائم ACL لا يزال وجود نقطة الاستعادة التي تم إنشاؤها قبل التصحيح يسمح باستخراج الخلايا من نسخة الظل المرتبطة بها.
3. حذف نسخة الظل
4. التحقق النهائي بعد حذف نسخ الظل القديمة، يفشل استخراج الخلايا ولم تعد الثغرة قابلة للاستغلال من حساب محلي.
توضح CVE-2021-36934 كيف يمكن لخطأ بسيط في تكوين قوائم ACL أن يعرض أمان نظام ويندوز للخطر تمامًا. تستغل الثغرة ميزة أمنية (نقاط الاستعادة) وتحولها إلى ناقل هجوم، مما يسمح لمستخدم غير ممتع وربما خبيث بالحصول على وصول المسؤول الكامل. في الختام، تسلط CVE-2021-36934 الضوء على ضرورة تدقيق أذونات النظام بانتظام ومراقبة الوصول إلى الملفات الحساسة، حتى في نسخها الاحتياطية.
لأغراض تعليمية فقط. لا تستخدم على أنظمة دون إذن.