House of Einherjar
Reading time: 4 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:
HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें:
HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
Basic Information
Code
- https://github.com/shellphish/how2heap/blob/master/glibc_2.35/house_of_einherjar.c से उदाहरण देखें
- या https://guyinatuxedo.github.io/42-house_of_einherjar/house_einherjar_exp/index.html#house-of-einherjar-explanation से (आपको tcache भरने की आवश्यकता हो सकती है)
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)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
HackTricks