Token Impersonation
Un token est une clé temporaire qui permet d’accéder à un système ou réseau sans avoir à donner des identifiants à chaque fois que vous accéder à une ressources. Ces tokens contiennent des informations comme :
- L’identité de l’utilisateur
- Les groupes auxquels l’utilisateur appartient
- Les privilèges de l’utilisateurs
Il existe deux type de token :
- Delegate : Crée lorsque l’on se connecte sur une machine ou lorsqu’on se connecte à une machine via RDP et permet à un utilisateur d’usurper l’identité d’un utilisateur sur d’autre machine du réseau (Exemple : Un service accédant à des fichiers d’un autre serveur en tant qu’un utilisateur)
- Impersonate : Ce sont des tokens dit « non interactives » qui permettent à un processus d’usurper l’identité d’un autre utilisateur dans le meme systeme (Exemple : un serveur IIS qui exécute un script sous l’identité d’un utilisateur)
Pour identifier les tokens d’un système, on peut aprés avoir obtenu un shell meterpreter, utilisé le module incognito :
Dans ce cas, on voit qu’on peut usurper l’identité de fcastle pour exécuter des commandes sur d’autre machine du domaine :Si on récupére le token d’un administrateur du domaine, on peut l’utiliser pour ajouter un compte dans le groupe des administrateurs du domaine :
Cette attaque est possible car le compte administrateur du domaine s’est connecté à cette machine et que la machine n’a pas redemarré depuis que l’administrateur du domaine s’est connecté.
Pour remédier à cette attaque, il convient de mettre en place l’Account Tiering qui permet d’avoir plusieurs compte administrateur chacun responsable d’un type d’équipements. De cette maniere, si un compte administrateur des pc et compromis alors l’attaquant aura accés uniquement au pc. Si un compte administrateur des serveurs est compromis, l’impact sera limité au serveur. Cela permet de s’assurer que les administrateurs du domaine sont utilisés uniquement sur le controle du domaine et ne laisse pas de trace sur d’autre machine