
विंडोज़ पर 7-Zip 21.07 तक संस्करण में, जब .7z एक्सटेंशन वाली फ़ाइल को Help>Contents क्षेत्र में खींचा जाता है, तो विशेषाधिकार वृद्धि और कमांड निष्पादन की अनुमति मिलती है।
मैंने प्रिविलेज एस्केलेशन हमले के लिए कहीं भी कोई poc कोड पोस्ट नहीं किया है। मिले हुए poc कोड का प्रिविलेज एस्केलेशन से कोई लेना-देना नहीं है। आपकी जानकारी के लिए।
7-ज़िप, एक मुफ्त और स्वतंत्र फ़ाइल आर्काइवर है। 7-ज़िप का कमांड प्रॉम्प्ट संस्करण यूनिक्स जैसी प्रणालियों के लिए डिज़ाइन किया गया है, यहाँ तक कि AmigaOS भी इसमें शामिल है। साथ ही यह DOS के अनुकूल है—Dost Port के लिए या HX-DOS एक्सटेंडर के साथ विंडोज कमांड प्रॉम्प्ट में चलाया जा सकता है।
मैं थोड़ा तुर्की में लिखूंगा, आप भी थोड़ा तुर्की सीखिए।
सबसे पहले मैं अपनी कमजोरी खोजने की कहानी का जिक्र करना चाहता हूँ। मैंने WinRAR पर XXE कमजोरी को ट्रिगर करने वाला एक पेलोड देखा। साथ ही, HTML Helper फ़ाइल का उपयोग करके जावास्क्रिप्ट के माध्यम से ActiveXObject और WScript.Shell की मदद से कमांड चलाना संभव था। यह लोलबिन्स में उपयोग किए जाने वाले HTA से बिल्कुल अलग नहीं था, मैं सोच रहा था कि इस स्थिति को अपने पक्ष में कैसे बदलूं।
(https://www.exploit-db.com/exploits/47526)
दरअसल मेरा उद्देश्य 7z, zip, rar आदि संपीड़न प्रारूपों के एक्सटेंशन पर डबल-क्लिक करने के बाद लक्ष्य कंप्यूटर से रिवर्स-शेल प्राप्त करना था, और इसके लिए मैं HTML Helper फ़ाइल का उपयोग कर सकता हूँ या नहीं, यह सोच रहा था। WinAFL के साथ लंबी फ़ज़िंग प्रक्रियाओं के बाद मैंने FzGM.exe पर हीप-ओवरफ़्लो पाया, लेकिन हीप ओवरफ़्लो के बाद मेरी अनुमति फिर से उसी उपयोगकर्ता के अंतर्गत होगी, इसलिए इसका कोई मतलब नहीं था। इसलिए मैंने CreateRemoteThread का उपयोग नहीं किया, क्योंकि मुझे API को कॉल करना था और उस API को ट्रिगर करने के लिए मुझे एक chm फ़ाइल की आवश्यकता थी। जब मैंने स्रोत कोड की जाँच की, तो मैंने देखा कि विशेष रूप से दो स्थानों पर विंडोज API को कॉल करते समय गलतियाँ थीं, और इसने सीधे तौर पर प्राधिकरण की समस्या उत्पन्न की। मेरी यह खोज, जैसा कि नीचे चित्र में दिखाया गया है, FzGM.exe के अंतर्गत एक चाइल्ड प्रोसेस बनाती है। सामान्यतः हम इस प्रक्रिया को hh.exe के अंतर्गत होने की उम्मीद करते हैं।


अगर API को शामिल किए बिना फ़ंक्शन के माध्यम से सही कॉन्फ़िगरेशन होता, तो मुझे hh.exe के अंतर्गत चाइल्ड प्रोसेस बनने की उम्मीद होती, लेकिन 7-zip.chm फ़ाइल इसे स्वयं से कॉल करती है। इसका एक विशिष्ट उदाहरण आप तब देख सकते हैं जब आप 7-zip.chm फ़ाइल को संपादित करके कमांड निष्पादन प्रक्रिया लागू करते हैं। हीप ओवरफ़्लो के बाद कॉल किए गए API की प्राधिकरण समस्या के बाद, मैंने 7z.dll फ़ाइल में मौजूद गलत कॉन्फ़िगरेशन का लाभ उठाया, जिसके लिए मैं लंबे समय से प्रयास कर रहा हूँ। CreateRemoteThread() करने का कोई मतलब नहीं है। मेरे पेलोड में मुझे जो चीज़ चलानी और कॉल करनी है, वह स्वयं HTML Helper API नहीं है, बल्कि 7-ज़िप के माध्यम से उस API का हुक किया गया बिंदु है, और मुझे उस बिंदु को निष्पादित करने में सक्षम होना चाहिए। लेकिन यह पेलोड केवल hh.exe एकीकरण के साथ काम करता है, इसलिए यह ड्रैग-एंड-ड्रॉप जैसे फ़ंक्शन के साथ काम करता है। 7-zip.chm फ़ाइल को 7-ज़िप के माध्यम से HELP बटन से कॉल करना, और वहाँ कॉल किए गए पते का मेरा "base pointer" रीडायरेक्शन, जिसमें प्राधिकरण की समस्या है, हमें एक उच्च उपयोगकर्ता पर ले जाता है। इसके बाद की प्रक्रिया है पेलोड में psexec का होना और psexec -s cmd.exe कमांड के साथ nt authority/system के रूप में सिस्टम विशेषाधिकार प्राप्त करना।

poc वीडियो:
अधिकांश प्रश्न ActiveX चेतावनी के बारे में थे, इस समस्या को आप मूल रूप से इस प्रकार हल कर सकते हैं। पेलोड चलने से पहले;
<'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0' -Name '1201' -Value '0' -PropertyType "DWord"> जाँच करता है; यदि यह मान 1 है, तो पॉपअप स्क्रीन पर आता है; यदि 0 के रूप में एक नया मान निर्दिष्ट किया गया है, तो इसे बाईपास किया जाता है। लेकिन यह ध्यान देने योग्य है कि यह केवल उस उपयोगकर्ता को प्रभावित करता है जो उस समय पेलोड चला रहा है।
मैंने डेवलपर को आवश्यक बिंदु बताए और इसे CVE द्वारा स्वीकार किया गया। मैं यह नहीं समझ पा रहा हूँ कि लोग स्वयं को अधिकारी क्यों समझते हैं और यह धारणा बनाते हैं कि मुझे उन्हें exploit देना चाहिए। मैंने पहले ही कहा था कि मैं अपडेट के बाद इसे प्रकाशित करूंगा, फिर भी अपडेट से पहले की गई यह असम्मानजनकता, मुझे लगता है, स्वयं को अधिकारी समझने से उपजी है। मैं प्रिविलेज एस्केलेशन हमले का poc कोड कभी भी प्रकाशित नहीं करना चाह सकता हूँ; यह मेरी स्वतंत्र इच्छा है, और मुझे इसकी सत्यता पर सवाल उठाने के संबंध में किसी की राय से कोई सरोकार नहीं है।
पहली विधि: यदि 7-ज़िप अपडेट नहीं होता है, तो 7-zip.chm फ़ाइल को हटाया जा सकता है। दूसरी विधि: प्रोग्राम के भीतर सभी उपयोगकर्ताओं को केवल पढ़ने और निष्पादित करने की अनुमति के साथ पहुँच मिलनी चाहिए।
संबंधित सिग्मा नियम https://github.com/kagancapar/CVE-2022-29072/blob/main/7z_CVE-2022-29072.yml