ld.so privesc exploit example
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
अगले अनुभाग में आप उन फ़ाइलों का कोड पा सकते हैं जिनका हम वातावरण तैयार करने के लिए उपयोग करने जा रहे हैं
अपने मशीन में उसी फ़ोल्डर में उन फ़ाइलों को बनाएँ
लाइब्रेरी को संकलित करें: gcc -shared -o libcustom.so -fPIC libcustom.c
libcustom.so
को /usr/lib
में कॉपी करें: sudo cp libcustom.so /usr/lib
(रूट प्रिविलेज)
कार्यकारी फ़ाइल को संकलित करें: gcc sharedvuln.c -o sharedvuln -lcustom
जाँच करें कि libcustom.so /usr/lib से लोड हो रहा है और आप बाइनरी को निष्पादित कर सकते हैं।
इस परिदृश्य में हम यह मानने जा रहे हैं कि किसी ने /etc/ld.so.conf/ के अंदर एक कमजोर प्रविष्टि बनाई है:
दुर्बल फ़ोल्डर /home/ubuntu/lib है (जहाँ हमारे पास लिखने की अनुमति है)। डाउनलोड और संकलित करें निम्नलिखित कोड को उस पथ के अंदर:
अब जब हमने गलत कॉन्फ़िगर की गई पथ के अंदर दुष्ट libcustom पुस्तकालय बनाया है, हमें रीबूट का इंतज़ार करना होगा या रूट उपयोगकर्ता को ldconfig
निष्पादित करने के लिए कहना होगा (यदि आप इस बाइनरी को sudo के रूप में निष्पादित कर सकते हैं या इसमें suid बिट है, तो आप इसे स्वयं निष्पादित कर सकेंगे)।
एक बार जब यह हो जाए, तो फिर से जांचें कि sharevuln
निष्पादन योग्य libcustom.so
पुस्तकालय को कहाँ से लोड कर रहा है:
जैसा कि आप देख सकते हैं, यह /home/ubuntu/lib
से लोड हो रहा है और यदि कोई उपयोगकर्ता इसे निष्पादित करता है, तो एक शेल निष्पादित होगा:
ध्यान दें कि इस उदाहरण में हमने विशेषाधिकारों को बढ़ाया नहीं है, लेकिन निष्पादित किए गए आदेशों को संशोधित करके और जड़ या अन्य विशेषाधिकार प्राप्त उपयोगकर्ता के कमजोर बाइनरी को निष्पादित करने की प्रतीक्षा करके हम विशेषाधिकार बढ़ा सकेंगे।
पिछले उदाहरण में हमने एक गलत कॉन्फ़िगरेशन का अनुकरण किया जहां एक व्यवस्थापक ने /etc/ld.so.conf.d/
के अंदर एक कॉन्फ़िगरेशन फ़ाइल के अंदर एक गैर-विशेषाधिकार प्राप्त फ़ोल्डर सेट किया।
लेकिन अन्य गलत कॉन्फ़िगरेशन भी हैं जो समान कमजोरियों का कारण बन सकते हैं, यदि आपके पास **/etc/ld.so.conf.d
के अंदर कुछ कॉन्फ़िग फ़ाइल में लिखने की अनुमति है, /etc/ld.so.conf.d
फ़ोल्डर में या /etc/ld.so.conf
फ़ाइल में, तो आप समान कमजोरी को कॉन्फ़िगर कर सकते हैं और इसका लाभ उठा सकते हैं।
मान लीजिए कि आपके पास ldconfig
पर sudo विशेषाधिकार हैं।
आप ldconfig
को कॉन्फ़ फ़ाइलों को कहाँ से लोड करना है यह बता सकते हैं, इसलिए हम इसका लाभ उठाकर ldconfig
को मनमाने फ़ोल्डर लोड करने के लिए कह सकते हैं।
तो, चलिए "/tmp" को लोड करने के लिए आवश्यक फ़ाइलें और फ़ोल्डर बनाते हैं:
अब, जैसा कि पिछले एक्सप्लॉइट में संकेत दिया गया है, /tmp
के अंदर दुर्भावनापूर्ण लाइब्रेरी बनाएं।
और अंत में, चलिए पथ लोड करते हैं और जांचते हैं कि बाइनरी लाइब्रेरी को कहाँ से लोड कर रही है:
जैसा कि आप देख सकते हैं, ldconfig
पर sudo विशेषाधिकार होने पर आप उसी कमजोरियों का लाभ उठा सकते हैं।
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)