Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
how2heap — विभिन्न हीप शोषण तकनीकों को सीखने के लिए एक रिपॉजिटरी। | Kitploit
उपकरण/GitHubGitHub/shellphish/how2heap
शोषणCTFलर्निंग और शिक्षाचयनित संसाधनबाइनरी शोषणलैब और अभ्यासबाइनरी शोषण में शीर्ष #4CTF में शीर्ष #7
GitHubshellphish/how2heap

how2heap

विभिन्न हीप शोषण तकनीकों को सीखने के लिए एक रिपॉजिटरी।

8.8k1.3k93 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
रिपॉजिटरी देखें
साझा करें

एजुकेशनल हीप एक्सप्लॉइटेशन

यह रिपॉजिटरी विभिन्न हीप एक्सप्लॉइटेशन तकनीकों को सीखने के लिए है। हम Ubuntu की Libc रिलीज़ को स्वर्ण मानक के रूप में उपयोग करते हैं। प्रत्येक तकनीक को संबंधित Ubuntu रिलीज़ पर काम करने के लिए सत्यापित किया गया है। आप Debian-आधारित ऑपरेटिंग सिस्टम पर उपयोग किए जा रहे Libc का सोर्स कोड डाउनलोड करने के लिए apt source libc6 चला सकते हैं। आप gdb का उपयोग करके तकनीक को अपने ब्राउज़र में डीबग करने के लिए ▶️ पर भी क्लिक कर सकते हैं।

यह विचार हमें एक हैक मीटिंग के दौरान आया था, और हमने निम्नलिखित तकनीकों को लागू किया है:

फ़ाइल▶️तकनीकGlibc-संस्करणपैचलागू CTF चुनौतियाँ
first_fit.cglibc malloc के फर्स्ट-फिट व्यवहार का प्रदर्शन।
calc_tcache_idx.cglibc के tcache इंडेक्स गणना का प्रदर्शन।
fastbin_dup.c▶️fastbin freelist का दुरुपयोग करके malloc को पहले से आवंटित हीप पॉइंटर लौटाने के लिए धोखा देना।< 2.43पैच
fastbin_dup_into_stack.c▶️fastbin freelist का दुरुपयोग करके malloc को लगभग-मनमाना पॉइंटर लौटाने के लिए धोखा देना।< 2.43पैच9447-search-engine, 0ctf 2017-babyheap
fastbin_dup_consolidate.c▶️fastbin freelist और टॉप चंक दोनों पर पॉइंटर रखकर malloc को पहले से आवंटित हीप पॉइंटर लौटाने के लिए धोखा देना।< 2.43पैचHitcon 2016 SleepyHolder
unsafe_unlink.c▶️दूषित चंक पर free का शोषण करके मनमाना लेखन प्राप्त करना।नवीनतमHITCON CTF 2014-stkof, Insomni'hack 2017-Wheel of Robots
house_of_spirit.c▶️malloc से लगभग-मनमाना पॉइंटर लौटाने के लिए नकली fastbin चंक को free करता है।नवीनतमhack.lu CTF 2014-OREO
poison_null_byte.c▶️एकल null बाइट ओवरफ़्लो का शोषण।नवीनतमPlaidCTF 2015-plaiddb, BalsnCTF 2019-PlainNote
house_of_lore.c▶️smallbin freelist का दुरुपयोग करके malloc को लगभग-मनमाना पॉइंटर लौटाने के लिए धोखा देना।नवीनतम
overlapping_chunks.c▶️unsorted bin में मुक्त चंक के आकार के ओवरराइट का शोषण करना ताकि नया आवंटन मौजूदा चंक के साथ ओवरलैप हो सके।< 2.29पैचhack.lu CTF 2015-bookstore, Nuit du Hack 2016-night-deamonic-heap
overlapping_chunks_2.c▶️उपयोग में चंक के आकार के ओवरराइट का शोषण करना ताकि नया आवंटन मौजूदा चंक के साथ ओवरलैप हो सके।< 2.29पैच
mmap_overlapping_chunks.cउपयोग में mmap चंक का शोषण करना ताकि नया आवंटन वर्तमान mmap चंक के साथ ओवरलैप हो सके।नवीनतम
house_of_force.c▶️malloc से लगभग-मनमाना पॉइंटर लौटाने के लिए टॉप चंक (Wilderness) हेडर का शोषण करना।< 2.29पैचBoston Key Party 2016-cookbook, BCTF 2016-bcloud
unsorted_bin_into_stack.c▶️लगभग-मनमाना पॉइंटर लौटाने के लिए unsorted bin freelist पर मुक्त चंक के ओवरराइट का शोषण करना।< 2.29पैच
unsorted_bin_attack.c▶️मनमाने पते पर बड़ा मान लिखने के लिए unsorted bin freelist पर मुक्त चंक के ओवरराइट का शोषण करना।< 2.29पैच0ctf 2016-zerostorage
large_bin_attack.c▶️मनमाने पते पर बड़ा मान लिखने के लिए large bin freelist पर मुक्त चंक के ओवरराइट का शोषण करना।< 2.42पैच0ctf 2018-heapstorm2
house_of_einherjar.c▶️malloc को नियंत्रित पॉइंटर लौटाने के लिए धोखा देने हेतु एकल null बाइट ओवरफ़्लो का शोषण करना।नवीनतमSeccon 2016-tinypad
house_of_water.ct-cache मेटाडेटा पर लीक-रहित नियंत्रण पाने और t-cache में libc को लिंक करने का लीक-रहित तरीका प्राप्त करने के लिए UAF या double free का शोषण करना।नवीनतम37c3 Potluck - Tamagoyaki
sysmalloc_int_free.cmalloc (sysmalloc _int_free()) का उपयोग करके लगभग मनमाने आकार के टॉप चंक (Wilderness) को free करने का प्रदर्शन।नवीनतम
house_of_orange.c▶️मनमाना कोड निष्पादन प्राप्त करने के लिए टॉप चंक (Wilderness) का शोषण करना।< 2.26पैचHitcon 2016 houseoforange
house_of_tangerine.ctcache freelist का दुरुपयोग करके malloc को पूर्णतः मनमाना पॉइंटर लौटाने के लिए धोखा देने हेतु टॉप चंक (Wilderness) का शोषण करना।>= 2.26PicoCTF 2024- high frequency troubles
house_of_roman.c▶️नकली fastbins, unsorted_bin attack और सापेक्ष ओवरराइट के माध्यम से रिमोट कोड निष्पादन प्राप्त करने की लीक-रहित तकनीक।< 2.29पैच
tcache_poisoning.c▶️tcache freelist का दुरुपयोग करके malloc को पूर्णतः मनमाना पॉइंटर लौटाने के लिए धोखा देना। (2.32 और उसके बाद हीप लीक की आवश्यकता है)> 2.25पैच
tcache_house_of_spirit.c▶️malloc से लगभग-मनमाना पॉइंटर प्राप्त करने के लिए नकली चंक को free करता है।> 2.25
house_of_botcake.c▶️tcache पर double free प्रतिबंध को बायपास करें। tcache_dup को फिर से शानदार बनाएं।> 2.25
tcache_stashing_unlink_attack.c▶️calloc की सहायता से malloc को मनमाना पॉइंटर लौटाने और मनमाने पते पर बड़ा मान लिखने के लिए small bin freelist पर मुक्त चंक के ओवरराइट का शोषण करना।> 2.25Hitcon 2019 one punch man
fastbin_reverse_into_tcache.c▶️मनमाने पते पर बड़ा मान लिखने के लिए fastbin में मुक्त चंक के ओवरराइट का शोषण करना।2.26 - 2.42पैच
house_of_mind_fastbin.c▶️मनमाने पते पर बड़ा मान (हीप पॉइंटर) लिखने के लिए arena हैंडलिंग के साथ एकल बाइट ओवरराइट का शोषण करना।< 2.43पैच
house_of_storm.c▶️malloc से मनमाना चंक लौटाने के लिए large और unsorted bin चंक दोनों पर use-after-free का शोषण करना।< 2.29
house_of_gods.c▶️8 आवंटनों के भीतर किसी थ्रेड के arena को हाईजैक करने की एक तकनीक।< 2.27
decrypt_safe_linking.c▶️लिंक्ड सूची में पॉइज़न किए गए मान को डिक्रिप्ट कर वास्तविक पॉइंटर प्राप्त करें।>= 2.32
safe_link_double_protect.cकिसी पॉइंटर को दो बार सुरक्षित करके PROTECT_PTR के लिए लीक-रहित बायपास, जो t-cache में मनमाना पॉइंटर लिंकिंग की अनुमति देता है।>= 2.3237c3 Potluck - Tamagoyaki
tcache_dup.c(अप्रचलित)tcache freelist का दुरुपयोग करके malloc को पहले से आवंटित हीप पॉइंटर लौटाने के लिए धोखा देना।2.26 - 2.28पैच
tcache_metadata_poisoning.ctcache मेटाडेटा struct में हेरफेर करके tcache को मनमाने पॉइंटर प्रदान करने के लिए धोखा देना।>= 2.26
house_of_io.cएक free'd tcache चंक में UAF द्वारा tcache प्रबंधन struct में हेरफेर करके malloc को मनमानी मेमोरी का पॉइंटर लौटाने के लिए धोखा देना।2.31 - 2.33
tcache_relative_write.cआउट-ऑफ-बाउंड tcache मेटाडेटा लेखन द्वारा हीप में मनमाना दशमलव मान और चंक पॉइंटर लेखन।2.30-2.41पैच
tcache_metadata_hijackingtcache मेटाडेटा में ओवरफ़्लो द्वारा मनमाना आवंटन।>= 2.42

GnuLibc निरंतर विकास के अधीन है और उपरोक्त कई तकनीकों के कारण malloc/free तर्क में स्थिरता जाँचें जोड़ी गई हैं। परिणामस्वरूप, ये जाँचें नियमित रूप से कुछ तकनीकों को तोड़ देती हैं और उन्हें बायपास करने के लिए (यदि संभव हो) समायोजन की आवश्यकता होती है। हम इस समस्या का समाधान उसी तकनीक के कई संस्करण रखकर करते हैं, प्रत्येक Glibc-रिलीज़ के लिए जिसमें समायोजन की आवश्यकता थी। संरचना glibc_<version>/technique.c है।

आपके पास एक अच्छा उदाहरण है? उसे यहाँ जोड़ें! पूरी तकनीक को एक ही .c फ़ाइल में इनलाइन करने का प्रयास करें -- इस तरह सीखना बहुत आसान है।

आरंभ करें

त्वरित सेटअप

  • सुनिश्चित करें कि आपके पास निम्नलिखित पैकेज/टूल स्थापित हैं: patchelf zstd wget (बेशक कंपाइलरों के लिए build-essential या समान, make, ... भी)
  • साथ ही, /usr/bin/python आपकी python बाइनरी होना चाहिए या उसकी ओर इंगित करना चाहिए (जैसे /usr/bin/python3)```shell git clone https://github.com/shellphish/how2heap cd how2heap make clean base ./malloc_playground
root@kitploit:~
ध्यान दें कि यह बाइनरी को आपके सिस्टम libc से लिंक करेगा। यदि आप अन्य libc संस्करणों के साथ प्रयोग करना चाहते हैं। कृपया `Complete Setup` देखें।

## पूर्ण सेटअप

यदि आप अपने होस्ट मशीन पर संकलित किसी बाइनरी में `LD_PRELOAD` libcs लोड करने का प्रयास करते हैं, तो आपको सिंबल वर्जनिंग समस्याओं का सामना करना पड़ेगा (देखें [यह](https://github.com/shellphish/how2heap/issues/169))।
इसे बायपास करने के दो तरीके हैं।

### विधि 1: पुराने libc के साथ लिंक करना
यह लिंकर को टार्गेट बाइनरी को टार्गेट libc के साथ लिंक करने के लिए कहता है।```shell
git clone https://github.com/shellphish/how2heap
cd how2heap
H2H_USE_SYSTEM_LIBC=N make v2.23

यह सभी बाइनरी को संबंधित libcs के साथ लिंक करेगा। इससे बेहतर यह है कि इसमें डिबग प्रतीक (debug symbols) शामिल हैं। अब आप अपनी होस्ट मशीन पर किसी भी libc संस्करण के साथ प्रयोग कर सकते हैं। इस उदाहरण में, यह सभी glibc-2.23 बाइनरी को संकलित करेगा और उन्हें libc-2.23 के साथ लिंक करेगा। आप अन्य libc संस्करणों के साथ प्रयोग करने के लिए संख्या बदल सकते हैं।

विधि 2: docker का उपयोग करें

यह एक पुराने ubuntu कंटेनर के अंदर बाइनरी संकलित करने के लिए Docker-आधारित दृष्टिकोण का उपयोग करता है, ताकि यह लक्षित libc संस्करण के साथ चलने योग्य हो।```shell git clone https://github.com/shellphish/how2heap cd how2heap

the next command will prepare the target binary so it runs with

the expected libc version

make base ./glibc_run.sh 2.30 ./malloc_playground -d -p

now you can play with the binary with glibc-2.30

and even debug it with the correct symbols

readelf -d -W malloc_playground | grep RUNPATH # or use checksec readelf -l -W malloc_playground | grep interpreter gdb -q -ex "start" ./malloc_playground

root@kitploit:~
# हीप शोषण उपकरण

यहाँ कुछ हीप शोषण उपकरण उपलब्ध हैं।

## Malloc Playground

दिया गया `malloc_playground.c` फ़ाइल एक प्रोग्राम का स्रोत है जो उपयोगकर्ता को इंटरैक्टिव रूप से मेमोरी आवंटित करने और मुक्त करने के लिए कमांड देने का संकेत देता है।

## Pwngdb

gdb में glibc हीप की जाँच करें: https://github.com/scwuaptx/Pwngdb

## pwndbg

एक शोषण-केंद्रित gdb प्लगइन जो glibc हीप को देखने/छेड़छाड़ करने की क्षमता प्रदान करता है: https://github.com/pwndbg/pwndbg

## gef

एक और उत्कृष्ट gdb प्लगइन जो glibc हीप की जाँच करने की क्षमता प्रदान करता है: https://github.com/hugsy/gef

## heap-viewer

IDA Pro में glibc हीप की जाँच करें: https://github.com/danigargu/heap-viewer

## heaptrace

पतों को प्रतीकों से बदलकर हीप ऑपरेशन को विज़ुअलाइज़ करने में आपकी सहायता करता है: https://github.com/Arinerron/heaptrace

# अन्य संसाधन

कुछ अच्छे हीप शोषण संसाधन, मोटे तौर पर उनके प्रकाशन के उल्टे क्रम में, ये हैं:

## उपयोगी हीप शोषण ट्यूटोरियल
- GLIBC हीप शोषण तकनीकों का अवलोकन (https://0x434b.dev/overview-of-glibc-heap-exploitation-techniques/) <!-- 2022 -->
- गहन glibc ट्यूटोरियल (https://heap-exploitation.dhavalkapil.com/) - पुस्तक और एक्सप्लॉइट नमूने <!-- 2022 -->
- glibc-2.31 पर काम करने वाली हीप शोषण तकनीकें (https://github.com/StarCross-Tech/heap_exploit_2.31) <!-- 2020 -->
- लिनक्स यूज़रलैंड हीप का आसान परिचय (https://sensepost.com/blog/2017/painless-intro-to-the-linux-userland-heap/) <!-- 2017 -->
- ptmalloc फ़ैनज़ीन, ptmalloc पर मेटा-डेटा हमलों से संबंधित संसाधनों और उदाहरणों का एक सेट (http://tukan.farm/2016/07/26/ptmalloc-fanzine/) <!-- 2016 -->
- Glibc Adventures: The Forgotten Chunk (https://github.com/bash-c/slides/blob/master/pwn_heap/Glibc%20Adventures:%20The%20forgotten%20chunks.pdf) - उन्नत हीप शोषण <!-- 2015 -->

## ऐतिहासिक हीप शोषण (इतिहास)
- Pseudomonarchia jemallocum (http://www.phrack.org/issues/68/10.html) <!-- 2012 -->
- The House Of Lore: Reloaded (http://phrack.org/issues/67/8.html) <!-- 2010 -->
- Malloc Des-Maleficarum (http://phrack.org/issues/66/10.html) - कुछ malloc शोषण तकनीकें <!-- 2009 -->
- एक और free() शोषण तकनीक (http://phrack.org/issues/66/6.html) <!-- 2009 -->
- वाइल्डरनेस को पराजित करने के लिए set_head का उपयोग (http://phrack.org/issues/64/9.html) <!-- 2007 -->
- हीप को तोड़कर समझना (https://www.blackhat.com/presentations/bh-usa-07/Ferguson/Whitepaper/bh-usa-07-ferguson-WP.pdf) - हीप कार्यान्वयन और कुछ एक्सप्लॉइट्स की व्याख्या करता है <!-- 2007 -->
- OS X हीप शोषण तकनीकें (http://phrack.org/issues/63/5.html) <!-- 2005 -->
- The Malloc Maleficarum (http://seclists.org/bugtraq/2005/Oct/118) <!-- 2005 -->
- वाइल्डरनेस का शोषण (http://seclists.org/vuln-dev/2004/Feb/25) <!-- 2004 -->
- Doug lea के उन्नत malloc एक्सप्लॉइट्स (http://phrack.org/issues/61/6.html) <!-- 2003 -->

# हार्डनिंग
glibc में कुछ "हार्डनिंग" उपाय निर्मित हैं, जैसे `export MALLOC_CHECK_=1` (कुछ जाँच सक्षम करता है), `export MALLOC_PERTURB_=1` (डेटा ओवरराइट हो जाता है), `export MALLOC_MMAP_THRESHOLD_=1` (हमेशा mmap() का उपयोग करें), ...

अधिक जानकारी: [mcheck()](http://www.gnu.org/software/libc/manual/html_node/Heap-Consistency-Checking.html), [mallopt()](http://www.gnu.org/software/libc/manual/html_node/Malloc-Tunable-Parameters.html).

कुछ ट्रेसिंग समर्थन भी है जैसे [mtrace()](http://manpages.ubuntu.com/mtrace), [malloc_stats()](http://manpages.ubuntu.com/malloc_stats), [malloc_info()](http://manpages.ubuntu.com/malloc_info), [memusage](http://manpages.ubuntu.com/memusage), और इस परिवार के अन्य फ़ंक्शनों में।
टूल डाउनलोड करें