
CVE-2023-38146 "ThemeBleed" के लिए पायथन का उपयोग करते हुए एक प्रूफ ऑफ कॉन्सेप्ट
gabe_k को उनके C# में प्रारंभिक PoC और वास्तव में इस CVE को खोजने के लिए बहुत-बहुत धन्यवाद, यह उनके कोड का पायथन में पुनर्निर्माण है, जो उनके स्टेज फ़ाइलों का पुन: उपयोग करता है। प्रारंभिक PoC देखने के लिए उनका पृष्ठ यहाँ देखें: https://github.com/gabe-k/themebleed
CVE-2023-38146 "ThemeBleed" के लिए पायथन का उपयोग करके एक प्रूफ ऑफ कॉन्सेप्ट।
यह प्रोग्राम Impackets SMB सर्वर का उपयोग करता है और smb2Create फ़ंक्शन को ओवरराइड करता है, इसलिए इसके लिए Impacket की कार्यक्षमताएँ आवश्यक हैं।
उपयोग:
exploit.theme फ़ाइल में {IP-ADDRESS} बदलें
python3 ThemeBleedServer.py - SMB सर्वर चलाएँ
एक कमजोर विंडोज 11 मशीन पर .theme फ़ाइल का उपयोग करें
गेब के एक्सप्लॉइट की तरह, आपको एक नई स्टेज 3 फ़ाइल बनानी होगी जो एक dll है जो VerifyThemeVersion को एक्सपोर्ट करती है, वर्तमान फ़ाइल केवल Calc खोलती है।
ThemeBleed एक .THEME फ़ाइल से शुरू होता है जो इंटरनेट से एक msstyles फ़ाइल का अनुरोध करता है। यदि फ़ाइल में "999" संस्करण संख्या का उपयोग किया जाता है, तो यह ReviseVersionIfNecessary फ़ंक्शन को कॉल करेगा, जो एक .dll फ़ाइल को असुरक्षित रूप से लोड करता है, जिससे एक हमलावर अपरीक्षित लाइब्रेरी फ़ाइल लोड कर सकता है।
मैंने इसे इसलिए बनाया क्योंकि मैं C# कोड को लिनक्स में कंपाइल नहीं कर पाया, संभवतः यह कैसे काम करता है इसकी मेरी अज्ञानता के कारण, हालाँकि मैं पायथन को कोड करना जानता हूँ।
ThemeBleedServer.py/overrideSmb2Create में पंक्तियाँ 44-53 - यह वह जगह है जहाँ पथ परिवर्तन होता है
ThemeBleedServer.py में पंक्तियाँ 191-अंत - सर्वर निर्माण
exploit.theme में पंक्ति 13 - IP परिवर्तन के लिए।