Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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
HVCIPwned — CVE-2024-35250 démontre que HVCI n'est pas une défense contre les exploits de noyau uniquement basés sur les données. Tant qu'un bug de pilote fournit une primitive R/W arbitraire, le token swap reste une technique universelle d'élévation SYSTEM — aucune exécution de code requise. | Kitploit
Outils/GitHubGitHub/xvalegendary/hvcipwned
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationTests d'IntrusionApprentissage et ÉducationExploitation de Binaires
GitHubxvalegendary/hvcipwned

HVCIPwned

Voir le dépôt
82il y a 5 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 →

À propos

CVE-2024-35250 démontre que HVCI n'est pas une défense contre les exploits de noyau uniquement basés sur les données. Tant qu'un bug de pilote fournit une primitive R/W arbitraire, le token swap reste une technique universelle d'élévation SYSTEM — aucune exécution de code requise.

Partager

CVE-2024-35250

Élévation de privilèges locale via déréférencement de pointeur non fiable dans le pilote Kernel Streaming de Windows (ks.sys). Exploitation exclusivement par données — contourne l’intégrité du code protégée par l’hyperviseur (HVCI).

Résumé

ChampDétail
CVECVE-2024-35250
Composantks.sys (Kernel Streaming)
Classe de bugDéréférencement de pointeur non fiable
ImpactÉlévation vers NT AUTHORITY\SYSTEM
HVCIContourné — pas d’exécution de code dans le noyau
CorrectifKB5039212 (Juin 2024)
CiblesWindows 10 20H1+ / Windows 11 21H2-23H2

Vulnérabilité

ks!KspPropertyHandler répartit les requêtes de propriété de niveau topologie via KspProcessPropertyNode. Le champ NodeId de la structure KSP_NODE fournie par l’utilisateur est utilisé comme indice dans un tableau interne de tables d’automatisation sans validation des limites :

root@kitploit:~
NtDeviceIoControlFile
  ks!CKSFilter::DispatchDeviceIoControl
    ks!KspPropertyHandler
      ks!KspProcessPropertyNode
        *(automationTable + NodeId * stride)   <-- contrôlé par l’attaquant

Un NodeId forgé dépassant le nombre réel de nœuds redirige le déréférencement vers la mémoire adjacente du pool, offrant une primitive de lecture/écriture hors limites.

Contournement HVCI

L’exploitation manipule exclusivement les structures de données du noyau :

  1. Fuite de l’adresse EPROCESS via NtQuerySystemInformation
  2. Déclenchement de la vulnérabilité pour établir une R/W noyau arbitraire
  3. Parcours de ActiveProcessLinks pour localiser le PID 4 (System)
  4. Écrasement du jeton du processus courant par celui de System
  5. Lancement d’un shell élevé

Aucun shellcode n’est injecté. Aucune page de code non signée n’est créée ou exécutée. Aucun pointeur de flux de contrôle n’est détourné.

ProtectionStatut
HVCI / KMCIContourné
SMEPNon déclenché
SMAPNon déclenché
kCFGNon déclenché

Construction

Prérequis

  • Visual Studio 2019 / 2022
  • Windows SDK 10.0.19041.0+

Compilation

  1. Ouvrir hvcipwned.sln dans Visual Studio
  2. Sélectionner Release | x64
  3. Générer → Générer la solution (Ctrl+Shift+B)

Binaire produit : x64\Release\hvcipwned.exe

Compilation manuelle avec cl.exe

root@kitploit:~
cl.exe /nologo /W4 /O2 /TC ^
    main.c device.c leak.c krw.c token.c exploit.c ^
    /I ^
    /Fe:exploit.exe ^
    /link setupapi.lib kernel32.lib advapi32.lib

Utilisation

root@kitploit:~
hvcipwned.exe

Exécuter depuis une session utilisateur non privilégiée sur un système vulnérable (non corrigé). En cas de succès, une nouvelle fenêtre cmd.exe s’ouvre avec les droits NT AUTHORITY\SYSTEM.

Sortie attendue

root@kitploit:~
[+] cve-2024-35250 exploit
[+] ks.sys untrusted pointer dereference -> eop
[~] hvci bypass via data-only attack
[+] os: 10.0.19045
[+] offsets: pid=0x440 links=0x448 token=0x4b8
[+] device: \\?\hdaudio#func_01&ven_10ec...
[+] device handle: 0x00000000000000f4
[~] calibrating r/w primitive...
[+] kernel base: 0xfffff80140000000
[~] spraying named pipes for pool layout...
[+] sprayed 5000 pipe pairs
[~] poking hole at index 2500...
[~] scanning for kernel pointer via oob read...
[+] found kernel ptr at node 3 offset 2: 0xffffa70500000000
[+] pipe object kernel addr: 0xffffa70500000000
[+] r/w primitive initialized (mode 1)
[+] current eprocess: 0xffffa705d90f4080
[+] kernel read pid: 1234 (expected: 1234)
[+] system eprocess: 0xffffa70500004080
[+] system token: 0xffffa70512345673
[+] token after swap: 0xffffa70512345670
[+] token swap successful
[+] escalation complete
[+] elevated shell spawned (pid: 5678)

press enter to exit...

Structure du projet

root@kitploit:~
hvcipwned/
├── hvcipwned.sln
├── hvcipwned.vcxproj
├── hvcipwned.vcxproj.filters
├── README.md
├── LICENSE
├── .gitignore
├── common.h         - types, macros de log, typedefs d'API NT
├── offsets.h        - offsets de champs eprocess par build
├── device.h         - énumération de périphériques ks
├── leak.h           - fuites d'adresses noyau
├── krw.h            - contexte de primitive r/w
├── token.h          - échange de token + lancement de shell
└── exploit.h        - point d'entrée principal
├── main.c           - point d'entrée
├── device.c         - ouverture de périphérique setupapi
├── leak.c           - fuites via NtQuerySystemInformation
├── krw.c            - déclenchement de vulnérabilité + pool spray + r/w
├── token.c          - parcours eprocess + écrasement de token
└── exploit.c        - orchestration

Builds prises en charge

Les offsets sont résolus automatiquement à l’exécution via RtlGetVersion.

Remarques

  • Nécessite un périphérique filtre KS avec des nœuds de topologie (les périphériques audio fonctionnent)
  • Le succès du pool spray dépend de la pression mémoire système et du timing
  • L’exploitation utilise les attributs de pipe nommé pour le feng shui du pool
  • Exécuter en tant qu’utilisateur normal (non administrateur) pour démontrer l’élévation de privilèges
  • Plusieurs tentatives peuvent être nécessaires en raison de la randomisation de la disposition du pool

Atténuation

Références

  • Microsoft Advisory
  • KB5039212 Patch Notes
  • DEVCORE — Pwn2Own Vancouver 2024
  • varwara/CVE-2024-35250

Avertissement

Ce projet est fourni à des fins de recherche en sécurité autorisée et éducatives uniquement. Ne pas utiliser contre des systèmes sans autorisation écrite explicite. L’auteur décline toute responsabilité en cas d’utilisation abusive ou de dommages causés par ce logiciel.

Licence

MIT

Télécharger l’outil
CET / Shadow StackNon déclenché
OSBuildStatut
Windows 10 20H119041Pris en charge
Windows 10 20H219042Pris en charge
Windows 10 21H119043Pris en charge
Windows 10 21H219044Pris en charge
Windows 10 22H219045Pris en charge
Windows 11 21H222000Pris en charge
Windows 11 22H222621Pris en charge
Windows 11 23H222631Pris en charge
ActionDétail
CorrectifInstaller KB5039212 (Juin 2024) ou ultérieur
DétectionSurveiller IOCTL_KS_PROPERTY avec le drapeau KSPROPERTY_TYPE_TOPOLOGY
EDRAlerter sur les changements d’intégrité de jeton via les rappels noyau EtwTi
RenforcementRestreindre l’accès utilisateur aux interfaces de périphérique KS via DACL