
CVE-2021-4034 (PwnKit) का PoC व्यक्तिगत प्रशिक्षण उद्देश्यों के लिए।
यह रिपॉजिटरी CVE-2021-4034 के लिए एक प्रूफ ऑफ कॉन्सेप्ट रखती है, जिसे PwnKit के नाम से भी जाना जाता है। इसे केवल व्यक्तिगत प्रशिक्षण और शैक्षिक उद्देश्यों के लिए विकसित किया गया था। केवल उन वातावरणों में उपयोग करें जिनके आप मालिक हैं या जिनके परीक्षण के लिए आपको स्पष्ट रूप से अधिकृत किया गया है।
एक्सप्लॉइट बनाने के लिए आपको चाहिए:
pkexec Polkit की एक उपयोगिता है जो एक अधिकृत उपयोगकर्ता को किसी अन्य उपयोगकर्ता के रूप में प्रोग्राम निष्पादित करने की अनुमति देती है, आमतौर पर प्रशासनिक विशेषाधिकारों के साथ, sudo के समान। CVE-2021-4034 एक मेमोरी भ्रष्टाचार भेद्यता है जो इस बाइनरी को प्रभावित करती है। समस्या argc == 0 होने पर अनुचित तर्क हैंडलिंग से उत्पन्न होती है। इसके परिणामस्वरूप एक आउट-ऑफ-बाउंड राइट होता है जो हमलावर को मेमोरी में पहले पर्यावरण चर पॉइंटर को नियंत्रित करने की अनुमति देता है। कुछ शर्तों के तहत, यह एक अनाधिकृत स्थानीय उपयोगकर्ता को रूट तक विशेषाधिकार बढ़ाने की अनुमति देता है। अधिक जानकारी यहां उपलब्ध है: https://www.qualys.com/2022/01/25/cve-2021-4034/pwnkit.txt
अंतिम एक्सप्लॉइट पूरी तरह से स्व-निहित है और इसमें किसी बाहरी लाइब्रेरी या अतिरिक्त बाइनरी की आवश्यकता नहीं है।
शामिल शेल (shell.asm) Linux के लिए x86_64 असेंबली में लिखा गया है। इसे एक शेयर्ड ऑब्जेक्ट (.so) में संकलित किया जाता है और एक्सप्लॉइट में एम्बेड किया जाता है।
वैकल्पिक रूप से, शेल को विभिन्न वितरणों में अधिक पोर्टेबिलिटी के लिए C में कार्यान्वित किया जा सकता है, लेकिन ASM संस्करण सीखने के उद्देश्यों और निम्न-स्तरीय असेंबली कोडिंग का अभ्यास करने के लिए बनाए रखा गया है।
नोट: यह एक्सप्लॉइट और शेल केवल x86_64 Linux वातावरणों के साथ संगत हैं। एक अलग आर्किटेक्चर (जैसे, ARM या i386) का उपयोग करने पर काम नहीं करेगा।
संकलित करें:
make
चलाएं:
./exploit
साफ करें:
make clean
यह भेद्यता जनवरी 2022 में पैच की गई थी।
यदि आप policykit-1 का एक अपैच्ड संस्करण चला रहे हैं, तो आपका सिस्टम असुरक्षित हो सकता है। एक अस्थायी शमन के रूप में, आप pkexec से SUID बिट हटा सकते हैं:
chmod -s /bin/pkexec