
إثبات مفهوم تعليمي لثغرة CVE-2022-30190 (Follina).
تطوير برمجيات خبيثة تعليمي، استغلال، تحليل وتخفيف
إثبات مفهوم موثق بالكامل يوضح ثغرة Follina - بدءًا من التسليم عبر الهندسة الاجتماعية وصولًا إلى الاستغلال والتحليل الجنائي وتطوير التصحيح.
⚠️ للاستخدام التعليمي فقط. نُفذت جميع الأنشطة في هذا المستودع حصريًا داخل بيئة مختبر معزولة للآلات الافتراضية ضمن وحدة IE4012 لتكتيكات واستراتيجيات القرصنة الهجومية في SLIIT. لا ينبغي استخدام أي شيء هنا خارج مختبر خاضع للتحكم. لا تختبر ضد أنظمة أو شبكات حقيقية.
CVE-2022-30190، المعروفة باسم Follina، هي ثغرة تنفيذ تعليمات برمجية عن بُعد في أداة تشخيص الدعم من مايكروسوفت (MSDT). تم الكشف عنها علنًا في 30 مايو 2022 وحصلت على درجة CVSS قدرها 7.8 (مرتفعة). يعمل الاستغلال عند فتح الضحية لمستند Microsoft Office مصمم خصيصًا - دون الحاجة إلى وحدات ماكرو. يجلب المستند حمولة HTML من خادم HTTP يتحكم فيه المهاجم، والتي تستدعي معالج بروتوكول URI الخاص بـ ms-msdt: وتمرر أوامر تعسفية إلى النظام عبر وسيطة PCWDiagnostic.
SourceCode.zip/
├── PoC.py # Main exploit script
├── patch.py # Mitigation patch script
├── Invoice_FS-2026-8821_OVERDUE.docx # Generated malicious Word document
└── doc/ # Internal XML files extracted from the docx
├── word/
│ ├── document.xml # Main document body
│ └── _rels/
│ └── document.xml.rels # External OLE reference pointing to attacker server
└── [Content_Types].xml
الطُعم هو بريد إلكتروني تصيدي ينتحل صفة منصة فوترة تُدعى FinanceSync، يدّعي أن فاتورة متأخرة. المرفق هو أرشيف zip محمي بكلمة مرور (Invoice.zip) يحتوي على مستند Word الخبيث. استخدام أرشيف مشفر يتجاوز معظم أدوات فحص بوابات البريد الإلكتروني لأن المحتويات لا يمكن فحصها.
Invoice_FS-2026-8821_OVERDUE.docx ويشغّل خادم HTTP على المنفذ 8000word/_rels/document.xml.rels يشير إلى http://<attacker_ip>:8000/index.html2026-03-25). إذا لم يتحقق شرط التاريخ، لا يتم تنفيذ أي شيءms-msdt: مع وسيطة PCWDiagnostic تحتوي على أمر cmd.exeWINWORD.EXE → msdt.exe → cmd.exe تُنفَّذ وتكتب sys_cache.dat إلى C:\Users\Public\ كدليل على الاختراقيقوم patch.py بإزالة معالج بروتوكول URI الخاص بـ ms-msdt من سجل ويندوز، مما يكسر سلسلة الاستغلال في مرحلة تحليل URI قبل أن تصل أي وسائط يتحكم بها المهاجم إلى MSDT.
جهاز المهاجم (Kali Linux)
جهاز الضحية (Windows 10)
ms-msdt تحت HKEY_CLASSES_ROOT2026-03-25 أو لاحقًا# On the attacker machine
python3 PoC.py
يقوم البرنامج النصي بإنشاء مستند Word وتشغيل خادم HTTP. انقل المستند إلى جهاز الضحية الافتراضي وافتحه. سيسجّل طرفية المهاجم الطلب الوارد من Word.
يجب تشغيل سكربت التصحيح بصلاحيات المسؤول على جهاز الضحية الافتراضي الذي يعمل بنظام Windows.
# Check current status
python patch.py --status
# Apply the patch (removes ms-msdt registry key)
python patch.py --apply
# Roll back to vulnerable state (for re-testing)
python patch.py --rollback
| الجهاز | الدور | عنوان IP |
|---|---|---|
| Kali Linux VM | المهاجم - يشغّل PoC.py | 192.168.56.10 |
| Windows 10 VM | الضحية - يفتح المستند | 192.168.56.20 |
تم ربط الجهازين الافتراضيين عبر شبكة Host-Only الخاصة بـ VirtualBox دون وصول إلى الإنترنت.
| الحقل | التفاصيل |
|---|
| معرّف CVE | CVE-2022-30190 |
| الاسم الشائع | Follina |
| درجة CVSS | 7.8 (مرتفعة) |
| متجه CVSS | AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H |
| المكوّن | Microsoft Support Diagnostic Tool (MSDT) |
| الإصدارات المتأثرة | Windows 7 - 11 / Server 2008 R2 - 2022 |
| تاريخ الكشف | 30 مايو 2022 |
| التصحيح الرسمي | KB5014697 (ثلاثاء التصحيح لشهر يونيو 2022) |
| الاختبار | قبل التصحيح | بعد التصحيح |
|---|
| وجود مفتاح التسجيل ms-msdt | نعم (قابل للاستغلال) | لا (مُخفَّف) |
| طلب HTTP المُرسل من Word | نعم | نعم (بدون تغيير) |
| تم تشغيل msdt.exe | نعم | لا |
| تم تشغيل cmd.exe | نعم | لا |
| تم إنشاء sys_cache.dat | نعم | لا |
| نجاح الاستغلال | نعم | لا |