CVE-2021-3156 (Sudo Baron Samedit)
यह रिपॉजिटरी CVE-2021-3156 का एक्सप्लॉइट है जो Linux x64 को लक्षित करता है। लेख (writeup) के लिए, कृपया https://datafarm-cybersecurity.medium.com/exploit-writeup-for-cve-2021-3156-sudo-baron-samedit-7a9a4282cb31 पर जाएं।
क्वालिस के ब्रैन समेडिट को मूल सलाहकार के लिए श्रेय Braon Samedit of Qualys for the original advisory.
फ़ाइलें
tcache के साथ glibc पर एक्सप्लॉइट
- exploit_nss.py सभी आवश्यकताओं और /etc/nsswitch.conf में प्रविष्टियों की संख्या का स्वतः पता लगाता है
- exploit_nss_manual.py बेहतर एक्सप्लॉइट समझ के लिए exploit_nss.py का सरलीकृत संस्करण
- exploit_timestamp_race.c def_timestamp को ओवरराइट करता है और /etc/passwd को संशोधित करने के लिए रेस कंडीशन का उपयोग करता है
tcache के बिना glibc पर एक्सप्लॉइट
- exploit_defaults_mailer.py एक्सप्लॉइट struct defaults को ओवरराइट करके mailer बाइनरी पथ को संशोधित करता है। इसे sudo को --disable-root-mailer के बिना संकलित करने की आवश्यकता है जैसे CentOS 6 और 7।
- exploit_userspec.py एक्सप्लॉइट struct userspec को ओवरराइट करके प्रमाणीकरण को बायपास करता है और /etc/passwd में एक नया उपयोगकर्ता जोड़ता है। केवल sudo संस्करण 1.8.9-1.8.23 का समर्थन करता है।
- exploit_cent7_userspec.py समझने के लिए exploit_userspec.py का सरलीकृत संस्करण लेकिन केवल CentOS 7 को डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ लक्षित करता है
- exploit_nss_d9.py Debian 9 पर struct service_user को ओवरराइट करता है लेकिन केवल डिफ़ॉल्ट /etc/nsswith.conf का समर्थन करता है
- exploit_nss_u16.py Ubuntu 16.04 पर struct service_user को ओवरराइट करता है लेकिन केवल डिफ़ॉल्ट /etc/nsswith.conf का समर्थन करता है
- exploit_nss_u14.py Ubuntu 14.04 पर struct service_user को ओवरराइट करता है लेकिन केवल डिफ़ॉल्ट /etc/nsswith.conf का समर्थन करता है
अन्य
- asm/ पायथन एक्सप्लॉइट में एम्बेड करने के लिए tinyelf लाइब्रेरी और एक्सेक्यूटेबल
- gdb/ sudo हीप को डीबग करने के लिए उपयोग की जाने वाली स्क्रिप्ट
एक्सप्लॉइट चुनना
उन Linux वितरणों के लिए जिनमें glibc में tcache समर्थन सक्षम है (CentOS 8, Ubuntu >= 17.10, Debian 10):
- पहले exploit_nss.py आज़माएं
- यदि त्रुटि glibc tcache से संबंधित नहीं है, तो आप आगे exploit_timestamp_race.c आज़मा सकते हैं
उन Linux वितरणों के लिए जिनमें glibc में tcache समर्थन नहीं है:
- यदि लक्ष्य Debian 9, Ubuntu 16.04, या Ubuntu 14.04 है, तो पहले विशिष्ट संस्करण के लिए exploit_nss_xxx.py आज़माएं
- अगला, exploit_defaults_mailer.py आज़माएं। यदि आप जानते हैं कि लक्ष्य sudo को --disable-root-mailer के साथ संकलित किया गया है, तो आप इस एक्सप्लॉइट को छोड़ सकते हैं। एक्सप्लॉइट sudo बाइनरी से रूट मेलर फ्लैग की जांच करने का प्रयास करता है। लेकिन कुछ Linux वितरणों पर sudo की अनुमति 4711 (-rws--x--x) है जो लक्ष्य प्रणाली पर जांचना असंभव है। (ज्ञात कार्य OS CentOS 6 और 7 हैं)
- अंत में, exploit_userspec.py आज़माएं