House of Einherjar
Reading time: 3 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Basic Information
Code
- Angalia mfano kutoka https://github.com/shellphish/how2heap/blob/master/glibc_2.35/house_of_einherjar.c
- Au ile kutoka https://guyinatuxedo.github.io/42-house_of_einherjar/house_einherjar_exp/index.html#house-of-einherjar-explanation (huenda ukahitaji kujaza tcache)
Goal
- Lengo ni kugawa kumbukumbu katika anwani maalum karibu yoyote.
Requirements
- Unda chunk bandia tunapotaka kugawa chunk:
- Weka viashiria kuashiria yenyewe ili kupita ukaguzi wa usalama
- Overflow ya byte moja na byte ya null kutoka chunk moja hadi nyingine ili kubadilisha bendera ya
PREV_INUSE
. - Onyesha katika
prev_size
ya chunk iliyoathiriwa na null tofauti kati yake na chunk bandia - Ukubwa wa chunk bandia lazima pia uwe umewekwa sawa ili kupita ukaguzi wa usalama
- Ili kujenga hizi chunks, utahitaji kuvuja heap.
Attack
A
chunk bandia inaundwa ndani ya chunk inayodhibitiwa na mshambuliaji ikielekeza nafd
nabk
kwa chunk asilia ili kupita ulinzi- Chunks 2 nyingine (
B
naC
) zinagawiwa - Kwa kutumia off by one katika
B
bendera yaprev in use
inafutwa na data yaprev_size
inabadilishwa na tofauti kati ya mahali ambapo chunkC
inagawiwa, hadi chunk bandiaA
iliyoundwa hapo awali - Hii
prev_size
na ukubwa katika chunk bandiaA
lazima iwe sawa ili kupita ukaguzi. - Kisha, tcache inajazwa
- Kisha,
C
inachukuliwa ili kuungana na chunk bandiaA
- Kisha, chunk mpya
D
inaundwa ambayo itaanza katika chunk bandiaA
na kufunika chunkB
- Nyumba ya Einherjar inamalizika hapa
- Hii inaweza kuendelea na shambulio la fast bin au Tcache poisoning:
- Free
B
ili kuiongeza kwenye fast bin / Tcache fd
yaB
inabadilishwa ikifanya iweke kwenye anwani ya lengo ikitumia chunkD
(kama inavyojumuishaB
ndani)- Kisha, mallocs 2 zinafanywa na ya pili itakuwa ikigawa anwani ya lengo
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
- Baada ya kuachilia viashiria havifutwi, hivyo bado inawezekana kufikia data zao. Kwa hivyo chunk inawekwa katika bin isiyo na mpangilio na kuvuja viashiria inavyoshikilia (libc leak) na kisha heap mpya inawekwa kwenye bin isiyo na mpangilio na kuvuja anwani ya heap kutoka kwa kiashiria inachopata.
- baby-talk. DiceCTF 2024
- Null-byte overflow bug katika
strtok
. - Tumia House of Einherjar kupata hali ya chunks zinazoshirikiana na kumaliza na Tcache poisoning ili kupata primitive ya kuandika isiyo na mpangilio.
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.