
sudo बफर ओवरफ़्लो का विश्लेषण जो sudo संस्करण <1.8.26 को प्रभावित करता है और सार्वजनिक रूप से उपलब्ध एक्सप्लॉइट्स को संकलित करने के लिए GCC का उपयोग कैसे करें
CVE-2019-18634 का विश्लेषण (https://www.exploit-db.com/exploits/47995)
Sudo 1.8.25p - 'pwfeedback' बफर ओवरफ्लो (PoC)
Sudo का pwfeedback विकल्प उपयोगकर्ता द्वारा पासवर्ड इनपुट करते समय दृश्य प्रतिक्रिया प्रदान करने के लिए उपयोग किया जा सकता है। प्रत्येक कुंजी दबाने पर एक तारांकन मुद्रित होता है। यह विकल्प इस भ्रम के जवाब में जोड़ा गया था कि मानक पासवर्ड: प्रॉम्प्ट कुंजी दबाने की प्रतिध्वनि को कैसे अक्षम करता है। जबकि pwfeedback sudo के अपस्ट्रीम संस्करण में डिफ़ॉल्ट रूप से सक्षम नहीं है, कुछ सिस्टम, जैसे कि Linux Mint और Elementary OS, इसे अपने डिफ़ॉल्ट sudoers फ़ाइलों में सक्षम करते हैं।
विश्लेषण
Sudo बफर ओवरफ्लो tryhackme राइटअप
CVE-2019-18634 का विश्लेषण
पहले हम SSH के माध्यम से tryhackme इंस्टेंस में लॉग इन करते हैं।
यह कमजोरी pwfeedback फ़ंक्शन के हीप बफर ओवरफ्लो के प्रति संवेदनशील होने के कारण होती है, इस कमजोरी का शोषण करने के लिए हम पहले यह सत्यापित करते हैं कि मशीन में sudo का कमजोर संस्करण (sudo <1.8.26) मौजूद है, sudo –version कमांड चलाकर।
CVE-2019-18634 का विश्लेषण
पहले हम SSH के माध्यम से tryhackme इंस्टेंस में लॉग इन करते हैं।
यह कमजोरी pwfeedback फ़ंक्शन के हीप बफर ओवरफ्लो के प्रति संवेदनशील होने के कारण होती है, इस कमजोरी का शोषण करने के लिए हम पहले यह सत्यापित करते हैं कि मशीन में sudo का कमजोर संस्करण (sudo <1.8.26) मौजूद है, sudo –version कमांड चलाकर।

यह पुष्टि करने के बाद कि मशीन में sudo का कमजोर संस्करण है, अब हम सत्यापित करते हैं कि pwfeedback फ़ंक्शन मौजूद है, यह दो तरीकों से किया जा सकता है, sudo को आमंत्रित करके और पासवर्ड प्रॉम्प्ट में कुछ भी टाइप करके, जिससे पासवर्ड के लिए वर्ण टाइप करने पर “*” प्रदर्शित होना चाहिए, और दूसरा अधिक तकनीकी तरीका sudo -l कमांड का उपयोग करना है, लेकिन इसके लिए उपयोगकर्ता के पास उचित अनुमतियाँ होनी चाहिए जो उन्हें sudo या sudoers फ़ाइल को संयोजित करने में सक्षम बनाती हैं।

अब हम पुष्टि करेंगे कि एक बफर ओवरफ्लो संभव है, exploit-db पर दिए गए परीक्षण मामले का उपयोग करके https://www.exploit-db.com/exploits/47995
perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id ^^उपरोक्त कोड की पंक्ति इस प्रकार है:
100 A वर्ण जोड़ें और इसे sudo कमांड में पाइप करें जो फिर pwfeedback हीप बफर में समाप्त होगा।

sudo तब एक segmentation fault उत्पन्न करेगा क्योंकि यह सुनिश्चित नहीं है कि sudo प्रक्रिया को कैसे जारी रखा जाए।
ऐसा इसलिए होता है क्योंकि एक बार स्टैटिक हीप बफर भर जाने पर, यह CPU रजिस्टरों और इंस्ट्रक्शन पॉइंटर को भरना शुरू कर देता है, जो अगली इंस्ट्रक्शन के प्रवाह को बनाए रखता है।
हम एक्सप्लॉइट चला सकते हैं, जो बफर ओवरफ्लो का कारण बनेगा और हमें सिस्टम पर रूट एक्सेस देगा https://www.exploit-db.com/exploits/47995
