Auto-Elevate
Cet outil démontre la puissance des contournements UAC et des fonctionnalités intégrées de Windows. Cet utilitaire localise automatiquement winlogon.exe, vole et usurpe son TOKEN de processus, puis génère un nouveau processus au niveau SYSTEM avec le token volé. Combiné avec la méthode de contournement UAC #41 (contournement UAC ICMLuaUtil) issue de l'utilitaire UACME de hfiref0x, cet utilitaire peut auto-élever un compte Administrateur à faibles privilèges vers NT AUTHORITY\SYSTEM.
L'image suivante montre l'utilisation d'UACME combiné à Auto-Elevate pour passer d'un compte Administrateur à faibles privilèges à NT AUTHORITY\SYSTEM sur Windows 10 21H1.

L'image suivante montre l'élévation d'un compte Administrateur à privilèges élevés vers SYSTEM sans contournement UAC

Explication technique
Les étapes suivantes sont effectuées par Auto-Elevate pour passer d'un Administrateur à faibles privilèges à SYSTEM :

Auto-Elevate
- Le processus winlogon.exe est localisé en énumérant les processus en cours d'exécution du système avec CreateToolhelp32Snapshot, Process32First et Process32Next
- SeDebugPrivilege est activé pour le processus courant via un appel à AdjustTokenPrivileges, car il est nécessaire pour ouvrir un HANDLE vers winlogon.exe
- Un handle vers le processus winlogon.exe est ouvert en appelant OpenProcess ; pour cet appel, PROCESS_ALL_ACCESS est utilisé (bien que ce soit excessif)
- Un handle vers le token de processus de winlogon est récupéré en appelant OpenProcessToken combiné avec le handle de processus précédemment obtenu
- L'utilisateur (SYSTEM) de winlogon est usurpé en appelant ImpersonateLoggedOnUser
- Le handle de token usurpé est dupliqué en appelant DuplicateTokenEx avec SecurityImpersonation, ce qui crée un token dupliqué que nous pouvons utiliser
- En utilisant le token dupliqué et usurpé, une nouvelle instance de CMD est générée en appelant CreateProcessWithTokenW
À faire
Correspondance MITRE ATT&CK
- Manipulation de jetons : T1134
- Manipulation de jetons d'accès : Usurpation/Vol de jeton : T1134.001
- Manipulation de jetons d'accès : Créer un processus avec un jeton : T1134.002
- Manipulation de jetons d'accès : Créer et usurper un jeton : T1134.003