Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
PS5-UMTX-Jailbreak — Ein WebKit-basierter Kernel-Exploit und Jailbreak für PS5 | Kitploit
Tools/GitHubGitHub/ps5dev/ps5-umtx-jailbreak
Privilege EscalationExploitationPost-ExploitationBinary-Exploitation
GitHubps5dev/ps5-umtx-jailbreak

PS5-UMTX-Jailbreak

Ein WebKit-basierter Kernel-Exploit und Jailbreak für PS5

Repository anzeigen
24739vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

PS5 UMTX Jailbreak


Zusammenfassung

Dieses Repository enthält einen WebKit-ROP-Exploit der UMTX-race-Use-after-Free-Sicherheitslücke (CVE-2024-43102), die von Synacktiv gemeldet wurde. Es ist im Grunde ein Port der Exploit-Strategie von fail0verflow und flatz. Er missbraucht die UAF, um ein Lese-/Schreib-Mapping in den Stack eines Kernel-Threads zu erhalten, und nutzt Pipe-Lese- und Schreibvorgänge, um eine (nicht ganz ideale) beliebige Lese-/Schreib-Primitive im Kernel zu etablieren. Dieses Lesen/Schreiben wird dann zu einer besseren Primitive ausgebaut, die ein IPv6-Socket-Paar und ein Pipe-Paar für stabiles Lesen/Schreiben nutzt, das an Payloads übergeben werden kann – auf dieselbe Weise, wie es mit dem früheren IPV6-PS5-Kernel-Exploit möglich war.

Die Seite selbst ist eine abgespeckte und modifizierte Version des PS5 Exploit Host von idlesauce, da dort bereits die Arbeit erledigt wurde, psfree an meinen zuvor verwendeten Codestil anzubinden. Dieser Host ist auch meine persönliche Wahl zum Ausführen von Dingen, da er sehr flüssig läuft und nützliche Payloads integriert. Hoffentlich wird er in naher Zukunft aktualisiert, um diesen Exploit zu unterstützen <3.

Letztendlich wird ein Payload-Loader gestartet, der auf Port 9021 nach Payload-ELFs lauscht. Ich empfehle das PS5 Payload Dev SDK, da es volle Kompatibilität mit diesem Loader haben sollte, sobald Kernel-Offsets hinzugefügt werden.

Diese Sicherheitslücke betrifft Firmware 1.00 bis 7.61, jedoch scheinen FW >= 3.00 zusätzliche Mitigationen zu haben, die eine Anpassung des Exploits erfordern, damit er funktioniert. Da mich hauptsächlich niedrigere Firmwares interessieren, unterstützt dieser Exploit FW >= 3.00 derzeit noch nicht. Darüber hinaus wurde die WebKit-Sicherheitslücke, mit der wir verketten, in 6.00 gepatcht, sodass für diese Systeme ein weiterer WebKit-Exploit erforderlich sein wird, der Userland-Lesen/Schreiben erreicht. Auch hier: Da ich mich nicht auf höhere Firmwares konzentriere, bleibt das derzeit unvollendet.

Wichtige Hinweise

  • 3.00+ hat eine geringere Zuverlässigkeit und die Ausführung kann länger dauern. Wenn du eine Weile bei „triggering race“ hängst, schließe den Browser und versuche es erneut.
  • 5.00+ Der ELF-Loader funktioniert derzeit nicht, da wir dlsym nicht mehr ordnungsgemäß aufrufen können; das Payload-SDK muss geändert werden.

Derzeit werden folgende Firmwares unterstützt:

  • 1.xx [1.00, 1.01, 1.02, 1.05, 1.10, 1.11, 1.12, 1.13, 1.14]
  • 2.xx [2.00, 2.20, 2.25, 2.26, 2.30, 2.50, 2.70]
  • 3.xx [3.00, 3.20]
  • 4.xx [4.00, 4.02, 4.03, 4.50, 4.51]
  • 5.xx [5.00, 5.02, 5.10, 5.50]

Derzeit enthalten

  • Erlangt beliebigen Kernel-Lese-/Schreibzugriff
  • Aktiviert das Debug-Einstellungsmenü (Hinweis: Du musst die Einstellungen vollständig verlassen und erneut öffnen, um es zu sehen).
  • Verschafft Root-Rechte und bricht aus der Sandbox/dem Jail aus.
  • Führt John Tornbloms ELF-Loader auf Port 9021 aus, damit Payloads ausgeführt werden können (auf < 5.00FW).

Einschränkungen

  • Dieser Exploit erreicht Lesen/Schreiben, aber keine Codeausführung. Das liegt daran, dass wir derzeit keinen Kernelcode für Gadgets dumpen können, da die .text-Seiten des Kernels als Execute-Only-Memory (XOM) markiert sind. Der Versuch, Kernel-.text-Zeiger zu lesen, führt zu einem Panic!
  • Aufgrund des oben Genannten sowie des vom Hypervisor (HV) erzwungenen Kernel-Schreibschutzes kann dieser Exploit außerdem keine Patches oder Hooks im Kernel-Space installieren.
  • Die auf Clang basierende feinkörnige Control-Flow-Integrity (CFI) ist vorhanden und wird erzwungen.
  • Supervisor Mode Access Prevention/Execution (SMAP/SMEP) kann aufgrund des HV nicht deaktiviert werden.
  • FW >= 6.00 erfordert einen neuen WebKit-Exploit und wird daher nicht unterstützt.

Verwendung

  1. Konfiguriere fakedns über dns.conf so, dass manuals.playstation.net auf die IP-Adresse deines PCs zeigt.
  2. Führe den Fake-DNS aus: python fakedns.py -c dns.conf
  3. Starte den HTTPS-Server: python host.py
  4. Gehe in den erweiterten Netzwerkeinstellungen der PS5 und setze den primären DNS auf die IP-Adresse deines PCs und lasse den sekundären auf 0.0.0.0.
    1. Manchmal wird das Handbuch trotzdem nicht geladen und ein Neustart ist erforderlich. Ich bin mir nicht sicher, warum – es ist wirklich seltsam.
  5. Gehe in den Einstellungen zum Benutzerhandbuch, akzeptiere die Eingabeaufforderung für das nicht vertrauenswürdige Zertifikat und starte den Exploit.
  6. Optional: Kommentarzeichen beim Kernel-.data-Dump-Code entfernen und das Dump-Server-Skript ausführen (Hinweis: Adresse/Port müssen in exploit.js ersetzt werden).

Zukünftige Arbeiten

  • Exploit-Strategie für FW >= 3.xx aktualisieren, um Mitigationen zu berücksichtigen
  • Offsets für weitere (niedrigere) Firmwares hinzufügen
  • WebKit-Exploit für FW >= 6.00 hinzufügen.

Verwendung des ELF-Loaders

Um den ELF-Loader zu verwenden, führe den Exploit bis zum Abschluss aus. Nach Abschluss startet er einen Server auf Port :9021. Verbinde dich und sende dein ELF per TCP an die PS5; es wird dann ausgeführt. Dieser Loader sollte weiterhin Payloads akzeptieren und ausführen, auch nachdem der Browser beendet wurde.

Anmerkungen zur Exploit-Strategie

Anfänglicher Double-Free

Die Strategie für diesen Exploit stammt größtenteils von fail0verflow und flatz. Weitere Informationen zur Sicherheitslücke findest du im Write-up von chris@accessvector. Bei der Ausnutzung erhalten wir im Wesentlichen einen Double-Free. Wir können dies nutzen, um das vmobject eines Kernel-Stacks mit dem einer mmap-Zuordnung zu überlappen und so ein Fenster in den Stack eines Kernel-Threads zu erhalten. Diese sehr mächtige Fähigkeit ermöglicht es uns, beliebige Kernel-Zeiger auf dem Stack zu lesen/zu schreiben, was eine ASLR-Umgehung und die Erstellung von Primitiven ermöglicht. Den Thread, in dessen Stack wir Einblick haben, nennen wir Opfer-Thread.

Erlangen von beliebigem Lese-/Schreibzugriff

Indem wir eine Pipe erstellen und den Pipe-Puffer im Haupt-Thread füllen und dann versuchen, mit dem Opfer-Thread in die Pipe zu schreiben, blockiert der Opfer-Thread und wartet darauf, dass im Puffer Platz frei wird. Während dieser Zeit können wir unser Fenster in den Kernel-Stack nutzen, um die iovec-Zeiger in Kernel-Zeiger zu ändern und Flags zu setzen, sodass sie als Kernel-Adressen behandelt werden. Wenn wir dann die Pipe im Haupt-Thread lesen, können wir einen beliebigen Kernel-Read erreichen.

Wenn wir den Opfer-Thread dazu bringen, auf der Pipe zu lesen, blockiert er und wartet auf eingehende Daten. Wir können dann erneut die iovec-Zeiger überschreiben und sie zu Kernel-Zeigern machen und im Haupt-Thread Daten schreiben, um einen beliebigen Kernel-Write zu erhalten.

Verbesserung des beliebigen Lese-/Schreibzugriffs

Zu diesem Zeitpunkt haben wir einen beliebigen Lese-/Schreibzugriff ohne echte Einschränkungen, aber wir sind darauf angewiesen, Multithreading und Blockierung zu verwenden, damit es funktioniert, was nicht ideal ist. Wir verwenden dann den R/W-Zugriff, um die FD-Tabelle des Prozesses zu durchlaufen und die pktopts zweier IPV6-Sockets zu überlappen. Über den IPV6_PKTINFO-Sockopt können wir dann einen weiteren beliebigen Lese-/Schreibzugriff erstellen. Diese Lese-/Schreib-Primitive ist jedoch wiederum nicht ideal, da sie durch die zugrunde liegende Socket-Option in Größe und Inhalt eingeschränkt ist. Diesen Schritt behalten wir hauptsächlich bei, um das Szenario des IPV6-Exploits nachzubilden, auf dem die meisten Payloads und Ähnliches aufgebaut wurden.

Über Pipes können wir einen besseren Lese-/Schreibzugriff erhalten. Indem wir erneut die FD-Tabelle des Prozesses durchlaufen und Pipemap-Pufferobjekte modifizieren, können wir Lesen/Schreiben etablieren. Das IPV6-Socket-Paar dient als Mechanismus, um den Pipemap-Puffer zu steuern.

Beheben/Umgehen der Korruption

Wenn wir die Dinge so belassen und versuchen, den Browser zu schließen, stürzt das System ab. Das liegt daran, dass die Prozessbereinigung versucht, den bereits freigegebenen Kernel-Stack freizugeben. Um dies zu vermeiden, tun wir zwei Dinge:

  1. Wir lassen absichtlich den Refcount der shm-FD auslaufen, die wir für den anfänglichen Double-Free verwenden, damit sie beim Prozessende nicht freigegeben wird.
  2. Wir setzen td_kstack des Opfer-Threads in der Thread-Liste des Prozesses auf Null.

Hinweise zur Stabilität

Auf FW < 3.00 ist dieser Exploit sehr stabil. Der einzige kritische Fehlerpunkt ist eine fehlgeschlagene Überlappung der vmobjects. Auf höheren Firmwares ist diese Überlappung aufgrund angeblicher Mitigationen auf Ebene des Seiten-/Heap-Allokators schwerer zu erreichen.

Danksagungen / Shouts

  • fail0verflow
  • flatz
  • ChendoChap
  • SlidyBat
  • abc/psfree
  • idlesauce
  • Znullptr
  • zecoxao
  • SocracticBliss
  • John Tornblom

Discord

Wer Interesse hat, zur PS5-Forschung/-Entwicklung beizutragen, kann einem Discord beitreten, den ich eingerichtet habe: hier.

Tool herunterladen