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
CVE-2025-62215-POC — Proof-of-concept-Exploit für CVE-2025-62215, eine Use-After-Free-Sicherheitslücke im Windows-Kernel in SepTokenSidSharingEnabled. Enthält einen Kernel-Treiber und einen Benutzermodus-Exploit zur Analyse von Race Conditions. | Kitploit
Tools/GitHubGitHub/gowonisgood/cve-2025-62215-poc
SchwachstellenanalyseExploitationCTFLernen & BildungBinary-Exploitation
GitHubgowonisgood/cve-2025-62215-poc

CVE-2025-62215-POC

Proof-of-concept-Exploit für CVE-2025-62215, eine Use-After-Free-Sicherheitslücke im Windows-Kernel in SepTokenSidSharingEnabled. Enthält einen Kernel-Treiber und einen Benutzermodus-Exploit zur Analyse von Race Conditions.

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
101vor 3 MonatenNoch nicht geprüft

CVE-2025-62215 — Windows Token UAF (SepTokenSidSharingEnabled Race Condition)

Dieses Repository dient ausschließlich Bildungs- und Forschungszwecken.

Übersicht

Ein Use-After-Free-Schwachstellen-PoC, der im SepTokenSidSharingEnabled-Optimierungspfad des Windows-Kernels auftritt.

  • Wenn NtDuplicateToken den RefCount des SID-Werte-Blocks von 1→2 erhöht, gibt ein konkurrierender Kernel-Thread den Block über ExFreePoolWithTag frei.
  • Anschließend greift SepDereferenceSidValuesBlock auf den freigegebenen Block zu → UAF / Double Free.
root@kitploit:~
[User]  IOCTL_REPLACE_SID_BLOCK  →  Platzieren eines unabhängigen Blocks (RefCount=1) bei TOKEN+0x468
[User]  IOCTL_TRIGGER_FREE       →  Kernel-Thread starten (pollt bis RefCount==2)
[User]  NtDuplicateToken         →  Erhöht intern RefCount 1→2
[Kernel Thread] RefCount==2 erkannt → ExFreePoolWithTag(pBlock)  ← UAF-Punkt

Dateistruktur

PfadBeschreibung
exploit/exploitWithDriv/exploitWithDriv.cppUser-Mode-Exploit (Konsolen-App)
tokendriv/tokendrv/tokendrv/tokendrv.cppKernel-Treiber (bietet IOCTL-Schnittstelle)

Build-Anleitung (Visual Studio)

Voraussetzungen

  • Visual Studio 2022 (MSVC)
  • Windows Driver Kit (WDK) – erforderlich für den Build von tokendriv
  • SDK 10.0.26100.x oder neuer

1. tokendriv.sys – Kernel-Treiber

  1. Öffnen Sie tokendriv/tokendrv/tokendrv.slnx
  2. Konfiguration: Release / x64
  3. Build → erzeugt tokendriv/tokendrv/x64/Release/tokendrv.sys
  4. Eigenständige Bereitstellung: Nur die .sys-Datei in die VM kopieren

Nach der Installation des WDK prüfen: Projekteigenschaften → Treibereinstellungen → Ziel-OS-Version

2. exploitWithDriv.exe – User-Mode-Exploit

  1. Öffnen Sie exploit/exploitWithDriv.slnx
  2. Konfiguration: Release / x64
  3. Projekteigenschaften → Linker → System → SubSystem: Konsole
  4. Build → erzeugt exploit/x64/Release/exploitWithDriv.exe
  5. Für eigenständige Bereitstellung (kein Visual C++ Redistributable erforderlich):
    • C/C++ → Codegenerierung → Laufzeitbibliothek: Multithreaded (/MT)

Ausführung in der VM

Voraussetzungen

  • VM-RAM: 2 GB oder weniger (erforderlich zur Aktivierung von SepTokenSidSharingEnabled)
  • Testkonto: test / 1234 (lokales Konto, keine Administratorrechte erforderlich)
  • Kernel-Debugging-Verbindung (optional, für die Analyse benötigt)
  • Administrator-cmd

Treiber laden

root@kitploit:~
sc create tokendriv type= kernel binpath= "C:\path\to\tokendrv.sys"
sc start tokendriv

Überprüfen, ob der Treiber läuft:

root@kitploit:~
sc query tokendriv

Status sollte RUNNING sein.

Exploit ausführen

root@kitploit:~
exploitWithDriv.exe

Ablauf:

  1. Überprüfung von FullNumberOfPhysicalPages (muss ≤ 0x83400 sein)
  2. LogonUser("test", ".", "1234") → hSource abrufen
  3. Enter drücken, um die Race-Schleife zu starten (100.000 Iterationen)
  4. Jede Iteration: REPLACE → TRIGGER → NtDuplicateToken → Sleep(1)

Race-Condition-Analyse (WinDbg KD)

1. Zielprozess-Adresse ermitteln

root@kitploit:~
0: kd> !process 0 0 exploitWithDriv.exe

Beispielausgabe:

root@kitploit:~
PROCESS ffffa88f5e61e080
    SessionId: 1  Cid: 1234    Peb: ...  ParentCid: ...
    Image: exploitWithDriv.exe

ffffa88f5e61e080 ist die EPROCESS-Adresse.

2. Haltepunkte setzen

Die folgenden Adressen können je nach Umgebung variieren – mit den tatsächlichen Kernel-Symbolen bestätigen.

A. RefCount-Erhöhung des SID-Blocks (Start des Race-Fensters)

root@kitploit:~
0: kd> bp fffff800`725c6114 ".if (@$proc == 0xffffa88f5e61e080) { .echo A_REFCNT_INCR; dq poi(@rsi+0x468)+8 L1; gc } .else { gc }"
  • Gibt den RefCount (+0x8) des SID-Werte-Blocks bei TOKEN+0x468 aus
  • Der Moment, in dem der Wert von 1 → 2 wechselt, ist das Race-Fenster

B. UAF-Lesepunkt

root@kitploit:~
0: kd> bp fffff800`726f51fb ".if (@$proc == 0xffffa88f5e61e080) { .echo REAL_UAF_READ; r rax,rdx; gc } .else { gc }"
  • Stelle, an der der freigegebene Block gelesen wird
  • rax, rdx-Werte prüfen

C. UAF-Schreibpunkt

root@kitploit:~
0: kd> bp fffff800`726f5208 ".if (@$proc == 0xffffa88f5e61e080) { .echo REAL_UAF_WRITE; r rcx,rdx,rax; gc } .else { gc }"
  • Stelle, an der in den freigegebenen Block geschrieben wird
  • rcx, rdx, rax auf Beschädigung prüfen

3. Race-Timing-Ablauf

root@kitploit:~
NtDuplicateToken Eintritt
    └─ SeTokenCanImpersonate
        └─ SID-Block RefCount: 1 → 2        ← bp A (A_REFCNT_INCR)
                                              ← Kernel-Thread: ExFreePoolWithTag(pBlock)
    └─ SepDereferenceSidValuesBlock
        └─ pBlock dereferenzieren (lesen)    ← bp B (REAL_UAF_READ)
        └─ pBlock dereferenzieren (schreiben) ← bp C (REAL_UAF_WRITE)

4. Analysetipps

  • Wenn der RefCount unmittelbar nach der Ausgabe von A_REFCNT_INCR 2 ist, wurde das Race-Fenster erfolgreich betreten.
  • Wenn REAL_UAF_READ / REAL_UAF_WRITE erscheinen, ist tatsächlicher UAF bestätigt.
  • Mit Pool-Tag 'kcoB' allokierte Blöcke verfolgen: !pool <addr> oder !poolused

Wichtige Offsets (Windows 11 24H2)


Treiber entladen

root@kitploit:~
sc stop tokendriv
sc delete tokendriv
Tool herunterladen
StrukturOffsetFeld
_TOKEN+0x468SepSidValues (Zeiger auf SID-Werte-Block)
SID-Werte-Block+0x000Length (ULONG)
SID-Werte-Block+0x008ReferenceCount (LONGLONG)