PIE
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)
एक बाइनरी जिसे PIE, या पोजीशन इंडिपेंडेंट एक्सीक्यूटेबल के रूप में संकलित किया गया है, का मतलब है कि प्रोग्राम हर बार इसे निष्पादित करने पर विभिन्न मेमोरी स्थानों पर लोड हो सकता है, हार्डकोडेड पते को रोकता है।
इन बाइनरीज़ का शोषण करने की चाल सापेक्ष पते का शोषण करना है—प्रोग्राम के भागों के बीच के ऑफसेट समान रहते हैं भले ही निरपेक्ष स्थान बदल जाएं। PIE को बायपास करने के लिए, आपको केवल एक पता लीक करने की आवश्यकता है, आमतौर पर स्टैक से फॉर्मेट स्ट्रिंग हमलों जैसी कमजोरियों का उपयोग करके। एक बार जब आपके पास एक पता हो, तो आप उनके फिक्स्ड ऑफसेट द्वारा अन्य का अनुमान लगा सकते हैं।
PIE बाइनरीज़ का शोषण करने में एक सहायक संकेत यह है कि उनके बेस पते आमतौर पर 000 पर समाप्त होते हैं क्योंकि मेमोरी पृष्ठ यादृच्छिकता की इकाइयाँ होती हैं, जिनका आकार 0x1000 बाइट्स होता है। यह संरेखण एक महत्वपूर्ण जांच हो सकती है यदि कोई शोषण अपेक्षित रूप से काम नहीं कर रहा है, यह संकेत करता है कि क्या सही बेस पता पहचाना गया है।
या आप इसे अपने शोषण के लिए उपयोग कर सकते हैं, यदि आप लीक करते हैं कि एक पता 0x649e1024
पर स्थित है, तो आप जानते हैं कि बेस पता 0x649e1000
है और वहां से आप बस फंक्शंस और स्थानों के ऑफसेट्स की गणना कर सकते हैं।
PIE को बायपास करने के लिए लोड की गई बाइनरी का कुछ पता लीक करना आवश्यक है, इसके लिए कुछ विकल्प हैं:
ASLR को निष्क्रिय करें: यदि ASLR निष्क्रिय है, तो PIE के साथ संकलित बाइनरी हमेशा एक ही पते पर लोड होने वाली है, इसलिए PIE बेकार हो जाएगा क्योंकि वस्तुओं के पते हमेशा एक ही स्थान पर होंगे।
लीक प्राप्त करें (आसान CTF चुनौतियों में सामान्य, इस उदाहरण की जांच करें)
स्टैक में EBP और EIP मानों को ब्रूट-फोर्स करें जब तक कि आप सही लीक न करें:
एक मनमाना पढ़ने की कमजोरी का उपयोग करें जैसे कि फॉर्मेट स्ट्रिंग बाइनरी का एक पता लीक करने के लिए (जैसे, स्टैक से, पिछले तकनीक की तरह) बाइनरी का बेस प्राप्त करने के लिए और वहां से ऑफसेट्स का उपयोग करें। यहां एक उदाहरण खोजें.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)