Access Tokens
Jetons d'accès
Chaque utilisateur connecté au système détient un jeton d'accès avec des informations de sécurité pour cette session de connexion. Le système crée un jeton d'accès lorsque l'utilisateur se connecte. Chaque processus exécuté au nom de l'utilisateur dispose d'une copie du jeton d'accès. Le jeton identifie l'utilisateur, les groupes de l'utilisateur et les privilèges de l'utilisateur. Un jeton contient également un SID de connexion (Security Identifier) qui identifie la session de connexion actuelle.
Vous pouvez voir ces informations en exécutant whoami /all
ou en utilisant Process Explorer de Sysinternals (sélectionnez le processus et accédez à l'onglet "Sécurité") :
Administrateur local
Lorsqu'un administrateur local se connecte, deux jetons d'accès sont créés : un avec des droits d'administrateur et un autre avec des droits normaux. Par défaut, lorsque cet utilisateur exécute un processus, celui avec des droits normaux (non administrateur) est utilisé. Lorsque cet utilisateur essaie d'exécuter quelque chose en tant qu'administrateur (par exemple, "Exécuter en tant qu'administrateur"), l'UAC sera utilisé pour demander la permission. Si vous souhaitez en savoir plus sur l'UAC, lisez cette page.
Impersonation d'utilisateur avec des informations d'identification
Si vous avez les informations d'identification valides d'un autre utilisateur, vous pouvez créer une nouvelle session de connexion avec ces informations d'identification :
L'jeton d'accès contient également une référence des sessions de connexion à l'intérieur du LSASS, ce qui est utile si le processus doit accéder à certains objets du réseau. Vous pouvez lancer un processus qui utilise des informations d'identification différentes pour accéder aux services réseau en utilisant :
Cela est utile si vous avez des informations d'identification utiles pour accéder à des objets dans le réseau mais que ces informations d'identification ne sont pas valides à l'intérieur de l'hôte actuel car elles ne seront utilisées que dans le réseau (dans l'hôte actuel, vos privilèges utilisateur actuels seront utilisés).
Types de jetons
Il existe deux types de jetons disponibles :
Jeton principal : Il sert de représentation des informations d'identification de sécurité d'un processus. La création et l'association de jetons principaux avec des processus sont des actions qui nécessitent des privilèges élevés, mettant en avant le principe de séparation des privilèges. En général, un service d'authentification est responsable de la création du jeton, tandis qu'un service de connexion gère son association avec l'interpréteur de commandes de l'utilisateur. Il convient de noter que les processus héritent du jeton principal de leur processus parent lors de leur création.
Jeton d'usurpation : Permet à une application serveur d'adopter temporairement l'identité du client pour accéder à des objets sécurisés. Ce mécanisme est stratifié en quatre niveaux d'opération :
Anonyme : Accorde à un serveur un accès similaire à celui d'un utilisateur non identifié.
Identification : Permet au serveur de vérifier l'identité du client sans l'utiliser pour accéder aux objets.
Usurpation : Permet au serveur de fonctionner sous l'identité du client.
Délégation : Similaire à l'Usurpation mais inclut la capacité d'étendre cette supposition d'identité aux systèmes distants avec lesquels le serveur interagit, garantissant la préservation des informations d'identification.
Usurper des jetons
En utilisant le module incognito de Metasploit, si vous avez suffisamment de privilèges, vous pouvez facilement list et usurper d'autres jetons. Cela pourrait être utile pour effectuer des actions comme si vous étiez l'autre utilisateur. Vous pourriez également escalader les privilèges avec cette technique.
Privilèges des jetons
Apprenez quels privilèges des jetons peuvent être abusés pour escalader les privilèges :
Jetez un œil à tous les privilèges de jetons possibles et quelques définitions sur cette page externe.
Références
Apprenez-en plus sur les jetons dans ces tutoriels : https://medium.com/@seemant.bisht24/understanding-and-abusing-process-tokens-part-i-ee51671f2cfa et https://medium.com/@seemant.bisht24/understanding-and-abusing-access-tokens-part-ii-b9069f432962
Last updated