Usurpation d'identité d'utilisateurs sous Windows avec C#
Cette question approfondit un aspect crucial de la programmation Windows : l'usurpation d'identité d'utilisateurs à partir d'une application C#. Le problème spécifique en question est de permettre à un service Windows exécuté en tant que LocalSystem d'assumer temporairement l'identité d'un utilisateur différent, notamment pour accéder à une base de données à l'aide de la sécurité intégrée de Windows.
Comment usurper l'identité des utilisateurs
L'usurpation d'identité implique d'exploiter les fonctions de l'API Windows de bas niveau, principalement NtCreateToken et CreateToken. Ces fonctions vous permettent de créer un jeton représentant l'utilisateur souhaité, puis de l'utiliser pour usurper l'identité d'un utilisateur dans un fil de discussion.
Exigences de privilèges
Pour réussir à usurper l'identité des utilisateurs, vous devrez besoin du privilège SeCreateTokenPrivilege. Puisque vous utilisez NT AUTHORITYSYSTEM, l'obtention de ce privilège ne devrait pas poser de problème.
L'usurpation d'identité peut-elle être sans mot de passe ?
Malheureusement, l'usurpation d'identité nécessite généralement la connaissance du le mot de passe de l'utilisateur cible. Cependant, il n'existe aucune approche recommandée pour stocker en toute sécurité les mots de passe en C# ou VBScript.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!