
إثبات مفهوم باستخدام python لـ CVE-2023-38146 "ThemeBleed"
شكرٌ كبير إلى gabe_k على إثبات المفهوم (PoC) الأولي بلغة C#، وعلى اكتشافه الفعلي لهذه الثغرة CVE. هذه إعادة كتابة لكوده بلغة Python، مع إعادة استخدام ملفات المراحل الخاصة به. لمشاهدة الـ PoC الأصلي، يمكنك الاطلاع على صفحته هنا: https://github.com/gabe-k/themebleed
إثبات مفهوم (PoC) باستخدام Python لثغرة CVE-2023-38146 المعروفة باسم "ThemeBleed".
يستخدم هذا البرنامج خادم SMB الخاص بـ Impacket ويقوم بتجاوز دالة smb2Create، وبالتالي يتطلب وظائف Impacket.
Usage:
Replace {IP-ADDRESS} in the exploit.theme file
python3 ThemeBleedServer.py - Run the SMB server
Use the .theme file on a vulnerable windows 11 machine
As in Gabe's Exploit you need to create a new stage 3 file that is a dll that exports VerifyThemeVersion, the current file only opens Calc.
تبدأ ثغرة ThemeBleed بملف .THEME يطلب ملف msstyles من الإنترنت. إذا تم استخدام ملف برقم إصدار "999"، فسيتم استدعاء دالة ReviseVersionIfNecessary، التي تقوم بتحميل ملف .dll بطريقة غير آمنة، مما يسمح للمهاجم بتحميل ملف مكتبة غير مُتحقق منه.
جمعت هذا الكود لأنني لم أستطع تجميع كود C# في linux، وربما يعود ذلك إلى جهلي بكيفية عمله، لكنني أعرف كيف أبرمج بلغة Python.
الأسطر 44-53 في ThemeBleedServer.py/overrideSmb2Create - هذا هو المكان الذي يحدث فيه تغيير المسار
الأسطر 191-النهاية في ThemeBleedServer.py - إنشاء الخادم
السطر 13 في exploit.theme - لتغيير عنوان IP.