7.3 KiB
AWS2Exec - .dtors और .fini_array
जानें 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 में।
.dtors
{% hint style="danger" %} आजकल किसी भी बाइनरी में .dtors सेक्शन पाना बहुत अजीब है। {% endhint %}
डिस्ट्रक्टर्स वे फ़ंक्शन हैं जो प्रोग्राम समाप्त होने से पहले चलाए जाते हैं (जब main
फ़ंक्शन वापस लौटता है)।
इन फ़ंक्शनों के पते बाइनरी के .dtors
सेक्शन में संग्रहित होते हैं और इसलिए, यदि आप एक शैलकोड के पते को __DTOR_END__
में लिखने में सफल होते हैं, तो वह प्रोग्राम समाप्त होने से पहले चलाया जाएगा।
इस सेक्शन का पता लगाएं:
objdump -s -j .dtors /exec
rabin -s /exec | grep “__DTOR”
सामान्यतः आपको DTOR मार्कर मानों के बीच में पाएंगे ffffffff
और 00000000
के मानों के बीच। तो अगर आप सिर्फ उन मानों को देखते हैं, तो इसका मतलब है कि वहाँ कोई फ़ंक्शन रजिस्टर नहीं है। इसलिए 00000000
को ओवरराइट करें और उसे शेलकोड के पते के साथ बदलें ताकि इसे निष्पादित किया जा सके।
{% hint style="warning" %} बिल्कुल, पहले आपको शेलकोड को संग्रहित करने के लिए एक स्थान ढूंढना होगा ताकि आप बाद में इसे बुला सकें। {% endhint %}
.fini_array
मूल रूप से यह एक संरचना है जिसमें फ़ंक्शन होंगे जो प्रोग्राम समाप्त होने से पहले कॉल किए जाएंगे, जैसे .dtors
। यह दिलचस्प है अगर आप अपने शेलकोड को बस एक पते पर जाकर बुला सकते हैं, या उन मामलों में जहाँ आपको main
पर वापस जाने की आवश्यकता होती है ताकि आप दूसरी बार सुरक्षा दोष का शोध कर सकें।
objdump -s -j .fini_array ./greeting
./greeting: file format elf32-i386
Contents of section .fini_array:
8049934 a0850408
#Put your address in 0x8049934
ध्यान दें कि यह एक अनंत लूप नहीं बनाएगा क्योंकि जब आप मुख्य फ़ंक्शन में वापस जाएंगे तो कैनेरी को ध्यान जाएगा, स्टैक का अंत क्षतिग्रस्त हो सकता है और फ़ंक्शन को फिर से नहीं बुलाया जाएगा। इसलिए इसके साथ आपको वल्न का एक अधिक निष्पादन होगा।
{% hint style="danger" %}
ध्यान दें कि पूर्ण Relro के साथ, धारा .fini_array
को केवल-पठनीय बनाया जाता है।
{% endhint %}
जीरो से हीरो तक 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 में।