House of Rabbit
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Możliwość modyfikacji wskaźnika fd fast bin lub rozmiaru: Oznacza to, że możesz zmienić wskaźnik do przodu kawałka w fastbin lub jego rozmiar.
Możliwość wywołania malloc_consolidate
: Można to zrobić, przydzielając duży kawałek lub łącząc górny kawałek, co zmusza stertę do konsolidacji kawałków.
Utworzenie nakładających się kawałków: Aby jeden kawałek nakładał się na inny, co pozwala na dalsze manipulacje stertą.
Fałszowanie fałszywych kawałków: Aby oszukać alokator, aby traktował fałszywy kawałek jako prawdziwy kawałek podczas operacji na stercie.
Cel: Utworzenie nakładającego się kawałka poprzez manipulację rozmiarem kawałka fastbin.
Krok 1: Przydziel kawałki
We allocate two chunks of 0x40 bytes each. These chunks will be placed in the fast bin list once freed.
Krok 2: Zwolnij kawałki
Zwalniamy oba kawałki, dodając je do listy fastbin.
Krok 3: Zmodyfikuj rozmiar kawałka
Zmieniamy metadane rozmiaru chunk1
na 0xa1. To kluczowy krok, aby oszukać alokator podczas konsolidacji.
Krok 4: Wywołaj malloc_consolidate
Alokacja dużego kawałka wywołuje funkcję malloc_consolidate
, łącząc małe kawałki w szybkim binie. Manipulowany rozmiar chunk1
powoduje, że nakłada się na chunk2
.
Po konsolidacji chunk1
nakłada się na chunk2
, co umożliwia dalszą eksploitację.
fd
Cel: Stworzyć fałszywy kawałek poprzez manipulację wskaźnikiem fd
szybkiego bina.
Krok 1: Alokuj kawałki
Wyjaśnienie: Alokujemy dwa kawałki, jeden mniejszy i jeden większy, aby przygotować stertę dla fałszywego kawałka.
Krok 2: Utwórz fałszywy kawałek
Pisaliśmy fałszywe metadane chunków do chunk2
, aby zasymulować mniejsze chunki.
Krok 3: Zwolnij chunk1
Wyjaśnienie: Zwalniamy chunk1
, dodając go do listy fastbin.
Krok 4: Zmodyfikuj fd
chunk1
Wyjaśnienie: Zmieniamy wskaźnik do przodu (fd
) chunk1
, aby wskazywał na nasz fałszywy chunk wewnątrz chunk2
.
Krok 5: Wywołaj malloc_consolidate
Przydzielenie dużego kawałka ponownie wyzwala malloc_consolidate
, który przetwarza fałszywy kawałek.
Fałszywy kawałek staje się częścią listy fastbin, co czyni go legalnym kawałkiem do dalszej eksploatacji.
Technika House of Rabbit polega na modyfikacji rozmiaru kawałka fast bin, aby stworzyć nakładające się kawałki lub manipulacji wskaźnikiem fd
, aby stworzyć fałszywe kawałki. Pozwala to atakującym na fałszowanie legalnych kawałków w stercie, co umożliwia różne formy eksploatacji. Zrozumienie i praktykowanie tych kroków poprawi twoje umiejętności eksploatacji sterty.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)