Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

Token Impersonation

hacking

Définition

L'impersonation de token est une technique de post-exploitation Windows permettant à un attaquant d'usurper l'identité d'un autre utilisateur en volant ou en créant un token d'accès Windows associé à sa session. Les tokens d'accès sont des objets du kernel Windows qui représentent le contexte de sécurité d'un processus ou thread et contiennent l'identité de l'utilisateur, ses groupes, ses privilèges et la politique d'intégrité. Windows distingue deux types de tokens : les primary tokens (associés aux processus) et les impersonation tokens (créés pour permettre à un serveur de traiter des requêtes au nom de clients avec des privilèges différents). La technique d'impersonation exploite les fonctions Windows ImpersonateLoggedOnUser, SetThreadToken, et DuplicateTokenEx pour créer ou voler des tokens et les utiliser dans un thread ou un processus. Mimikatz implémente cette fonctionnalité avec le module token::elevate (pour passer au token SYSTEM), token::impersonate, et token::list (pour lister tous les tokens disponibles). L'outil Incognito (intégré à Metasploit comme module post/windows/manage/steal_token) automatise la recherche et l'utilisation de tokens d'utilisateurs connectés. Le privilège SeImpersonatePrivilege est central dans ces attaques : des attaques comme PrintSpoofer, RoguePotato, SweetPotato et JuicyPotato exploitent ce privilège (souvent accordé aux comptes de service) pour escalader vers SYSTEM. Ces attaques créent un named pipe ou un serveur COM, forcent un processus privilégié (SYSTEM) à s'y connecter, et volent son token via ImpersonateNamedPipeClient. La protection contre l'impersonation de token inclut : la restriction du privilège SeImpersonatePrivilege aux seuls comptes qui en ont besoin, l'utilisation de comptes de service dédiés avec des permissions minimales (principe du moindre privilège), et la surveillance des événements d'utilisation de SeImpersonatePrivilege dans les logs Windows.

Fonctionnement

L'attaque Potato (PrintSpoofer, JuicyPotato) fonctionne ainsi : un attaquant avec SeImpersonatePrivilege crée un named pipe contrôlé, force le spooler d'impression Windows (qui s'exécute en SYSTEM) à s'y connecter, et utilise ImpersonateNamedPipeClient pour voler le token SYSTEM. Ce token peut ensuite être utilisé pour créer un processus (CreateProcessWithTokenW) exécuté en SYSTEM.

Exploitation offensive

L'impersonation de token est une des techniques d'élévation de privilèges les plus efficaces sur Windows. Sur les services IIS, MSSQL ou Exchange (qui s'exécutent avec des comptes de service ayant SeImpersonatePrivilege), une RCE initiale avec ces droits limités peut être immédiatement escaladée vers SYSTEM. L'accès SYSTEM permet ensuite le dump de LSASS et la compromission complète du système.

Détection et mitigation

Les EDR surveillent les utilisations anormales de SeImpersonatePrivilege et les créations de processus avec des tokens différents du processus parent. Les Hardened Token restrictions de Windows Server 2019+ limitent les vecteurs d'abus des Potato attacks. La configuration de comptes de service avec des gMSA (Group Managed Service Accounts) et sans SeImpersonatePrivilege réduit la surface d'attaque.

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis