PIE

Reading time: 3 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें

Basic Information

एक बाइनरी जिसे PIE, या Position Independent Executable के रूप में संकलित किया गया है, का मतलब है कि प्रोग्राम हर बार इसे निष्पादित करने पर विभिन्न मेमोरी स्थानों पर लोड हो सकता है, जिससे हार्डकोडेड पते को रोका जा सकता है।

इन बाइनरीज़ का शोषण करने का तरीका सापेक्ष पते का शोषण करना है—प्रोग्राम के भागों के बीच के ऑफसेट समान रहते हैं भले ही निरपेक्ष स्थान बदल जाए। PIE को बायपास करने के लिए, आपको केवल एक पता लीक करने की आवश्यकता है, आमतौर पर स्टैक से फॉर्मेट स्ट्रिंग हमलों जैसी कमजोरियों का उपयोग करके। एक बार जब आपके पास एक पता हो, तो आप उनके फिक्स्ड ऑफसेट्स द्वारा अन्य का अनुमान लगा सकते हैं।

PIE बाइनरीज़ का शोषण करने में एक सहायक संकेत यह है कि उनका बेस पता आमतौर पर 000 पर समाप्त होता है क्योंकि मेमोरी पृष्ठ यादृच्छिकता की इकाइयाँ होती हैं, जिनका आकार 0x1000 बाइट्स होता है। यह संरेखण एक महत्वपूर्ण जांच हो सकती है यदि कोई शोषण अपेक्षित रूप से काम नहीं कर रहा है, यह संकेत करता है कि क्या सही बेस पता पहचाना गया है।
या आप इसे अपने शोषण के लिए उपयोग कर सकते हैं, यदि आप लीक करते हैं कि एक पता 0x649e1024 पर स्थित है, तो आप जानते हैं कि बेस पता 0x649e1000 है और वहां से आप बस फंक्शंस और स्थानों के ऑफसेट्स की गणना कर सकते हैं।

Bypasses

PIE को बायपास करने के लिए लोड की गई बाइनरी के कुछ पते को लीक करना आवश्यक है, इसके लिए कुछ विकल्प हैं:

  • ASLR बंद: यदि ASLR बंद है, तो PIE के साथ संकलित बाइनरी हमेशा एक ही पते पर लोड होने वाली है, इसलिए PIE बेकार हो जाएगा क्योंकि वस्तुओं के पते हमेशा एक ही स्थान पर होंगे।
  • लीक प्राप्त करना (आसान CTF चुनौतियों में सामान्य, इस उदाहरण की जांच करें)
  • स्टैक में EBP और EIP मानों को ब्रूट-फोर्स करना जब तक कि आप सही लीक न कर लें:

BF Addresses in the Stack

  • एक मनमाना पढ़ने की कमजोरी का उपयोग करें जैसे कि फॉर्मेट स्ट्रिंग बाइनरी का एक पता लीक करने के लिए (जैसे, पिछले तकनीक की तरह स्टैक से) बाइनरी का बेस प्राप्त करने के लिए और वहां से ऑफसेट्स का उपयोग करें। यहां एक उदाहरण खोजें.

References

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें