открытый процесс как другой пользователь - PullRequest
0 голосов
/ 05 декабря 2009

Я хочу получить привилегии выбранного пользователя на локальном компьютере. Я знаю, как получить их от текущего пользователя, поэтому моя проблема заключается в том, как открыть процесс как другой пользователь.

В настоящее время я ищу дополнительную информацию о CreateProcessAsUser ()

спасибо

Ответы [ 2 ]

2 голосов
/ 05 декабря 2009

Вы не должны создавать процесс как другой пользователь только для того, чтобы получить его привилегии. Чтобы получить привилегии пользователя, вам нужен токен iudentity. Чтобы запустить процесс от имени пользователя, вам нужен олицетворенный токен. Токены идентичности представляют собой очень низкий риск безопасности, с другой стороны, маркеры олицетворения являются очень серьезным бизнесом. По крайней мере, вам нужно знать пароль пользователя, чтобы имитировать (или иметь контекст, способный к мошенничеству, такой как контекст безопасности обмена SSPI).

Используйте LookupAccountName для получения SID, LsaOpenPolicy и LsaEnumerateAccountRights .

1 голос
/ 05 декабря 2009

Проверьте эту ссылку, чтобы узнать, как сделать это с помощью службы в Delphi: Запустите приложение в Vista под учетной записью локальной системы без всплывающего окна UAC

Для запуска процесса под локальным Системный аккаунт выполняю следующим шаги (из приложения-службы):

  1. Получить идентификатор активной консоли, используя WTSGetActiveConsoleSessionId
  2. Так как мне нужно запустить приложение под системной учетной записью, я используйте токен от Winlogon, так как Winlogon работает под управлением системы учетная запись. Таким образом, я получаю идентификатор процесса Винлогон и дубликат токена.
  3. Затем я проверяю, что отправил параметр startupinfo lpDesktop в winsta0 \ Default, так как мне нужно запустить мой процесс там.
  4. Затем я использую CreateProcessAsUser с дубликатом токена Winlogon для запусти мой процесс в сессию 1.
  5. Вот и все. Я закончил.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...