ユーザーをログオンせずに偽装することは可能ですか?
-
02-07-2019 - |
質問
ユーザー名/パスワードを指定せずにユーザーになりすますことは可能ですか?基本的に、 ShGetFolderPath()
関数を使用して、ユーザー(現在のユーザーではない)の CSIDL_LOCAL_APPDATA
を取得したいと思います。現在持っているのは、そのユーザーのSIDだけです。
解決
いいえ、Win32 APIの LogonUser 関数を呼び出してWindowsアカウントトークンを取得し、偽装できるようにする必要があります。
他のヒント
ZwCreateTokenを呼び出すことにより、パスワードを指定せずにユーザーを偽装できます。 この記事のCreatePureUserToken関数を参照してください。 GUIベースのRunAsEx これを機能させるには、管理者(またはLocalSystem)として実行する必要があります。
もう1つの方法は、Windowsサブ認証パッケージを使用することです。 これにより、Windowsのビルトイン認証を上書きし、パスワードが指定されていなくてもLogonUserが成功できるようになります。この KB article を参照してください。
所属していません StackOverflow