Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ds3-nrssr-rce — Dokumentation und Proof-of-Concept-Code für CVE-2022-24125 und CVE-2022-24126. | Kitploit
Tools/GitHubGitHub/tremwil/ds3-nrssr-rce
Exploit-FrameworksSchwachstellenanalyseExploitationReverse EngineeringShellcodePenetrationstestsLernen & BildungRed TeamingShellcode-GenerierungPayload-EntwicklungBinary-Exploitation
169818vor 4 JahrenVon Kitploit geprüft
GitHub
tremwil/ds3-nrssr-rce

ds3-nrssr-rce

Dokumentation und Proof-of-Concept-Code für CVE-2022-24125 und CVE-2022-24126.

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Update: Dark Souls III 1.15.1

Ein neues Spielupdate, 1.15.1, wurde am 25.08.2022 für Dark Souls III veröffentlicht, zusammen mit der Wiederherstellung der Onlinedienste. Dieses Update korrigierte sowohl CVE-2022-24125 als auch CVE-2022-24126, zusammen mit einer Vielzahl anderer potenzieller Sicherheitslücken im P2P-Netzwerk des Spiels (OOB-Lese-/Schreibzugriffe). Darüber hinaus wurden alle bekannten Exploits behoben, die es erlaubten, die Speicherstände anderer Spieler zu manipulieren. Viele übliche kleine Cheats (z. B. „Fluchmesser“), die beim Online-Multiplayer häufig auftraten, wurden ebenfalls gepatcht.

ds3-nrssr-rce

Dieses Repository enthält Proof-of-Concept-Code und Dokumentation für den jüngsten RCE-Exploit, der FROM-SOFTWARE-Spiele betrifft, CVE-2022-24126. Obwohl theoretisch auch in anderen Spielen möglich, liegt der Fokus auf Dark Souls III, da meine Forschung an diesem Spiel durchgeführt wurde. Derzeit existiert Proof-of-Concept-Code nur für Dark Souls III, die Schwachstelle wurde jedoch in den folgenden Spielen bestätigt:

  • Dark Souls 1 PTDE (Credit: LukeYui)
  • Dark Souls Remastered (Credit: metal-crow)
  • Dark Souls 2 (einschließlich Scholar) (Credit: LukeYui)
  • Dark Souls 3 (bis 1.15.0) (Credit: tremwil)

Der anfällige Code ist auch in Sekiro vorhanden (Credit: LukeYui), obwohl es keine Möglichkeit gibt, ihn auszulösen. Das Vorhandensein in Demon's Souls wurde nicht bestätigt, ist aber sehr wahrscheinlich. Der geschlossene Netzwerktest war zwar betroffen, die Veröffentlichungsversion von Elden Ring jedoch nicht. Tatsächlich wurde eine ganze Reihe von Netzwerkabstürzen, Out-of-Bounds-Lese-/Schreibzugriffen und Exploits, die es Spielern erlaubten, die Spieldaten anderer zu modifizieren und die in Dark Souls III vorhanden waren, in Elden Ring gepatcht. Kudos an LukeYui für die Zusammenstellung dieser Liste und an FROM SOFTWARE für das schnelle Handeln! Ich bin froh zu sagen, dass Elden Ring unbestritten der sicherste FROM-SOFTWARE-Titel ist, was das Ausmaß des Schadens betrifft, den Hacker anrichten können.

Missverständnisse ausräumen

Entgegen der landläufigen Meinung handelt es sich hierbei NICHT um einen Peer-to-Peer-Netzwerk-Exploit. Er hängt mit dem Matchmaking-Server zusammen und ist daher viel schwerwiegender, da man aufgrund einer weiteren Matchmaking-Server-Schwachstelle (CVE-2022-24125) keine Multiplayer-Aktivitäten durchführen muss, um angreifbar zu sein.

In Dark Souls III hätte ein böswilliger Angreifer, der dies ausnutzt, innerhalb von Sekunden zuverlässig eine Payload von bis zu 1,3 MiB1 Shellcode auf jedem Online-Spieler-Rechner ausführen können.

Da das Spiel in den Monaten vor der Serverabschaltung durchschnittlich etwa 20.000 gleichzeitige Spieler hatte, war dies eindeutig ein Problem, das sofort behoben werden musste, insbesondere angesichts der Möglichkeit, dass es in Elden Ring vorhanden sein könnte. Da FROM SOFTWARE über 40 Tage nach meinem ersten Bericht mit Proof-of-Concept-Videos und detaillierter Exploit-Dokumentation (auf der ein großer Teil dieser Readme basiert) noch nicht reagiert hatte, beschloss ich, die Existenz des Exploits auf harmlose Weise öffentlich zu demonstrieren, in der Hoffnung, die Aufmerksamkeit zu erhöhen, damit er von den Entwicklern behoben wird – und es hat funktioniert.

Inhaltsverzeichnis

  • Zusammenfassung des Exploits (CVE-2022-24126)
  • Verteilungsvektoren (CVE-2022-24125)
  • Die allgemeine Exploitationstaktik für alle Spiele
    • Fehler #1: Keine Grenzüberprüfung im Eintragslisten-Parser
    • Fehler #2: Pufferüberlauf im NRSessionSearchResult-Parser
    • Vorbereitung der ROP-Kette
  • Dark Souls III Proof-of-Concept-Code
    • Ausführen des PoC-Codes
    • Angriffsvektor
    • Virtuelle Aufruf-Umleitungskette
    • Zusätzliche Informationen

Zusammenfassung des Exploits (CVE-2022-24126)

Eine unzureichende Grenzüberprüfung eines Stack-Puffers und des Datenfeldgrößenfelds während der Verarbeitung von NRSessionSearchResult-Matchmaking-Daten erlaubt einem Angreifer die Ausführung beliebigen Codes. Der Stack-Overflow erlaubt es, die unteren zwei Bytes der vftable_ptr des DLMemoryInputStream-Objekts zu überschreiben, das intern vom Stream-Reader verwendet wird, und die Ausführung auf sorgfältig ausgewählten benachbarten Code umzuleiten. Eine clevere Ausnutzung der Struktur des DLMemoryInputStream-Objekts und des Datenfeldgrößenfelds ermöglicht dann eine beliebige Code-Umleitung, wobei RCX auf die Adresse unseres Pakets zeigt. Von dort aus kann eine Reihe von Code-Umleitungen über virtuelle Aufrufe mit unterschiedlichen Offsets (die nun auf die Adressen springen, die wir in den Paketpuffer geschrieben haben) verwendet werden, um die Ausführung beliebigen Codes zu erreichen.

Verteilungsvektoren (CVE-2022-24125)

Die Verteilungsvektoren machen diesen speziellen RCE besonders schwerwiegend (abgesehen davon, dass es sich bereits um einen RCE handelt). Der Exploit wird durch Matchmaking-Push-Anfragen mit NRSessionSearchResult-Informationen übertragen. Das bedeutet, dass der Angreifer jeden angreifen kann, der seiner Online-Sitzung beitritt. Insbesondere für DS3:

  • Beschwörungen (PushRequestSummonSign)
  • Eindringlinge der Dunklen Geister (PushRequestAllowBreakInTarget)
  • Spieler, die über einen Bund beitreten (PushRequestVisit)
  • Arenakämpfer (PushRequestAcceptQuickMatch)

Das ist bereits ziemlich schlimm, aber das wahre Potenzial wird durch die RequestSendMessageToPlayers-Anfrage freigesetzt:

message RequestSendMessageToPlayers { 
    repeated uint32 player_ids = 1; 
    required bytes push_message = 2;
}

Der Host verwendet diese Anfrage, um die Push-Nachricht PushRequestAllowBreakInTarget direkt an Eindringlinge zu senden, damit diese Spawn-Koordinaten erhalten und ihrer P2P-Sitzung beitreten können. Das ist alles. Das ist die einzige Art, wie diese Anfrage vom Spiel verwendet wird.

Dennoch erlaubt sie jedem Client, beliebige Push-Nachrichten an Hunderttausende bestimmter Spieler zu senden.

Ich kann nicht genug betonen, wie gefährlich das ist. Im Grunde kann jeder Spieler den Matchmaking-Server imitieren. Indem der Angreifer diese Anfrage verwendet, um den Exploit über eine PushRequestVisit zu versenden, kann jeder Online-Spieler gezielt angegriffen werden, solange seine Spieler-ID bekannt ist. Der Angreifer kann den Exploit auch sehr schnell an die gesamte Online-Spielerbasis senden, indem er mehrere Anfragen sendet, die jeweils einen großen Teil möglicher Spieler-IDs enthalten.

Die allgemeine Exploitationstaktik für alle Spiele

Während sich der RCE nicht genau auf jedes Spiel übertragen lässt, ist die Kernidee des Exploits, die dem Angreifer eine beliebige Code-Umleitung ermöglicht, dieselbe. Wenn dies erreicht werden kann, ist es sehr wahrscheinlich, dass eine spielspezifische virtuelle Aufrufkette oder ROP-Kette gefunden werden kann. Dieser „erste Schritt“ nutzt die folgenden Schwachstellen:

Footnotes

  1. Für Dark Souls III Ver. 1.15. Die maximale theoretische Payload-Größe hängt vom Stack-Layout ab und variiert daher je nach Spiel und Version. ↩

Tool herunterladen