
CVE-2021-3156 - "Baron Samedit" के लिए एक सरल Docker लैब और एक्सप्लॉइट सेटअप।
यह रिपॉजिटरी CVE-2021-3156 को समझने और उसका शोषण करने के लिए एक स्व-निहित, शैक्षिक वातावरण प्रदान करता है। यह sudo में एक हीप-आधारित बफर ओवरफ़्लो है, जो किसी भी अन्य अप्रतिबंधित उपयोगकर्ता को कमज़ोर सिस्टम (sudo संस्करण 1.9.5p2 से पहले) पर रूट विशेषाधिकार प्राप्त करने की अनुमति देता है।
यह सामग्री अधिकृत सुरक्षा प्रशिक्षण और अनुसंधान के लिए ही है।
उन सिस्टमों के विरुद्ध अनधिकृत/अनैतिक उपयोग, जिनके आप स्वामी नहीं हैं, अवैध है।
Dockerfile - sudo 1.8.31 (कमज़ोर) के साथ Ubuntu 20.04 कंटेनर बनाता हैexploit.c - मुख्य एक्सप्लॉइट पेलोड (Ubuntu 20.04 के लिए अनुकूलित)shellcode.c - शेयर्ड लाइब्रेरी कंस्ट्रक्टर जो रूट शेल उत्पन्न करता हैMakefile - एक्सप्लॉइट और दुर्भावनापूर्ण लाइब्रेरी को संकलित करता हैgit clone https://github.com/Theleopard65/CVE-2021-3156-Baron-Samedit.git
cd CVE-2021-3156-Baron-Samedit
docker build -t cve-2021-3156-lab .
poc के रूप में लॉग इन होंगे।/home/exploit है, जिसमें पहले से ही स्रोत फ़ाइलें मौजूद हैं।docker run -it --rm --name baron_samedit_lab cve-2021-3156-lab
cd /home/exploit
./exploit
यदि सफल होता है, तो आपको एक रूट शेल प्रॉम्प्ट (#) दिखाई देगा। एक्सप्लॉइट sudo के हीप में service_user स्ट्रक्ट को ओवरराइट करता है और इसे दुर्भावनापूर्ण लाइब्रेरी libnss_x/x.so.2 को लोड करने के लिए मजबूर करता है, जिसका कंस्ट्रक्टर शेलकोड निष्पादित करता है।
make clean && make
इससे निर्मित होंगे:
exploit - मुख्य एक्सप्लॉइट बाइनरीlibnss_x/x.so.2 - दुर्भावनापूर्ण शेयर्ड लाइब्रेरीCVE-2021-3156 sudoedit की कमांड-लाइन आर्गुमेंट हैंडलिंग में एक हीप-आधारित ओवरफ़्लो है। एक विशेष रूप से तैयार किए गए बफर और पर्यावरण चर की आपूर्ति करके, एक हमलावर हीप पर एक service_user स्ट्रक्ट को ओवरराइट कर सकता है। इस स्ट्रक्ट में एक फंक्शन पॉइंटर होता है, जिसे हाईजैक करके, NSS (नेम सर्विस स्विच) तंत्र के माध्यम से लोड की गई एक दुर्भावनापूर्ण लाइब्रेरी की ओर इंगित किया जा सकता है। लाइब्रेरी का कंस्ट्रक्टर तब रूट विशेषाधिकारों के साथ मनमाना कोड निष्पादित करता है।
यह एक्सप्लॉइट:
buf) आवंटित करता है।LC_MESSAGES, LC_TELEPHONE, और LC_MEASUREMENT पर्यावरण चर का उपयोग करता है।files service_user स्ट्रक्ट में ओवरफ़्लो करता है, इसके नाम को हमारी दुर्भावनापूर्ण लाइब (libnss_x/x.so.2) के पथ से बदल देता है।shellcode.c में) setuid(0), setgid(0) चलाता है और एक रूट शेल उत्पन्न करता है।Docker इमेज को हटाने के लिए:
docker rmi cve-2021-3156-lab
यह प्रोजेक्ट केवल शैक्षिक उद्देश्यों के लिए प्रदान किया गया है। अपने जोखिम पर उपयोग करें।