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
CVE-2026-97798-exploit — CVE-2026-97798 Windows Error Reporting – Befehlsinjektion zu SYSTEM | Kitploit
Tools/GitHubGitHub/g4sp4rcs/cve-2026-97798-exploit
Privilege EscalationSchwachstellenanalyseExploitationPost-ExploitationRed TeamingPayload-Entwicklung
GitHubg4sp4rcs/cve-2026-97798-exploit

CVE-2026-97798-exploit

CVE-2026-97798 Windows Error Reporting – Befehlsinjektion zu SYSTEM

Repository anzeigen
425vor 7 TagenVon 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

CVE-2026-97798 — Argumentinjektion im Windows-Fehlerbericht zu SYSTEM

[!WARNING] Dieses Repository dient der autorisierten Schwachstellenforschung und der Validierung in kontrollierten Laboren. Der Proof of Concept schlägt sicher fehl, wenn er nicht genau eine kompatible faultrep.dll!SpawnDataCollector-Implementierung identifizieren kann.

CVE-2026-97798 ist eine lokale Privilegienerweiterungsschwachstelle im Time Travel Debugging-Pfad des Windows-Fehlerberichts (WER). Ein nicht privilegierter Aufrufer kann eine vom Angreifer kontrollierte Befehlszeilensyntax über die WER-Privilegiengrenze hinweg erhalten. Der erhöhte Collector verkettet diese Eingabe später zu einer TTTracer.exe-Befehlszeile, ohne Argumentgrenzen zu wahren. Injizierte -out- und -launch-Schalter werden daher vom TTD-Recorder als Recorder-Optionen interpretiert, wodurch eine vom Angreifer ausgewählte ausführbare Datei mit dem erhöhten Token des Collectors gestartet werden kann.

Der enthaltene Single-File-PoC verwandelt dieses Primitiv in eine interaktive NT AUTHORITY\SYSTEM-Shell. Er wurde sowohl aus einem Standardbenutzerkonto als auch aus einem mittelintegren, UAC-gefilterten Administratorkonto validiert.

Interaktive SYSTEM-Shell

Video

Repository-Inhalt

PfadBeschreibung
src/CVE-2026-97798.cppVollständiger Single-Image-Exploit-Quellcode
bin/CVE-2026-97798.exeReproduzierbarer x64-Labor-Build
build.ps1Deterministisches LLVM-MinGW-Build-Skript
assets/system-shell.pngErfasster whoami-Nachweis aus der isolierten VM

Es sind noch keine Bericht-PDFs enthalten; das ausführliche Paper wird derzeit noch überarbeitet.

Ursache

Der anfällige Ablauf durchläuft mehrere Komponenten:

low/medium-integrity process
  -> faultrep.dll!CElevatedDataCollection::ControlTimeTravelDebugging
  -> faultrep.dll!SpawnDataCollector
  -> Windows Error Reporting service (elevated collector)
  -> CDataCollection::ControlTimeTravelDebugging
  -> TtdControl::LaunchRecordingProcess
  -> TTTracer.exe / TTDRecord.dll command-line parser
  -> attacker-controlled -launch target

Die Anfrage enthält einen Process-Wert, der mit einer legitimen ausführbaren Datei beginnt, aber zusätzliche TTD-Schalter anhängt. Die verwundbare Implementierung wendet eine schwache Blockliste mit exakten Namen an und formatiert die Prozesszeichenfolge später direkt in die privilegierte Recorder-Kommandozeile. Da der Prozesswert nicht als ein Argument serialisiert wird, werden seine Leerzeichen zu Argumenttrennzeichen, wenn TTTracer das Ergebnis parst.

Konzeptionell lautet der injizierte Teil:

Process=CVE-2026-97798-payload.exe
  -out ..\..\Users\Public\Documents\CVE97798\trace
  -launch ..\..\Users\Public\Documents\CVE97798\CVE-2026-97798-payload.exe
  --payload;

Die relativen Pfade sind bewusst gewählt. WER übernimmt diese Daten ebenfalls in einen .ttdconfig-Pfadnamen; ein absolutes Laufwerkspräfix führt einen Doppelpunkt ein und schlägt mit ERROR_INVALID_NAME fehl. Der Traversal-artige Pfad vermeidet diesen Parser-Konflikt, während er auf das kontrollierte öffentliche Verzeichnis normalisiert wird.

Dies ist ein Argument-Injection-Problem (CWE-88), keine herkömmliche Shell-Command- Injection. Am verwundbaren Sink ist kein cmd.exe /c erforderlich: TTTracer selbst interpretiert die injizierten Switches.

Single-File-PoC-Design

Die normale Nutzung erfordert nur CVE-2026-97798.exe. Dasselbe PE-Image ruft sich selbst in mehreren internen Modi erneut auf:

  1. Es parst die geladene PE64-Exception-Tabelle und löst faultrep.dll!SpawnDataCollector dynamisch aus der eindeutigen Funktion auf, die den WER-Collector-Opcode und die Protokoll-Invarianten enthält. Es ist keine build-spezifische RVA eingebettet.
  2. Es startet seinen integrierten Konsolen-Client und erstellt seinen Proof-Zustand.
  3. Es ruft den erhöhten WER-Collector ab und übermittelt die präparierte TTD-Anfrage.
  4. TTTracer startet dasselbe Image im Payload-Modus.
  5. Die Payload stellt über Named Pipes eine echte cmd.exe bereit, sodass eine sichtbare Konsolen-Sitzung des Benutzers mit einer in Sitzung 0 erstellten Shell interagieren kann.

Das verteilte Artefakt bleibt eine einzige EXE. Zur Laufzeit legt es zwei Aliase desselben Images an: einen für die integrierte Konsole und einen für die erhöhte Payload. Der Payload-Alias wird auch als -onlaunch-Ziel von TTTracer verwendet, sodass der Recorder den Prozess beobachtet, den er tatsächlich startet, und beendet wird, wenn diese kurze Payload-Phase endet. Das PoC setzt veralteten TTD-Zustand vor jedem Auslösen und erneut nach einer erfolgreichen Payload zurück, wodurch verhindert wird, dass ein unterbrochener Lauf die nächste Ausführung mit HRESULT 0x80070032 fehlschlagen lässt.

Für einen Standardbenutzer erreicht der erhöhte Collector-Pfad direkt SYSTEM. Bei einem UAC-gefilterten Administrator startet WER die Payload zunächst mit dem verknüpften hohen Administrator-Token – der Kontoname bleibt unverändert, aber TokenIsElevated=true. Das PoC ruft dann dasselbe Image als SYSTEM erneut auf. Es versucht zuerst die direkte Prozesserstellung mit SYSTEM-Token und verwendet als Fallback einen kurzlebigen Task-Scheduler-Eintrag; die Fallback-Aufgabe wird unmittelbar nach dem Start gelöscht.

Validiertes Umfeld

KomponenteValidierter Wert
OSWindows 11 24H2 x64, Build 26100.9550
Verwundbare faultrep.dll10.0.26100.9549
Behobene Vergleichsversionfaultrep.dll 10.0.26100.9711
TTTracer / TTDRecord1.11.580.0
Dynamische Resolver-Prüfung9549: RVA 0x4CEB0; 9711: RVA 0x4E40C
PoC SHA-256C7B8FAFB132D69E9BD5A398AE183107155129C7080A87D56EFE55572450B4147

Der Resolver durchläuft die x64-Exception-Tabelle und erfordert eine Funktion mit dem Large-Frame-Setup des Collectors, dem Request-Opcode 0xD0000002, der Nachrichtengröße 0x578, dem Warte-Timeout 10000 und seinen drei erwarteten Wait/Service-Fehler- Zuordnungen. Er wurde gegen beide bereitgestellten faultrep.dll-Builds geprüft und negativ gegen unabhängige PE-Images getestet. Es wird keine Build-Nummer und keine RVA gespeichert. Wenn ein zukünftiger Build diese Implementierung so weit ändert, dass die Übereinstimmung mehrdeutig oder unvollständig wird, stoppt das PoC, bevor es einen indirekten Aufruf ausführt.

Verwendung

Verwenden Sie einen Wegwerf-Snapshot des verwundbaren Builds. Aus einer nicht erhöhten PowerShell oder Eingabeaufforderung:

.\bin\CVE-2026-97798.exe

Bei Erfolg gibt die integrierte Konsole Folgendes aus:

[CVE-2026-97798] Exploit shell token:
nt authority\system

Der maschinenlesbare Nachweis ist darunter geschrieben:

C:\Users\Public\Documents\CVE97798\system-proof.txt

Der Resolver kann auch gegen eine Offline-x64-DLL getestet werden, ohne die Schwachstelle auszulösen:

.\bin\CVE-2026-97798.exe --resolve C:\path\to\faultrep.dll

Um die installierte System-DLL vorab zu prüfen, ebenfalls ohne den verwundbaren Pfad auszulösen:

.\bin\CVE-2026-97798.exe --preflight

Eine erfolgreiche Validierung des gefilterten Administrators ergab:

cve=CVE-2026-97798
user=NT AUTHORITY\SYSTEM
is_system=true
is_elevated=true
payload_session=0
shell_session=0
spawn_error=0

Erstellen

Installiere eine x64-LLVM-MinGW-Toolchain und lege x86_64-w64-mingw32-clang++.exe in PATH ab, oder gib ihren absoluten Pfad explizit an:

.\build.ps1

# or
.\build.ps1 -Compiler C:\toolchains\llvm-mingw\bin\x86_64-w64-mingw32-clang++.exe
Tool herunterladen