
हथियारबंद CobaltStrike BOF CVE-2023-36874 विंडोज त्रुटि रिपोर्टिंग LPE के लिए
यह Filip Dragovic (@filip_dragovic) के CVE-2023-36874 विंडोज एरर रिपोर्टिंग LPE एक्सप्लॉइट का एक परिपक्व और परिचालन CobaltStrike BOF कार्यान्वयन है। उन्होंने संबंधित कमजोर DLL को रिवर्स करके और उन अप्रलेखित COM संरचनाओं को बनाकर एक कार्यशील एक्सप्लॉइट बनाने में भारी काम किया जो इस एक्सप्लॉइट के लिए महत्वपूर्ण हैं।
यह BOF लक्ष्य मशीन पर डिस्क में उपयोगकर्ता द्वारा निर्दिष्ट EXE फ़ाइल ड्रॉप करेगा और फिर भेद्यता को ट्रिगर करेगा, जिसके परिणामस्वरूप EXE SYSTEM द्वारा चलाया जाएगा।
माइक्रोसॉफ्ट ने इस भेद्यता के प्रकटीकरण के लिए Google के थ्रेट एनालिसिस ग्रुप को श्रेय दिया है, हालांकि यह मेरे ध्यान में CrowdStrike के प्रकाशित शोध के माध्यम से आया।
यह ब्लॉग पोस्ट इस एक्सप्लॉइट से संबंधित कई कलाकृतियों को सूचीबद्ध करता है; कलाकृतियों के नामकरण सम्मेलन (8.exe, 2016.exe, 2019.exe, 10new+11.exe, आदि) के साथ-साथ इस तथ्य के आधार पर कि माइक्रोसॉफ्ट ने पैच जारी किए जो सर्वर 2008 तक वापस जाते हैं, यह अनुमान लगाया जा सकता है कि यह भेद्यता विंडोज के काफी कुछ संस्करणों को प्रभावित करती है।
यह BOF केवल विंडोज 10 और विंडोज 11 21H1 - 22H2 के विरुद्ध कार्यात्मक है; यह 20H1/H2 पर भी काम कर सकता है, लेकिन मेरे पास परीक्षण करने के लिए मशीन नहीं है। विंडोज के पुराने संस्करणों पर, यह एक्सप्लॉइट इसे चलाने वाली प्रक्रिया को क्रैश कर देगा। मुझे लगता है कि यह wercplsupport.dll COM संबंधित संरचनाओं में अंतर से संबंधित है और कुछ अतिरिक्त कार्य से इसे दूर किया जा सकता है, लेकिन विंडोज के पिछले संस्करणों के लिए बहुत सारे अन्य एक्सप्लॉइट मौजूद हैं, इसलिए मैं यह कार्य फिलहाल दूसरों पर छोड़ दूंगा।
CobaltStrike में wer_lpe.cna लोड करें और wer_lpe कमांड दिखाई देगा।
उस EXE का पथ प्रदान करें जिसे आप अपलोड करना चाहते हैं, और वैकल्पिक रूप से एक निर्देशिका जहां आपके वर्तमान निम्न-विशेषाधिकार उपयोगकर्ता के पास लिखने की पहुंच है। यदि कोई निर्देशिका निर्दिष्ट नहीं की गई है, तो wer_lpe Beacon के वर्तमान निर्देशिका में लिखने का प्रयास करेगा।


मूल POC में OPSEC बनाए रखने/स्थैतिक हस्ताक्षरों को हिलाने के लिए साथ ही शोषण के बाद स्वचालित रूप से सफाई करने के लिए कुछ अतिरिक्त सुविधाएँ जोड़ी गईं।
एक्सप्लॉइट के भाग के रूप में, C:\ProgramData\Microsoft\Windows\WER\ReportArchive निर्देशिका में एक नया फ़ोल्डर बनाया जाना चाहिए। यह फ़ोल्डर Report.wer फ़ाइल रखेगा जिसे एक्सप्लॉइट श्रृंखला के भाग के रूप में डिस्क पर छोड़ा जाना चाहिए। Filip का मूल एक्सप्लॉइट "MyFolder" नामक एक निर्देशिका बनाता है। ReportArchive निर्देशिका में वास्तविक फ़ोल्डरों/रिपोर्टों को देखकर हम एक नामकरण सम्मेलन का बेहतर विचार प्राप्त कर सकते हैं जो कम-लटकने वाली डिटेक्शनों से बेहतर ढंग से बच जाएगा।

BOF में एक मशीन के ReportArchive निर्देशिका के भीतर पाए गए दो वास्तविक फ़ोल्डरों के स्टब्स हैं (एक को टिप्पणी के रूप में चिह्नित किया गया है)। रनटाइम पर, wer_lpe बेतरतीब ढंग से एक GUID उत्पन्न करेगा और Report.wer फ़ाइल बनाने के लिए एक विश्वसनीय (और सांख्यिकीय रूप से अद्वितीय) फ़ोल्डर बनाने के लिए चयनित स्टब में इसे जोड़ेगा।

report.wer फ़ाइल एक और आसान स्थैतिक संकेतक है जिसके द्वारा इस एक्सप्लॉइट का पता लगाया जा सकता है। मूल एक्सप्लॉइट Report.wer फ़ाइल को EXE के भीतर एक संसाधन के रूप में पैकेज करता है; यह BOF हमले की मशीन पर एक्सप्लॉइट निर्देशिका से 'Report.wer' का पता लगाएगा और उसे पढ़ेगा और इसे डिस्क पर लिखने के लिए Beacon को भेजेगा। इससे उपयोगकर्ताओं के लिए पूर्व-पैकेज्ड Report.wer फ़ाइल को अपनी पसंद की किसी भी फ़ाइल से बदलने का द्वार खुलता है।
एक्सप्लॉइट के भीतर कई COM कॉलों के लिए एक्सप्लॉइट को आगे बढ़ने के लिए मनमानी स्ट्रिंग्स की आवश्यकता होती है; इन्हें भी रनटाइम-जनरेटेड रैंडम स्ट्रिंग्स से बदल दिया गया है।
चूंकि यह एक्सप्लॉइट एक मनमाना EXE चलाता है, इसलिए यदि आप चाहते हैं कि आपका EXE लगातार चलता रहे (नए Beacon चलाने के मामले में) तो सफाई एक समस्या बन सकती है क्योंकि EXE डिस्क पर लॉक हो जाएगा। Wer_lpe ने इस समस्या से निपटने के लिए LloydLabs द्वारा बनाए गए स्व-विलोपन को लागू किया है (जिससे मैं लगातार शानदार माइलेज प्राप्त कर रहा हूं)। Wer_lpe एक्सप्लॉइट के दौरान बनाई गई सभी फ़ाइलों और निर्देशिकाओं को हटाने/साफ करने का प्रयास करेगा और ऐसा करने में सफलता/विफलता की एक स्थिति रिपोर्ट प्रदान करेगा।
क्योंकि 2023 में लक्ष्य मशीन पर एक अहस्ताक्षरित, मनमाना EXE चलाने का प्रयास अक्सर व्यर्थ होता है, मैंने एक्सप्लॉइट को वास्तविक wermgr.exe (एक मनमानी निर्देशिका में कॉपी किया गया) चलाने का प्रयास करने का पता लगाया ताकि DLL साइडलोडिंग के अवसरों का लाभ उठाया जा सके। एक्सप्लॉइट की प्रकृति के कारण, यह संभव नहीं है। अधिक विवरण के लिए यह Twitter थ्रेड देखें।
यह एक्सप्लॉइट विफल हो जाएगा यदि इसे उस उपयोगकर्ता द्वारा चलाया जाता है जिसके पास मशीन पर स्थानीय व्यवस्थापक अधिकार हैं; यह कमजोर कोड द्वारा उपयोगकर्ता को (संक्षेप में) "उपलब्ध उच्चतम अखंडता" के साथ प्रतिरूपित करने के कारण है। एक स्थानीय व्यवस्थापक उपयोगकर्ता के लिए, इसका मतलब है कि उनके व्यवस्थापक टोकन का प्रतिरूपण किया जाएगा, जिसमें उनके मध्यम अखंडता टोकन से अलग DOS डिवाइस मैप होता है, जिसमें भेद्यता ट्रिगर करने के लिए आवश्यक पुनर्निर्देशन लागू होता है। यह एक्सप्लॉइट UAC बाईपास का विकल्प नहीं है।
माइक्रोसॉफ्ट ने 11 जुलाई, 2023 को लगभग सभी कल्पनीय OS के लिए मासिक सुरक्षा अद्यतन के भाग के रूप में इस भेद्यता के लिए एक पैच जारी किया जो लोग अभी भी चला रहे हों; अपनी मशीनों को पैच करें, लोगों।
सबसे पहले और सबसे महत्वपूर्ण, Filip Dragovic (@filip_dragovic) को उनके कार्यशील कोड के साथ-साथ मेरे साथ बातचीत करने और इस एक्सप्लॉइट के लिए उनकी विकास प्रक्रिया पर मुझे शिक्षित करने की इच्छा के लिए बहुत-बहुत धन्यवाद।
CrowdStrike उनके लेख के लिए।
LloydLabs उनके स्व-विलोपन कोड के लिए।