Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2025-62215-POC — Exploit de preuve de concept pour CVE-2025-62215, une vulnérabilité Use-After-Free du noyau Windows dans SepTokenSidSharingEnabled. Inclut un pilote noyau et un exploit en mode utilisateur pour l'analyse de conditions de concurrence. | Kitploit
Outils/GitHubGitHub/gowonisgood/cve-2025-62215-poc
Analyse des VulnérabilitésExploitationCTFApprentissage et ÉducationExploitation de Binaires
GitHubgowonisgood/cve-2025-62215-poc

CVE-2025-62215-POC

Exploit de preuve de concept pour CVE-2025-62215, une vulnérabilité Use-After-Free du noyau Windows dans SepTokenSidSharingEnabled. Inclut un pilote noyau et un exploit en mode utilisateur pour l'analyse de conditions de concurrence.

Voir le dépôt
10121il y a 4 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

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

Ce dépôt est uniquement à des fins éducatives et de recherche.

Présentation

Une preuve de concept de vulnérabilité Use-After-Free qui se produit dans le chemin d'optimisation SepTokenSidSharingEnabled du noyau Windows.

  • Lorsque NtDuplicateToken incrémente le RefCount du bloc de valeurs SID de 1→2, un thread noyau concurrent libère le bloc via ExFreePoolWithTag.
  • Ensuite, SepDereferenceSidValuesBlock accède au bloc libéré → UAF / Double Free.
[User]  IOCTL_REPLACE_SID_BLOCK  →  Placer un bloc indépendant (RefCount=1) à TOKEN+0x468
[User]  IOCTL_TRIGGER_FREE       →  Lancer un thread noyau (polling jusqu'à RefCount==2)
[User]  NtDuplicateToken         →  Incrémente en interne RefCount 1→2
[Kernel Thread] RefCount==2 détecté → ExFreePoolWithTag(pBlock)  ← Point UAF

Structure des fichiers

CheminDescription
exploit/exploitWithDriv/exploitWithDriv.cppExploit en mode utilisateur (application console)
tokendriv/tokendrv/tokendrv/tokendrv.cppPilote noyau (fournit une interface IOCTL)

Instructions de compilation (Visual Studio)

Prérequis

  • Visual Studio 2022 (MSVC)
  • Windows Driver Kit (WDK) — requis pour la compilation de tokendriv
  • SDK 10.0.26100.x ou ultérieur

1. tokendriv.sys — Pilote noyau

  1. Ouvrir tokendriv/tokendrv/tokendrv.slnx
  2. Configuration : Release / x64
  3. Générer → produit tokendriv/tokendrv/x64/Release/tokendriv.sys
  4. Déploiement autonome : copier uniquement le fichier .sys dans la VM

Après installation du WDK, vérifier : Propriétés du projet → Paramètres du pilote → Version du système d'exploitation cible

2. exploitWithDriv.exe — Exploit en mode utilisateur

  1. Ouvrir exploit/exploitWithDriv.slnx
  2. Configuration : Release / x64
  3. Propriétés du projet → Éditeur de liens → Système → Sous-système : Console
  4. Générer → produit exploit/x64/Release/exploitWithDriv.exe
  5. Pour un déploiement autonome (sans besoin de Visual C++ Redistributable) :
    • C/C++ → Génération de code → Bibliothèque runtime : Multithread (/MT)

Exécution dans la VM

Prérequis

  • RAM de la VM : 2 Go ou moins (nécessaire pour activer SepTokenSidSharingEnabled)
  • Compte de test : test / 1234 (compte local, aucun droit administrateur requis)
  • Connexion de débogage du noyau (optionnelle, nécessaire pour l'analyse)
  • cmd administrateur

Charger le pilote

sc create tokendriv type= kernel binpath= "C:\chemin\vers\tokendrv.sys"
sc start tokendriv

Vérifier que le pilote est en cours d'exécution :

sc query tokendriv

Le statut doit être RUNNING.

Exécuter l'exploit

exploitWithDriv.exe

Déroulement de l'exécution :

  1. Vérifier FullNumberOfPhysicalPages (doit être ≤ 0x83400)
  2. LogonUser("test", ".", "1234") → acquérir hSource
  3. Appuyer sur Entrée pour démarrer la boucle de course (100 000 itérations)
  4. Chaque itération : REPLACE → TRIGGER → NtDuplicateToken → Sleep(1)

Analyse de la condition de course (WinDbg KD)

1. Obtenir l'adresse du processus cible

0: kd> !process 0 0 exploitWithDriv.exe

Exemple de sortie :

PROCESS ffffa88f5e61e080
    SessionId: 1  Cid: 1234    Peb: ...  ParentCid: ...
    Image: exploitWithDriv.exe

ffffa88f5e61e080 est l'adresse EPROCESS.

2. Définir des points d'arrêt

Les adresses ci-dessous peuvent varier selon l'environnement — confirmer avec les symboles du noyau réels.

A. Incrémentation du RefCount du bloc SID (début de la fenêtre de course)

0: kd> bp fffff800`725c6114 ".if (@$proc == 0xffffa88f5e61e080) { .echo A_REFCNT_INCR; dq poi(@rsi+0x468)+8 L1; gc } .else { gc }"
  • Affiche le RefCount (+0x8) du bloc de valeurs SID à TOKEN+0x468
  • Le moment où la valeur passe de 1 → 2 est la fenêtre de course

B. Point de lecture UAF

0: kd> bp fffff800`726f51fb ".if (@$proc == 0xffffa88f5e61e080) { .echo REAL_UAF_READ; r rax,rdx; gc } .else { gc }"
  • Point où le bloc libéré est lu
  • Vérifier les valeurs rax, rdx

C. Point d'écriture UAF

0: kd> bp fffff800`726f5208 ".if (@$proc == 0xffffa88f5e61e080) { .echo REAL_UAF_WRITE; r rcx,rdx,rax; gc } .else { gc }"
  • Point où le bloc libéré est écrit
  • Vérifier les valeurs rcx, rdx, rax pour corruption

3. Flux temporel de la course

Entrée NtDuplicateToken
    └─ SeTokenCanImpersonate
        └─ RefCount du bloc SID : 1 → 2        ← bp A (A_REFCNT_INCR)
                                                  ← thread noyau : ExFreePoolWithTag(pBlock)
    └─ SepDereferenceSidValuesBlock
        └─ déréférencement pBlock (lecture)      ← bp B (REAL_UAF_READ)
        └─ déréférencement pBlock (écriture)     ← bp C (REAL_UAF_WRITE)

4. Conseils d'analyse

  • Si RefCount est 2 immédiatement après l'affichage de A_REFCNT_INCR, la fenêtre de course a été entrée avec succès
  • Si REAL_UAF_READ / REAL_UAF_WRITE apparaissent, la UAF réelle est confirmée
  • Suivre les blocs alloués avec le tag de pool 'kcoB' : !pool <addr> ou !poolused

Décalages clés (Windows 11 24H2)

StructureDécalageChamp
_TOKEN+0x468SepSidValues (pointeur du bloc de valeurs SID)
Bloc de valeurs SID+0x000Length (ULONG)
Bloc de valeurs SID+0x008ReferenceCount (LONGLONG)

Décharger le pilote

sc stop tokendriv
sc delete tokendriv


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

Présentation

Preuve de concept de vulnérabilité Use-After-Free se produisant dans le chemin d'optimisation SepTokenSidSharingEnabled du noyau Windows.

  • Au moment où NtDuplicateToken incrémente le RefCount du bloc de valeurs SID de 1→2, un thread noyau concurrent libère ce bloc via ExFreePoolWithTag.
  • Ensuite, SepDereferenceSidValuesBlock accède à nouveau au bloc libéré → UAF / Double Free.
[User]  IOCTL_REPLACE_SID_BLOCK  →  Placer un bloc indépendant (RefCount=1) à TOKEN+0x468
[User]  IOCTL_TRIGGER_FREE       →  Lancer un thread noyau (attente polling RefCount==2)
[User]  NtDuplicateToken         →  Incrémente en interne RefCount 1→2
[Kernel Thread] RefCount==2 détecté → ExFreePoolWithTag(pBlock)  ← Point UAF

Fichiers de configuration

CheminDescription
exploit/exploitWithDriv/exploitWithDriv.cppExploit en mode utilisateur (application console)
tokendriv/tokendrv/tokendrv/tokendrv.cppPilote noyau (fournit une interface IOCTL)

Méthode de compilation (Visual Studio)

Prérequis communs

  • Visual Studio 2022 (MSVC)
  • Windows Driver Kit (WDK) — nécessaire pour la compilation de tokendriv
  • SDK 10.0.26100.x ou ultérieur

1. tokendriv.sys — Pilote noyau

  1. Ouvrir tokendriv/tokendrv/tokendrv.slnx
  2. Configuration : Release / x64
  3. Générer → produit tokendriv/tokendrv/x64/Release/tokendrv.sys
  4. Déploiement autonome : copier uniquement le fichier .sys dans la VM

Après installation du WDK, vérifier dans Propriétés du projet → Paramètres du pilote → Version du système d'exploitation cible

2. exploitWithDriv.exe — Exploit en mode utilisateur

  1. Ouvrir exploit/exploitWithDriv.slnx
  2. Configuration : Release / x64
  3. Propriétés du projet → Éditeur de liens → Système → Sous-système : Console
  4. Générer → produit exploit/x64/Release/exploitWithDriv.exe
  5. Pour un déploiement autonome (sans Visual C++ Redistributable)
    • C/C++ → Génération de code → Bibliothèque runtime : Multithread (/MT)

Exécution dans la VM

Prérequis

Télécharger l’outil