House of Einherjar

Unterstützen Sie HackTricks

Grundlegende Informationen

Code

Ziel

  • Das Ziel ist es, Speicher fast an einer bestimmten Adresse zuzuweisen.

Anforderungen

  • Erstellen Sie einen gefälschten Chunk, wenn wir einen Chunk zuweisen möchten:

  • Setzen Sie Zeiger so, dass sie auf sich selbst zeigen, um die Integritätsprüfungen zu umgehen

  • Ein-Byte-Überlauf mit einem Nullbyte von einem Chunk zum nächsten, um das PREV_INUSE-Flag zu ändern.

  • Geben Sie im prev_size des missbrauchten Off-by-Null-Chunks den Unterschied zwischen ihm selbst und dem gefälschten Chunk an

  • Die Größe des gefälschten Chunks muss ebenfalls auf die gleiche Größe gesetzt worden sein, um die Integritätsprüfungen zu umgehen

  • Für den Aufbau dieser Chunks benötigen Sie ein Heap-Leak.

Angriff

  • Es wird ein gefälschter Chunk innerhalb eines vom Angreifer kontrollierten Chunks erstellt, der mit fd und bk auf den Original-Chunk zeigt, um Schutzmechanismen zu umgehen

  • 2 weitere Chunks (B und C) werden allokiert

  • Durch den Missbrauch des Off-by-One im B wird das prev in use-Bit gelöscht und die prev_size-Daten mit dem Unterschied zwischen dem Ort, an dem der C-Chunk allokiert ist, und dem zuvor generierten gefälschten A-Chunk überschrieben

  • Diese prev_size und die Größe im gefälschten Chunk A müssen gleich sein, um die Prüfungen zu umgehen.

  • Dann wird der Tcache gefüllt

  • Dann wird C freigegeben, damit es sich mit dem gefälschten Chunk A konsolidiert

  • Dann wird ein neuer Chunk D erstellt, der im gefälschten A-Chunk beginnt und den B-Chunk abdeckt

  • Das Haus von Einherjar endet hier

  • Dies kann mit einem Fast-Bin-Angriff oder Tcache-Vergiftung fortgesetzt werden:

  • Geben Sie B frei, um es dem Fast-Bin / Tcache hinzuzufügen

  • Das fd von B wird überschrieben, sodass es auf die Zieladresse zeigt und den D-Chunk missbraucht (da er B enthält)

  • Dann werden 2 mallocs durchgeführt und der zweite wird die Zuweisung der Zieladresse sein

Referenzen und weitere Beispiele

Unterstützen Sie HackTricks

Last updated