House of Rabbit
Anforderungen
Fähigkeit, den fastbin fd-Zeiger oder die Größe zu ändern: Dies bedeutet, dass Sie den Vorwärtszeiger eines Chunks im fastbin oder seine Größe ändern können.
Fähigkeit,
malloc_consolidate
auszulösen: Dies kann durch Zuweisen eines großen Chunks oder durch Zusammenführen des Top-Chunks erfolgen, was dazu führt, dass der Heap Chunks konsolidiert.
Ziele
Überlappende Chunks erstellen: Um einen Chunk mit einem anderen zu überlappen, um weitere Heap-Manipulationen zu ermöglichen.
Fälschung von Fake-Chunks: Um den Allocator dazu zu bringen, einen gefälschten Chunk während der Heap-Operationen als legitimen Chunk zu behandeln.
Schritte des Angriffs
POC 1: Ändern der Größe eines fastbin-Chunks
Ziel: Erstellen eines überlappenden Chunks durch Manipulation der Größe eines fastbin-Chunks.
Schritt 1: Chunks zuweisen
Schritt 2: Freigeben von Chunks
Wir geben beide Chunks frei und fügen sie der fastbin-Liste hinzu.
Schritt 3: Größenänderung des Chunks
Schritt 4: Trigger
malloc_consolidate
Allocating a large chunk triggers the malloc_consolidate
function, merging small chunks in the fast bin. The manipulated size of chunk1
causes it to overlap with chunk2
.
After consolidation, chunk1
overlaps with chunk2
, allowing for further exploitation.
POC 2: Modify the fd
pointer
fd
pointerObjective: Create a fake chunk by manipulating the fast bin fd
pointer.
Schritt 1: Chunks zuweisen
Erklärung: Wir allozieren zwei Chunks, einen kleineren und einen größeren, um den Heap für den Fake Chunk einzurichten.
Schritt 2: Fake Chunk erstellen
Schritt 3:
chunk1
freigeben
Erklärung: Wir geben chunk1
frei und fügen ihn der fastbin-Liste hinzu.
Schritt 4: Ändern Sie
fd
vonchunk1
Erklärung: Wir ändern den Vorwärtszeiger (fd
) von chunk1
so, dass er auf unseren gefälschten Chunk innerhalb von chunk2
zeigt.
Schritt 5:
malloc_consolidate
auslösen
Die erneute Zuweisung eines großen Chunks löst malloc_consolidate
aus, das den Fake-Chunk verarbeitet.
Der Fake-Chunk wird Teil der Fastbin-Liste, was ihn zu einem legitimen Chunk für weitere Ausnutzungen macht.
Zusammenfassung
Die House of Rabbit-Technik beinhaltet entweder die Modifizierung der Größe eines Fastbin-Chunks, um überlappende Chunks zu erstellen, oder die Manipulation des fd
-Zeigers, um Fake-Chunks zu erstellen. Dies ermöglicht es Angreifern, legitime Chunks im Heap zu fälschen und verschiedene Formen der Ausnutzung zu ermöglichen. Das Verständnis und die praktische Anwendung dieser Schritte werden Ihre Fähigkeiten in der Heap-Ausnutzung verbessern.
Last updated