House of Einherjar

Reading time: 4 minutes

tip

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

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

Basic Information

Code

Goal

  • लक्ष्य लगभग किसी भी विशिष्ट पते पर मेमोरी आवंटित करना है।

Requirements

  • जब हम एक चंक आवंटित करना चाहते हैं तो एक नकली चंक बनाएं:
  • सैनीटी चेक को बायपास करने के लिए पॉइंटर्स को स्वयं की ओर सेट करें
  • एक चंक से अगले चंक तक PREV_INUSE फ्लैग को संशोधित करने के लिए एक बाइट ओवरफ्लो जिसमें एक नल बाइट हो।
  • नल द्वारा अपमानित चंक के prev_size में अपने और नकली चंक के बीच का अंतर इंगित करें
  • नकली चंक का आकार भी सैनीटी चेक को बायपास करने के लिए समान आकार में सेट किया जाना चाहिए
  • इन चंक्स का निर्माण करने के लिए, आपको एक हीप लीक की आवश्यकता होगी।

Attack

  • A नकली चंक एक चंक के अंदर बनाया गया है जिसे हमलावर द्वारा नियंत्रित किया जाता है जो मूल चंक को बायपास करने के लिए fd और bk के साथ इंगित करता है
  • 2 अन्य चंक्स (B और C) आवंटित किए जाते हैं
  • B में एक द्वारा एक का दुरुपयोग करते हुए prev in use बिट को साफ किया जाता है और prev_size डेटा को C चंक के आवंटित होने के स्थान से पहले उत्पन्न नकली A चंक के बीच के अंतर के साथ ओवरराइट किया जाता है
  • यह prev_size और नकली चंक A में आकार समान होना चाहिए ताकि चेक को बायपास किया जा सके।
  • फिर, tcache भरा जाता है
  • फिर, C को मुक्त किया जाता है ताकि यह नकली चंक A के साथ समेकित हो जाए
  • फिर, एक नया चंक D बनाया जाता है जो नकली A चंक में शुरू होगा और B चंक को कवर करेगा
  • हाउस ऑफ एनहेरजार यहाँ समाप्त होता है
  • इसे एक तेज़ बिन हमले या Tcache विषाक्तता के साथ जारी रखा जा सकता है:
  • तेज़ बिन / Tcache में जोड़ने के लिए B को मुक्त करें
  • B का fd ओवरराइट किया जाता है जिससे यह लक्षित पते की ओर इंगित करता है जो D चंक का दुरुपयोग करता है (क्योंकि इसमें B शामिल है)
  • फिर, 2 mallocs किए जाते हैं और दूसरा लक्षित पते को आवंटित करने जा रहा है

References and other examples

  • https://github.com/shellphish/how2heap/blob/master/glibc_2.35/house_of_einherjar.c
  • CTF https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house_of_einherjar/#2016-seccon-tinypad
  • पॉइंटर्स को मुक्त करने के बाद वे नल नहीं होते, इसलिए उनके डेटा तक पहुंचना अभी भी संभव है। इसलिए एक चंक को अनसॉर्टेड बिन में रखा जाता है और इसमें शामिल पॉइंटर्स को लीक किया जाता है (libc leak) और फिर एक नया हीप अनसॉर्टेड बिन पर रखा जाता है और इसे प्राप्त पॉइंटर से एक हीप पता लीक किया जाता है।
  • baby-talk. DiceCTF 2024
  • strtok में नल-बाइट ओवरफ्लो बग।
  • Tcache विषाक्तता के साथ एक ओवरलैपिंग चंक्स स्थिति प्राप्त करने और एक मनमाना लिखने की प्राइमिटिव प्राप्त करने के लिए हाउस ऑफ एनहेरजार का उपयोग करें।

tip

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

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