CVE-2021-3156 (Sudo Baron Samedit)
यह रिपॉजिटरी Linux x64 को लक्षित करने वाला CVE-2021-3156 एक्सप्लॉइट है। विस्तृत विवरण के लिए, कृपया https://datafarm-cybersecurity.medium.com/exploit-writeup-for-cve-2021-3156-sudo-baron-samedit-7a9a4282cb31 पर जाएं
श्रेय Qualys के Braon Samedit को मूल सलाह के लिए।
फ़ाइलें
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 को अधिलेखित करता है। इसके लिए sudo को disable-root-mailer के बिना संकलित होना आवश्यक है, जैसे CentOS 6 और 7।
- exploit_userspec.py एक्सप्लॉइट प्रमाणीकरण को बायपास करने और /etc/passwd में नया उपयोगकर्ता जोड़ने के लिए struct userspec को अधिलेखित करता है। केवल 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 आज़माएं