
PoC لـ CVE-2022-41120/CVE-2022-44704: حذف/كتابة ملفات عشوائية في Sysmon عبر ClipboardChange RPC مما يؤدي إلى تصعيد الامتيازات محليًا على Windows.
إثبات مفهوم للحذف/الكتابة العشوائية للملفات في Sysmon (CVE-2022-41120/CVE-2022-44704)
تقع الثغرة في الكود المسؤول عن حدث ClipboardChange الذي يمكن الوصول إليه عبر RPC. يمكن للمستخدمين المحليين إرسال بيانات إلى خادم RPC، والتي ستُكتب بعد ذلك في دليل C:\Sysmon (ArchiveDirectory الافتراضي) ثم تُحذف لاحقًا. في الإصدارات السابقة لـ 14.11، لم يكن Sysmon يتحقق مما إذا كان الدليل قد أُنشئ بواسطة مستخدم منخفض الامتياز أو إذا كان junction، وهو ما يمكن استغلاله لتنفيذ حذف/كتابة عشوائية للملفات (محدودة نوعًا ما حيث يمكنك فقط كتابة سلاسل نصية) في سياق مستخدم NT AUTHORITY\SYSTEM. في الإصدار 14.11/14.12، وبعد الإصلاح الأولي، أصبح Sysmon يتحقق مما إذا كان الدليل موجودًا ويرفض كتابة/حذف الملفات إذا كان الدليل موجودًا. تم تجاوز هذا التصحيح عن طريق السماح لـ Sysmon بإنشاء دليل C:\Sysmon أولاً (باستخدام CreateDirectory API) وفتح مقبض عليه قبل استدعاء SetFileSecurity وتغيير DACLs على دليل C:\Sysmon.
تم إجراء جميع الاختبارات على Windows 10.
في إثبات المفهوم الخاص بي، قمت بربط الحذف/الكتابة العشوائية للملفات بحذف ملف معلومات الإعداد الخاص ببرنامج تشغيل الطابعة أولاً ثم كتابة ملف .INF معدّل (نظرًا لأن خدمة spooler مفعّلة افتراضيًا ويمكن للمستخدمين منخفضي الامتياز إعادة تثبيت برامج تشغيل الطابعة على عملاء Windows). يمكن إساءة استخدام ملفات معلومات الإعداد لتنفيذ جميع أنواع العمليات مثل إنشاء الخدمات، تعديل السجل، نسخ الملفات، إلخ. اخترت نسخ بعض ملفات DLL الافتراضية للطابعة في c:\windows\system32 وتعيين أذونات عليها بحيث يمكن للمستخدمين منخفضي الامتياز تعديلها، ويتم ذلك باستخدام توجيه CopyFiles (https://learn.microsoft.com/en-us/windows-hardware/drivers/install/inf-copyfiles-directive). بمجرد نسخ الملف، يتم استبداله بملف DLL سيُطلق عملية cmd.exe بصلاحيات مرتفعة. من الممكن إساءة استخدام الحذف العشوائي للملفات فقط من أجل LPE عبر إساءة استخدام سلوك مثبّت Windows (الحيلة اكتُشفت بواسطة @KLINIX5 وموثقة من قبل ZDI هنا https://www.zerodayinitiative.com/blog/2022/3/16/abusing-arbitrary-file-deletes-to-escalate-privilege-and-other-great-tricks).
تم إجراء جميع الاختبارات على الإصدارات 13.34-14.12. لا أعرف بالضبط أقل إصدار معرض للخطر، لكنني أعتقد أن الإصدارات 12.0 - 14.12 معرضة للخطر لأن حدث ClipboardChange أُدخل في الإصدار 12.0. لاستغلال هذه الثغرة، يجب ألا تكون الأحداث التي تستخدم ArchiveDirectory مفعّلة (ClipboardChange وFileDelete على ما أعتقد)، لأنه إذا تم استخدام هذين الحدثين فسيتم إنشاء ArchiveDirectory وستكون له أذونات آمنة.
إذا كنت تستخدم إصدارًا معرضًا للخطر ولا يمكنك التحديث، فيمكنك إنشاء ArchiveDirectory (C:\Sysmon افتراضيًا) وتعيين أذونات تسمح بالوصول فقط لحساب NT AUTHORITY\SYSTEM.