Large Bin Attack
Last updated
Last updated
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Für weitere Informationen darüber, was ein großer Bin ist, überprüfe diese Seite:
Bins & Memory AllocationsEs ist möglich, ein großartiges Beispiel in how2heap - large bin attack zu finden.
Im Grunde kannst du 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-Chunks zu modifizieren, wenn bestimmte Bedingungen erfüllt sind.
In diesem Beispiel findest du die folgenden Bedingungen:
Ein großer Chunk wird zugewiesen
Ein großer Chunk, der kleiner als der erste ist, aber im selben Index zugewiesen wird
Muss kleiner sein, damit er zuerst in den Bin geht
(Ein Chunk wird erstellt, um das Zusammenführen mit dem Top-Chunk zu verhindern)
Dann wird der erste große Chunk freigegeben und ein neuer Chunk, der größer ist, wird zugewiesen -> Chunk1 geht in den großen Bin
Dann wird der zweite große Chunk freigegeben
Jetzt die Verwundbarkeit: Der Angreifer kann chunk1->bk_nextsize
auf [target-0x20]
modifizieren
Dann wird ein größerer Chunk als Chunk 2 zugewiesen, sodass Chunk2 in den großen Bin eingefügt wird und die Adresse chunk1->bk_nextsize->fd_nextsize
mit der Adresse von Chunk2 überschreibt
Es gibt andere potenzielle Szenarien, das Ziel ist es, dem großen Bin einen Chunk hinzuzufügen, der kleiner ist als ein aktueller X Chunk im Bin, sodass er direkt davor im Bin eingefügt werden muss, und wir müssen in der Lage sein, X's bk_nextsize
zu modifizieren, 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 global_max_fast
globale Variable 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.
Large Bin Angriff in der gleichen Situation, wie er in how2heap erscheint.
Der Schreibprimitive ist komplexer, da global_max_fast
hier nutzlos ist.
FSOP wird benötigt, um den Exploit abzuschließen.
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)