
sudo बफर ओवरफ्लो का विश्लेषण जो sudo संस्करण <1.8.26 को प्रभावित करता है और सार्वजनिक रूप से उपलब्ध एक्सप्लॉइट्स को संकलित करने के लिए GCC का उपयोग कैसे करें
Sudo 1.8.25p - 'pwfeedback' बफर ओवरफ्लो (PoC)
Sudo का pwfeedback विकल्प उपयोगकर्ता को अपना पासवर्ड दर्ज करते समय दृश्य प्रतिक्रिया प्रदान करने के लिए उपयोग किया जा सकता है। प्रत्येक कुंजी दबाने पर एक तारांकन चिह्न मुद्रित होता है। यह विकल्प उपयोगकर्ताओं के भ्रम के जवाब में जोड़ा गया था कि मानक Password: प्रॉम्प्ट कुंजी दबाने की प्रतिध्वनि को कैसे अक्षम करता है। जबकि 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 फ़ंक्शन मौजूद है, यह 2 तरीकों से किया जा सकता है, 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 फिर एक सेगमेंटेशन फॉल्ट उत्पन्न करेगा क्योंकि यह सुनिश्चित नहीं है कि sudo प्रक्रिया को कैसे जारी रखा जाए
यह इसलिए होता है क्योंकि एक बार स्थिर हीप बफर भर जाने पर, यह CPU रजिस्टरों और इंस्ट्रक्शन पॉइंटर को भरना शुरू कर देगा, जो अगले इंस्ट्रक्शन के प्रवाह को बनाए रखता है।
हम एक्सप्लॉइट चला सकते हैं, जो बफर ओवरफ्लो का कारण बनेगा और हमें सिस्टम तक रूट एक्सेस देगा https://www.exploit-db.com/exploits/47995
