Large Bin Attack
Last updated
Last updated
Lernen und üben Sie AWS-Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen und üben Sie GCP-Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Für weitere Informationen darüber, was ein großer Binär ist, siehe diese Seite:
Bins & Memory AllocationsEs ist möglich, ein großartiges Beispiel in how2heap - großer Binärangriff zu finden.
Im Grunde können Sie hier sehen, wie in der neuesten "aktuellen" Version von glibc (2.35) nicht überprüft wird: P->bk_nextsize
, was es ermöglicht, eine beliebige Adresse mit dem Wert eines großen Binärchunks zu ändern, wenn bestimmte Bedingungen erfüllt sind.
In diesem Beispiel finden Sie die folgenden Bedingungen:
Ein großer Chunk wird allokiert
Ein großer Chunk, der kleiner als der erste ist, aber im selben Index liegt, wird allokiert
Muss kleiner sein, damit er zuerst in den Binär geht
(Ein Chunk, um das Zusammenführen mit dem obersten Chunk zu verhindern, wird erstellt)
Dann wird der erste große Chunk freigegeben und ein neuer Chunk, der größer ist als dieser, wird allokiert -> Chunk1 geht in den großen Binär
Dann wird der zweite große Chunk freigegeben
Jetzt die Schwachstelle: Der Angreifer kann chunk1->bk_nextsize
auf [target-0x20]
ändern
Dann wird ein größerer Chunk als Chunk 2 allokiert, sodass Chunk 2 in den großen Binär eingefügt wird und die Adresse chunk1->bk_nextsize->fd_nextsize
mit der Adresse von Chunk 2 überschrieben wird
Es gibt andere potenzielle Szenarien, das Ziel ist es, dem großen Binär einen Chunk hinzuzufügen, der kleiner ist als ein aktueller X-Chunk im Binär, sodass er direkt davor im Binär eingefügt werden muss, und wir müssen in der Lage sein, X's bk_nextsize
zu ändern, da dort die Adresse des kleineren Chunks geschrieben wird.
Dies ist der relevante Code von malloc. Kommentare wurden hinzugefügt, um besser zu verstehen, wie die Adresse überschrieben wurde:
Dies könnte verwendet werden, um die globale Variable global_max_fast
von libc zu überschreiben, um dann einen Fast-Bin-Angriff mit größeren Chunks auszunutzen.
Eine weitere großartige Erklärung dieses Angriffs finden Sie bei guyinatuxedo.
Großer Bin-Angriff in derselben Situation, wie er in how2heap erscheint.
Die Schreibprimitive ist komplexer, da global_max_fast
hier nutzlos ist.
FSOP wird benötigt, um den Exploit abzuschließen.
Lernen und üben Sie AWS-Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen und üben Sie GCP-Hacking: HackTricks Training GCP Red Team Expert (GRTE)