House of Rabbit
Last updated
Last updated
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Fähigkeit, den fast bin fd-Zeiger oder die Größe zu ändern: Das bedeutet, dass Sie den Vorwärtszeiger eines Chunks im Fastbin oder dessen Größe ändern können.
Fähigkeit, malloc_consolidate
auszulösen: Dies kann erreicht werden, indem entweder ein großer Chunk zugewiesen oder der obere Chunk zusammengeführt wird, was den Heap zwingt, Chunks zu konsolidieren.
Überlappende Chunks erstellen: Um einen Chunk mit einem anderen zu überlappen, was weitere Heap-Manipulationen ermöglicht.
Falsche Chunks fälschen: Um den Allokator zu täuschen, damit er einen falschen Chunk während der Heap-Operationen als legitimen Chunk behandelt.
Ziel: Erstellen Sie einen überlappenden Chunk, indem Sie die Größe eines Fastbin-Chunks manipulieren.
Schritt 1: Chunks zuweisen
Wir allozieren zwei Chunks von jeweils 0x40 Bytes. Diese Chunks werden nach dem Freigeben in die Fast-Bin-Liste eingefügt.
Schritt 2: Chunks freigeben
Wir geben beide Chunks frei und fügen sie der Fastbin-Liste hinzu.
Schritt 3: Chunk-Größe ändern
Wir ändern die Größenmetadaten von chunk1
auf 0xa1. Dies ist ein entscheidender Schritt, um den Allokator während der Konsolidierung zu täuschen.
Schritt 4: Trigger malloc_consolidate
Allocieren eines großen Blocks löst die Funktion malloc_consolidate
aus, die kleine Blöcke im schnellen Bin zusammenführt. Die manipulierte Größe von chunk1
führt dazu, dass es sich mit chunk2
überschneidet.
Nach der Konsolidierung überschneidet sich chunk1
mit chunk2
, was weitere Ausnutzung ermöglicht.
fd
ZeigersZiel: Erstellen eines gefälschten Blocks durch Manipulation des schnellen Bin fd
Zeigers.
Schritt 1: Blöcke allokieren
Erklärung: Wir allokieren zwei Chunks, einen kleineren und einen größeren, um den Heap für den gefälschten Chunk einzurichten.
Schritt 2: Erstelle gefälschten Chunk
Wir schreiben gefälschte Chunk-Metadaten in chunk2
, um kleinere Chunks zu simulieren.
Schritt 3: Freigeben von chunk1
Erklärung: Wir geben chunk1
frei und fügen es der Fastbin-Liste hinzu.
Schritt 4: Ändere fd
von chunk1
Erklärung: Wir ändern den Vorwärtszeiger (fd
) von chunk1
, um auf unseren gefälschten Chunk innerhalb von chunk2
zu zeigen.
Schritt 5: malloc_consolidate
auslösen
Die Zuweisung eines großen Blocks löst erneut malloc_consolidate
aus, das den gefälschten Block verarbeitet.
Der gefälschte Block wird Teil der Fastbin-Liste, wodurch er zu einem legitimen Block für weitere Ausnutzung wird.
Die House of Rabbit-Technik beinhaltet entweder die Änderung der Größe eines Fastbin-Blocks, um überlappende Blöcke zu erstellen, oder die Manipulation des fd
-Zeigers, um gefälschte Blöcke zu erstellen. Dies ermöglicht Angreifern, legitime Blöcke im Heap zu fälschen, was verschiedene Formen der Ausnutzung ermöglicht. Das Verständnis und die Übung dieser Schritte werden Ihre Fähigkeiten zur Heap-Ausnutzung verbessern.
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)