House of Einherjar

Reading time: 4 minutes

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Unterstützen Sie HackTricks

Grundinformationen

Code

Ziel

  • Das Ziel ist es, Speicher an fast jeder spezifischen Adresse zuzuweisen.

Anforderungen

  • Erstellen Sie einen gefälschten Chunk, wenn wir einen Chunk zuweisen möchten:
  • Setzen Sie Zeiger, um auf sich selbst zu zeigen, um Sanitätsprüfungen zu umgehen
  • Ein-Byte-Überlauf mit einem Null-Byte von einem Chunk zum nächsten, um das PREV_INUSE-Flag zu ändern.
  • Geben Sie in der prev_size des durch Null missbrauchten Chunks den Unterschied zwischen sich selbst und dem gefälschten Chunk an
  • Die Größe des gefälschten Chunks muss ebenfalls auf die gleiche Größe gesetzt werden, um Sanitätsprüfungen zu umgehen
  • Zum Konstruieren dieser Chunks benötigen Sie einen Heap-Leak.

Angriff

  • Ein gefälschter Chunk wird innerhalb eines vom Angreifer kontrollierten Chunks erstellt, der mit fd und bk auf den ursprünglichen Chunk zeigt, um Schutzmaßnahmen zu umgehen
  • 2 weitere Chunks (B und C) werden zugewiesen
  • Durch den Missbrauch des Off-by-One im B wird das prev in use-Bit gelöscht und die prev_size-Daten werden mit dem Unterschied zwischen dem Ort, an dem der C-Chunk zugewiesen wird, 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 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-Poisoning fortgesetzt werden:
  • B freigeben, um es zum Fast-Bin / Tcache hinzuzufügen
  • B's fd wird überschrieben, sodass es auf die Zieladresse zeigt, indem der D-Chunk missbraucht wird (da er B enthält)
  • Dann werden 2 Mallocs durchgeführt, und der zweite wird die Zieladresse zuweisen

Referenzen und andere Beispiele

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Unterstützen Sie HackTricks