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
CVE-2025-7771 — ThrottleStop.sys Arbitrary Physical Memory R/W (Lecture/Écriture arbitraire de mémoire physique) | Kitploit
Outils/GitHubGitHub/enessakircolak/cve-2025-7771
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationÉvasion IDS/IPSTests d'IntrusionRed Teaming
GitHubenessakircolak/cve-2025-7771

CVE-2025-7771

ThrottleStop.sys Arbitrary Physical Memory R/W (Lecture/Écriture arbitraire de mémoire physique)

Voir le dépôt
237il y a 1 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-7771 — Écriture/lecture arbitraire de mémoire physique dans ThrottleStop.sys

Preuve de concept complète pour le pilote ThrottleStop.sys de TechPowerUp (CVE-2025-7771). Un pilote noyau signé, encore chargeable, expose des lectures et écritures de mémoire physique non validées via deux IOCTL. Ce dépôt transforme cette primitive en une élévation de privilèges locale administrateur-vers-SYSTEM fonctionnelle et documente une particularité de nommage de périphérique qui contourne la plupart des détections basées sur les chemins et les noms de fichiers.

Un PoC pour les mêmes IOCTL existait déjà (voir Crédits). Il s'agit ici d'une chaîne d'exploitation complète et indépendante, pas d'une simple démonstration de primitive.

Pilote concerné

ChampValeur
SHA25616F83F056177C4EC24C7E99D01CA9D9D6713BD0497EEEDB777A3FFEFA99C97F0
SHA182ED942A52CDCF120A8919730E00BA37619661A3
MD56BC8E3505D9F51368DDF323ACB6ABC49
Version3.0.0.0 ("Low-Level Driver", 2004-2020)
SignataireTechPowerUp LLC, DigiCert EV Code Signing
Empreinte du certificat524EDA9C819321C66E22C7BABEB23DAEAFFB2182
Validité du certificat2019-08-10 to 2022-06-15

Le certificat a expiré en 2022, mais la signature porte un horodatage de contresignature de confiance, donc Windows le charge toujours. La révocation n'aide que si sa date précède l'heure de signature, ce qui est rarement le cas pour d'anciens pilotes comme celui-ci.

La ressource de version ne contient ni CompanyName, ni OriginalFilename, ni InternalName; le fichier ne peut donc pas être attribué à un éditeur à partir de ses propres métadonnées.

Le bug

Deux IOCTL lisent et écrivent de la mémoire physique sans validation des limites ni de l'adresse :

IOCTLOpération
0x80006498Lecture physique
0x8000649CÉcriture physique

Les deux sont METHOD_BUFFERED, donc il n'y a pas de déréférencement de pointeur utilisateur; le défaut est l'absence de validation de l'adresse physique fournie par l'appelant, pas un pointeur non vérifié.

À noter : le gestionnaire d'écriture 0x8000649C est déclaré FILE_READ_ACCESS. Un handle ouvert en lecture seule peut quand même émettre des écritures physiques, donc le masque d'accès déclaré ne correspond pas à ce que fait réellement le gestionnaire.

Impact

L'ouverture du périphérique nécessite des droits administrateur, ce n'est donc pas en soi un franchissement de frontière de privilèges. Ce que cela donne à un attaquant déjà administrateur, c'est une lecture/écriture arbitraire du noyau depuis le mode utilisateur, ce qui neutralise les protections censées s'appliquer au-dessus d'administrateur : l'intégrité du code HVCI, la PPL et l'auto-protection EDR/AV. Un cas classique de « bring-your-own-vulnerable-driver ».

En guise de démonstration concrète, le PoC utilise la primitive R/W pour voler le jeton SYSTEM et lancer un shell SYSTEM.

CVSS 4.0 : AV:L/AC:H/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H (8,7, Élevé).

Comment fonctionne l'exploit

Tout s'exécute en mode utilisateur via les IOCTL R/W physiques du pilote. Il n'y a pas de parcours de tables de pages ni de CR3; les deux processus sont localisés en scannant directement la mémoire physique :

  1. Localiser SYSTEM. Scanner la mémoire physique pour trouver un EPROCESS dont ImageFileName vaut System et UniqueProcessId vaut 4. Le scan est limité aux plages de RAM peuplées lues depuis la clé de registre HARDWARE\RESOURCEMAP\...\Physical Memory du firmware, pas une fenêtre devinée; les trous MMIO ne sont donc jamais touchés et rien au-dessus de la RAM installée n'est manqué.
  2. Lire le jeton SYSTEM. Lire le champ Token (EPROC_TOKEN) depuis l'EPROCESS localisé.
  3. Localiser notre processus. Scanner la mémoire physique de la même façon pour l'EPROCESS du PoC, en faisant correspondre le nom d'image comme un motif de 8 octets et en confirmant avec son PID.
  4. Échanger le jeton. Écrire la valeur du jeton SYSTEM dans notre propre champ Token. Le jeton est un _EX_FAST_REF, donc les bits de comptage de références de poids faible sont masqués par défaut (--mask sélectionne le comportement).
  5. Le prouver. Lancer cmd.exe; whoami renvoie .

Les offsets (EPROC_TOKEN, EPROC_PID, EPROC_IMG_NAME, etc.) correspondent à un build spécifique et doivent être vérifiés avec dt nt!_EPROCESS sur la version Windows cible.

Le nom de l'exécutable compte. L'étape 3 localise notre propre processus en faisant correspondre son ImageFileName en mémoire physique, et ce champ est plafonné à 15 caractères, le scan ne faisant correspondre que les 8 premiers. Gardez un nom compilé court et distinctif; si vous renommez le binaire, restez dans cette limite ou l'auto-scan ne trouvera pas le processus.

Le nom du périphérique est contrôlable par l'attaquant

Le pilote n'utilise pas de nom de périphérique fixe. Il dérive le nom de l'objet périphérique du nom du service sous lequel il est enregistré; le nom du fichier sur disque est sans importance. Enregistrer le binaire sous le service TRIXX produit \\.\TRIXX, quel que soit le nom du fichier sur disque.

Ainsi, toute détection basée sur \Device\ThrottleStop ou ThrottleStop.sys est trivialement contournée. La détection doit se baser sur l'empreinte du fichier ou sur le certificat de signature :

root@kitploit:~
SHA256:     16F83F056177C4EC24C7E99D01CA9D9D6713BD0497EEEDB777A3FFEFA99C97F0
Thumbprint: 524EDA9C819321C66E22C7BABEB23DAEAFFB2182
Subject:    CN=TechPowerUp LLC, O=TechPowerUp LLC, L=Spokane, S=Washington, C=US

La liste DEVICE_NAMES dans le source n'est qu'une sonde pour les installations connues du produit. Passez un nom de périphérique en argument pour cibler un service que vous avez enregistré vous-même.

Pilotes TechPowerUp associés

CVEPilote
CVE-2019-7245GPU-Z.sys
CVE-2025-5324GPU-Z.sys
CVE-2025-7771ThrottleStop.sys (ce dépôt)

Le pilote n'est pas inclus

Le binaire n'est pas fourni ici. Vérifiez toute copie par rapport au SHA256 ci-dessus. L'échantillon est répertorié dans LOLDrivers.

Compilation

root@kitploit:~
cl /nologo /EHsc /W4 /O2 src\ThrottleStop.cpp /Fe:myLittleLpe.exe /link advapi32.lib

Utilisation

Usage en laboratoire uniquement. Exécutez dans une VM isolée avec un instantané pour pouvoir revenir en arrière.

root@kitploit:~
sc.exe create <name> type= kernel binPath= C:\path\to\ThrottleStop.sys
sc.exe start <name>

myLittleLpe.exe

sc.exe stop <name>
sc.exe delete <name>

Le binaire ne prend aucun argument. Il affiche la carte de la mémoire physique, recherche le SYSTEM et l'EPROCESS local, échange le jeton et lance cmd.exe avec les droits NT AUTHORITY\SYSTEM.

Démo

Exécution de myLittleLpe.exe montrant la carte de la mémoire physique, le scan EPROCESS, l'échange de jeton et un shell SYSTEM

Autres PoC et travaux antérieurs

Autres travaux publics sur le même pilote, pour comparaison :

  • Demoo1337/ThrottleStop — PoC antérieur pour les mêmes IOCTL
  • xM0kht4r/CVE-2025-7771 — R/W physique plus VA-vers-PA via Superfetch
  • AmrHuss/throttlestop-exploit-rw — R/W physique avec traduction d'adresses via Superfetch
  • v31l0x1/ThrottleStopPPL — contournement de la protection PPL
  • Yuri08loveElaina/CVE-2025-7771 — une autre implémentation

Crédits

  • LOLDrivers — catalogue des pilotes vulnérables

Avertissement

Publié à des fins de recherche défensive et d'ingénierie de détection. La vulnérabilité est déjà publique sous le nom CVE-2025-7771. Tout ceci a été testé sur des systèmes appartenant à l'auteur. N'exécutez pas ceci contre des systèmes qui ne vous appartiennent pas ou que vous n'êtes pas autorisé à tester.

Télécharger l’outil
NT AUTHORITY\SYSTEM