
BOF مسلح من CobaltStrike لـ CVE-2023-36874 لـ LPE في Windows Error Reporting
هذا هو تنفيذ ناضج وجاهز للتشغيل لـ CobaltStrike BOF لاستغلال Filip Dragovic (@filip_dragovic) CVE-2023-36874 Windows Error Reporting LPE exploit. لقد قام بالعمل الشاق في إنشاء استغلال قابل للتشغيل عن طريق عكس الـ DLL المعرض للخطر وإنشاء هياكل COM غير موثقة والتي تعتبر ضرورية لهذا الاستغلال.
هذا الـ BOF سيقوم بإسقاط ملف EXE محدد من قبل المستخدم على القرص في الجهاز المستهدف ثم تشغيل الثغرة، مما يؤدي إلى تشغيل الـ EXE بواسطة SYSTEM.
تقر Microsoft لمجموعة تحليل التهديدات من Google عن الكشف عن هذه الثغرة، لكنها وصلت إلى انتباهي من خلال بحث CrowdStrike المنشور.
تسرد هذه التدوينة العديد من القطع الأثرية المختلفة المتعلقة بهذا الاستغلال؛ بناءً على اصطلاح تسمية القطع الأثرية (8.exe, 2016.exe, 2019.exe, 10new+11.exe, وما إلى ذلك) بالإضافة إلى حقيقة أن Microsoft أصدرت تصحيحات له تعود إلى Server 2008، يمكن استنتاج أن هذه الثغرة تؤثر على عدد كبير من إصدارات Windows المختلفة.
هذا الـ BOF يعمل فقط ضد Windows 10 و Windows 11 21H1 - 22H2؛ قد يعمل ضد 20H1/H2 أيضًا، لكن ليست لدي آلة لاختبار ذلك. في الإصدارات السابقة من Windows، سيتسبب هذا الاستغلال في تعطل العملية التي تشغله. لدي حدس أن هذا يتعلق بالاختلافات في هياكل COM المرتبطة بـ wercplsupport.dll، ومع بعض العمل الإضافي يجب أن يكون من الممكن التغلب على ذلك، لكن هناك العديد من الاستغلالات الأخرى للإصدارات السابقة من Windows لذا سأترك تلك المهمة للآخرين الآن.
قم بتحميل wer_lpe.cna في CobaltStrike وسيظهر أمر wer_lpe.
قم بتوفير المسار إلى الـ EXE الذي تريد رفعه، واختياريًا دليلًا يمكن للمستخدم الحالي ذو الصلاحيات المنخفضة الكتابة فيه. إذا لم يتم تحديد دليل، فسيحاول wer_lpe الكتابة إلى الدليل الحالي لـ Beacon.


تمت إضافة بعض الميزات الإضافية إلى الـ POC الأصلي للحفاظ على OPSEC / محاولة التخلص من التوقيعات الثابتة وكذلك التنظيف التلقائي بعد الاستغلال.
كجزء من الاستغلال، يجب إنشاء مجلد جديد في دليل C:\ProgramData\Microsoft\Windows\WER\ReportArchive. سيحتوي هذا المجلد على ملف Report.wer الذي يجب إسقاطه على القرص كجزء من سلسلة الاستغلال. يقوم الاستغلال الأصلي من Filip بإنشاء دليل باسم "MyFolder". من خلال النظر إلى المجلدات/التقارير الحقيقية الموجودة في دليل ReportArchive يمكننا الحصول على فكرة أفضل عن اصطلاح تسمية سيتجاوز الاكتشافات السطحية بشكل أفضل.

يحتوي الـ BOF على نماذج من اثنين من المجلدات الحقيقية الموجودة في دليل ReportArchive لجهاز ما (أحدهما معلق كتعليق). في وقت التشغيل، سيولد wer_lpe بشكل عشوائي GUID ويلحقه بالنموذج المحدد لإنشاء مجلد معقول (وفريد إحصائيًا) لإنشاء ملف Report.wer فيه.

ملف report.wer هو مؤشر ثابت سهل آخر يمكن من خلاله اكتشاف هذا الاستغلال. يقوم الاستغلال الأصلي بتضمين ملف Report.wer كمورد داخل الـ EXE؛ هذا الـ BOF سيبحث عن ملف 'Report.wer' ويقرأه من دليل الاستغلال على جهاز الهجوم ويرسله إلى Beacon للكتابة على القرص. هذا يفتح الباب أمام المستخدمين لاستبدال ملف Report.wer المرفق مسبقًا بملف من اختيارهم.
تتطلب العديد من استدعاءات COM داخل الاستغلال سلاسل نصية عشوائية حتى يتمكن الاستغلال من المضي قدمًا؛ تم استبدال هذه أيضًا بسلاسل عشوائية تم إنشاؤها وقت التشغيل.
نظرًا لأن هذا الاستغلال يقوم بتشغيل EXE عشوائي، يمكن أن يصبح التنظيف مشكلة إذا كنت تريد أن يعمل الـ EXE باستمرار (في حالة تشغيل Beacon جديد) لأن الـ EXE سيكون مقفلاً على القرص. قام Wer_lpe بتنفيذ الحذف الذاتي الذي أنشأه LloydLabs (والذي ما زلت أحصل منه على مسافة ممتازة) لمعالجة هذه المشكلة. سيحاول Wer_lpe حذف/تنظيف جميع الملفات والأدلة التي تم إنشاؤها أثناء سير الاستغلال وتقديم تقرير عن نجاحه أو فشله في ذلك.
نظرًا لأن محاولة تشغيل EXE غير موقع وعشوائي في عام 2023 على جهاز مستهدف غالبًا ما تكون ممارسة عقيمة، فقد استكشفت محاولة جعل الاستغلال يشغل الـ wermgr.exe الحقيقي (منسوخًا إلى دليل عشوائي) للاستفادة من فرص تحميل DLL الجانبي. نظرًا لطبيعة الاستغلال، هذا غير ممكن. انظر سلسلة التغريدات هذه لمزيد من التفاصيل.
سيفشل هذا الاستغلال إذا تم تشغيله بواسطة مستخدم لديه صلاحيات المسؤول المحلي على الجهاز؛ هذا بسبب أن الكود المعرض للخطر يتقمص شخصية المستخدم مع (بإعادة الصياغة) "أعلى تكامل متاح". بالنسبة للمستخدم الذي يعتبر مسؤولًا محليًا، هذا يعني أن رمز المسؤول الخاص به سيتم تقمصه، والذي لديه خريطة أجهزة DOS منفصلة عن رمز التكامل المتوسط الخاص به والذي لديه إعادة التوجيه المطلوبة لتفعيل الثغرة. هذا الاستغلال ليس بديلاً عن تجاوز UAC.
أصدرت Microsoft تصحيحًا لهذه الثغرة في 11 يوليو 2023 كجزء من التحديث الأمني الشهري لجميع أنظمة التشغيل الممكنة تقريبًا التي قد لا يزال الناس يشغلونها؛ قم بتصحيح أجهزتك يا ناس.
أولاً وقبل كل شيء، شكر كبير لـ Filip Dragovic (@filip_dragovic) على الكود العامل وكذلك على استعداده للدردشة معي وتعليمي عن عملية التطوير الخاصة به لهذا الاستغلال.
CrowdStrike لـ مقالهم.
LloydLabs لـ كود الحذف الذاتي.