يستضيف هذا المستودع مواد متعلقة بـ CVE-2024-30052. يمكن العثور على مزيد من التفاصيل حول الثغرة في مقالتي.
البنية
- مجلد builder يحتوي على ملفات مصدرية لبرنامج يُنشئ ملف تفريغ (dump file) يستغل الثغرة.
- مجلد poc يحتوي على ثلاثة ملفات لإثبات المفهوم (proof-of-concept) ستقوم بتشغيل calc.exe بمجرد فتحها - chm وhta وpy.
- مجلد manifest يحتوي على ملف manifest لإصدار VS 17.8.10، لتسهيل تنزيل هذا الإصدار المحدد محليًا عند الاختبار.
تشغيل PoC
- افتح CVE-2024-30052-builder.sln في Visual Studio 2022 وقم بتجميعه.
- قم بتشغيل
CVE-2024-30052-builder.exe /path/to/repo/poc/poc.chm (أو أحد ملفات poc.hta أو poc.py). سيؤدي ذلك إلى إنشاء ملف تفريغ في نفس الدليل.
- افتح ملف التفريغ في VS 2022 وانقر على "Debug with Managed" أو "Debug With Mixed".
- ستظهر لك رسالة منبثقة تخبرك بأن الملف سيتم فتحه في محرر خارجي. اضغط OK أو X.
- سيتم الآن تشغيل calc.exe.
ملاحظة:
- يجب أن يكون VS 2022 Community مثبتًا لديك لكي يعمل الملف التنفيذي builder مباشرة دون أي إعدادات إضافية. بدلاً من ذلك، يمكنك استبدال المسار إلى csc.exe في دالة CompileSource.
- فقط إصدارات VS 2022 الأقدم من 17.8.11 هي المعرضة للثغرة. يمكنك تثبيت الإصدار 17.8.10 عن طريق تنفيذ:
"C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe" install --channelId VisualStudio.17.Release --productId Microsoft.VisualStudio.Product.Community --channelURI "https://raw.githubusercontent.com/ynwarcs/CVE-2024-30052/refs/heads/main/manifest/ChannelManifest_17.8.10.json?token=GHSAT0AAAAAACWHD36ESW2XDN5U2AOC22OYZYAHHJA"
- لكي يعمل ملف الـ .py الخاص بـ PoC، يجب تثبيت Python على النظام. أما ملفّا PoC الآخران فيجب أن يعملا بشكل جيد.
عرض توضيحي
cve-2024-30052.webm