
Chemins d'exploitation vous permettant d'(ab)user des privilèges Windows pour élever vos droits au sein du système d'exploitation.
L'idée est de « traduire » les privilèges du système d'exploitation Windows en un chemin menant à :
Les privilèges sont listés et expliqués sur : https://learn.microsoft.com/en-us/windows/win32/secauthz/privilege-constants
Si l'objectif peut être atteint de plusieurs manières, la priorité est
Vous pouvez vérifier vos propres privilèges avec whoami /priv. Les privilèges désactivés sont aussi bons que les activés. La seule chose importante est de savoir si vous avez le privilège dans la liste ou non.
Note 1 : Chaque fois que le chemin d'attaque se termine par une création de jeton, vous pouvez supposer que l'étape suivante consiste à créer un nouveau processus en utilisant ce jeton, puis à prendre le contrôle du système d'exploitation.
Note 2 :
a. Pour appeler directement NtQuerySystemInformation()/ZwQuerySystemInformation(), vous trouverez les privilèges requis ici.
b. Pour NtSetSystemInformation()/ZwSetSystemInformation(), les privilèges requis sont listés ici.
Note 3 : Je me concentre uniquement sur le système d'exploitation. Si un privilège fonctionne dans l'AD mais pas dans l'OS lui-même, je le décris comme non utilisé dans l'OS. Il serait bien que quelqu'un creuse davantage dans les scénarios orientés AD.
N'hésitez pas à contribuer et/ou à discuter des idées présentées.
| Privilège | Impact | Outil | Chemin d'exécution | Remarques |
|---|---|---|---|---|
SeAssignPrimaryToken | Admin | Outil tiers | « Cela permettrait à un utilisateur d'usurper des jetons et d'élever ses privilèges vers NT SYSTEM en utilisant des outils tels que potato.exe, rottenpotato.exe et juicypotato.exe » | Merci à Aurélien Chalot pour la mise à jour. Je vais essayer de reformuler cela en quelque chose de plus proche d'une recette bientôt. |
SeAudit | Menace | Outil tiers | Écrire des événements dans le journal des événements de sécurité pour tromper l'audit ou pour écraser d'anciens événements. | L'écriture de ses propres événements est possible avec l'API Authz Report Security Event.- voir le PoC](https://github.com/daem0nc0re/PrivFu/tree/main/PrivilegedOperations/SeAuditPrivilegePoC) par @daem0nc0re |
SeBackup | Admin | Outil tiers | 1. Sauvegarder les ruches de registre HKLM\SAM et HKLM\SYSTEM 2. Extraire les hachages des comptes locaux de la base de données SAM 3. Pass-the-Hash en tant que membre du groupe local Administrateurs Alternative : peut être utilisé pour lire des fichiers sensibles. | Pour plus d'informations, reportez-vous au fichier SeBackupPrivilege. - voir le PoC](https://github.com/daem0nc0re/PrivFu/tree/main/PrivilegedOperations/SeBackupPrivilegePoC) par @daem0nc0re |
SeChangeNotify | Aucun | - | - | Privilège détenu par tout le monde. Le révoquer peut rendre l'OS (Windows Server 2019) non démarrable. |
SeCreateGlobal | ? | ? | ? | |
SeCreatePagefile | Aucun | Commandes intégrées | Créer hiberfil.sys, le lire hors ligne, rechercher des données sensibles. | Nécessite un accès hors ligne, ce qui conduit de toute façon à des droits admin. - Voir le PoC par @daem0nc0re |
SeCreatePermanent | ? | ? | ? | |
SeCreateSymbolicLink | ? | ? | ? | |
SeCreateToken | Admin | Outil tiers | Créer n'importe quel jeton, y compris les droits admin locaux, avec NtCreateToken.- voir le PoC par @daem0nc0re | |
SeDebug | Admin | PowerShell | Dupliquer le jeton de lsass.exe. | Script disponible sur FuzzySecurity. - Voir le PoC par @daem0nc0re |
SeDelegateSession-UserImpersonate | ? | ? | ? | Nom du privilège coupé pour réduire la largeur de la colonne. |
SeEnableDelegation | Aucun | - | - | Le privilège n'est pas utilisé dans le système d'exploitation Windows. |
SeImpersonate | Admin | Outil tiers | Outils de la famille Potato (potato.exe, RottenPotato, RottenPotatoNG, Juicy Potato, SweetPotato, RemotePotato0), RogueWinRM, PrintSpoofer, etc. | Comme SeAssignPrimaryToken, permet par conception de créer un processus dans le contexte de sécurité d'un autre utilisateur (en utilisant un handle vers un jeton de cet utilisateur). De nombreux outils et techniques peuvent être utilisés pour obtenir le jeton requis. |
SeIncreaseBasePriority | Disponibilité | Commandes intégrées | start /realtime SomeCpuIntensiveApp.exe | Peut être plus intéressant sur les serveurs. |
SeIncreaseQuota | Disponibilité | Outil tiers | Modifier les limites de CPU, mémoire et cache à des valeurs rendant l'OS non démarrable. | - Les quotas ne sont pas vérifiés en mode sans échec, ce qui rend la réparation relativement facile. - Le même privilège est utilisé pour gérer les quotas de registre. |
SeIncreaseWorkingSet | Aucun | - | - | Privilège détenu par tout le monde. Vérifié lors de l'appel des fonctions de réglage fin de la gestion de la mémoire. |
SeLoadDriver | Admin | Outil tiers | 1. Charger un pilote noyau bogué tel que szkg64.sys2. Exploiter la vulnérabilité du pilote Alternative : le privilège peut être utilisé pour décharger des pilotes liés à la sécurité avec la commande intégrée fltMC, ex : fltMC sysmondrv | 1. La vulnérabilité szkg64 est listée comme CVE-2018-157322. Le code d'exploitation de szkg64 code d'exploit a été créé par Parvez Anwar |
SeLockMemory | Disponibilité | Outil tiers | Affamer la partition mémoire système en déplaçant des pages. | PoC publié par Walied Assar (@waleedassar) |
SeMachineAccount | Aucun | - | - | Le privilège n'est pas utilisé dans le système d'exploitation Windows. |
SeManageVolume | Admin | Outil tiers | 1. Activer le privilège dans le jeton 2. Créer un handle vers \.\C: avec SYNCHRONIZE | FILE_TRAVERSE3. Envoyer le FSCTL_SD_GLOBAL_CHANGE pour remplacer S-1-5-32-544 par S-1-5-32-5454. Écraser utilman.exe etc. | FSCTL_SD_GLOBAL_CHANGE peut être effectué avec ce morceau de code. |
SeProfileSingleProcess | Aucun | - | - | Le privilège est vérifié avant de modifier (et dans un ensemble très limité de commandes, avant d'interroger) les paramètres de Prefetch, SuperFetch et ReadyBoost. L'impact peut être ajusté, car l'effet réel n'est pas connu. |