mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-01 08:59:30 +00:00
5.1 KiB
5.1 KiB
House of Lore | Small bin Attack
{% hint style="success" %}
Lernen Sie & üben Sie AWS-Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen Sie & üben Sie GCP-Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud Github-Repositorys senden.
Grundlegende Informationen
Code
- Überprüfen Sie den Code unter https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house_of_lore/
- Dies funktioniert nicht
- Oder: https://github.com/shellphish/how2heap/blob/master/glibc_2.39/house_of_lore.c
- Dies funktioniert auch nicht, selbst wenn versucht wird, einige Überprüfungen zu umgehen und den Fehler zu erhalten:
malloc(): unaligned tcache chunk detected
- Dieses Beispiel funktioniert noch: https://guyinatuxedo.github.io/40-house_of_lore/house_lore_exp/index.html
Ziel
- Fügen Sie einen gefälschten kleinen Chunk in den Small Bin ein, damit es möglich ist, ihn zuzuweisen.
Beachten Sie, dass der hinzugefügte kleine Chunk der gefälschte ist, den der Angreifer erstellt und nicht einer an einer beliebigen Position.
Anforderungen
- Erstellen Sie 2 gefälschte Chunks und verknüpfen Sie sie miteinander und mit dem legitimen Chunk im Small Bin:
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(Sie müssen einen Zeiger im freigegebenen Small Bin Chunk über eine andere Schwachstelle ändern)legit.bk
->fake0
Dann können Sie fake0
zuweisen.
Angriff
- Ein kleiner Chunk (
legit
) wird zugewiesen, dann wird ein weiterer zugewiesen, um eine Konsolidierung mit dem Top Chunk zu verhindern. Dann wirdlegit
freigegeben (wodurch es in die Liste der unsortierten Bins verschoben wird) und ein größerer Chunk wird zugewiesen, wodurchlegit
in den Small Bin verschoben wird. - Ein Angreifer generiert ein paar gefälschte kleine Chunks und erstellt die erforderlichen Verknüpfungen, um die Integritätsprüfungen zu umgehen:
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(Sie müssen einen Zeiger im freigegebenen Small Bin Chunk über eine andere Schwachstelle ändern)legit.bk
->fake0
- Ein kleiner Chunk wird zugewiesen, um legit zu erhalten, wodurch
fake0
in die Top-Liste der kleinen Bins gelangt - Ein weiterer kleiner Chunk wird zugewiesen, wodurch
fake0
als Chunk erhalten wird, was potenziell das Lesen/Schreiben von Zeigern darin ermöglicht.
Referenzen
- https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house_of_lore/
- https://heap-exploitation.dhavalkapil.com/attacks/house_of_lore
- https://guyinatuxedo.github.io/40-house_of_lore/house_lore_exp/index.html
{% hint style="success" %}
Lernen Sie & üben Sie AWS-Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen Sie & üben Sie GCP-Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud Github-Repositorys senden.