5.4 KiB
Relro
जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!
HackTricks का समर्थन करने के अन्य तरीके:
- यदि आप अपनी कंपनी का विज्ञापन HackTricks में देखना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं तो सब्सक्रिप्शन प्लान्स देखें!
- आधिकारिक PEASS और HackTricks स्वैग प्राप्त करें
- हमारे विशेष NFTs संग्रह The PEASS Family की खोज करें
- शामिल हों 💬 डिस्कॉर्ड समूह या टेलीग्राम समूह या हमें ट्विटर 🐦 @hacktricks_live** पर फॉलो** करें।
- हैकिंग ट्रिक्स साझा करें और PRs सबमिट करके HackTricks और HackTricks Cloud github repos में।
Relro
RELRO का मतलब है Relocation Read-Only, और यह एक सुरक्षा सुविधा है जो बाइनरी में उपयोग की जाती है ताकि GOT (Global Offset Table) के ओवरराइट से जुड़े जोखिमों को कम किया जा सके। चलो इस अवधारणा को स्पष्टता के लिए इसके दो विभिन्न प्रकारों में विभाजित करें: Partial RELRO और Full RELRO।
Partial RELRO
Partial RELRO सुरक्षा को बढ़ाने के लिए एक सरल दृष्टिकोण अपनाता है जिससे बाइनरी के प्रदर्शन पर प्रभाव नहीं पड़ता। GOT को कारपोरेटिंग करने और भ्रष्ट करने से रोकने के लिए GOT को कार्यक्रम की मेमोरी में चरणों के ऊपर स्थित करके, Partial RELRO बफर ओवरफ्लो को GOT तक पहुंचने और भ्रष्ट करने से रोकने का उद्देश्य रखता है।
यह किसी भी अनियमित लेखन संक्रमणों से GOT का दुरुपयोग करने को रोकने में सफल नहीं है।
Full RELRO
Full RELRO सुरक्षा को बढ़ाता है जब GOT को पूरी तरह से केवल पढ़ने योग्य बनाया जाता है। एक बाइनरी शुरू होते ही सभी फ़ंक्शन पतों को हल किया जाता है और GOT में लोड किया जाता है, फिर, GOT को केवल पढ़ने योग्य बनाया जाता है, जिससे किसी भी समय किसी भी संशोधन को रोका जा सकता है।
हालांकि, Full RELRO के साथ व्यापार और स्टार्टअप समय के मामले में है। क्योंकि यह सभी डायनामिक प्रतीकों को स्टार्टअप पर हल करने की आवश्यकता होती है पहले GOT को पढ़ने योग्य बनाने से, Full RELRO सक्षम बाइनरी में लंबे लोड समय का सामना कर सकती है। यह अतिरिक्त स्टार्टअप ओवरहेड है जिसकी वजह से Full RELRO सभी बाइनरी में डिफ़ॉल्ट रूप से सक्षम नहीं है।
यह देखना संभव है कि क्या बाइनरी में Full RELRO सक्षम है:
readelf -l /proc/ID_PROC/exe | grep BIND_NOW
बायपास
यदि पूर्ण RELRO सक्षम है, तो उसे बायपास करने का एकमात्र तरीका यह है कि एक और तरीका ढूंढा जाए जिसको GOT टेबल में लिखने की आवश्यकता न हो और व्यापक क्रियान्वयन प्राप्त किया जा सके।