запуск прогарммы в NT от другого пользователя
От: Shtas  
Дата: 03.04.02 07:21
Оценка:
Как имея пользователя SYSTEM запустить программу(процесс) от имени другого пользователя.
Т.е. именно как это сделать не зная пароля этого пользователя...

CreateProcessAsUser(...) хочет токен пользователя, но для получения токена необходимо пройти
авторизацию UserLogon(...), а как без авторизации?
;)
Re: запуск прогарммы в NT от другого пользователя
От: KA it-knowledge-base.blogspot.com
Дата: 03.04.02 14:08
Оценка:
Здравствуйте Shtas, Вы писали:

S>Как имея пользователя SYSTEM запустить программу(процесс) от имени другого пользователя.

S>Т.е. именно как это сделать не зная пароля этого пользователя...

S>CreateProcessAsUser(...) хочет токен пользователя, но для получения токена необходимо пройти

S>авторизацию UserLogon(...), а как без авторизации?
S>
Поправочка: не UserLogon, а LogonUser

Лично я с такой задачей еще не сталкивался, но глянув одним глазком в MSDN, мне показалось, что DuplicateTokenEx тебе подойдет. По крайней мере в примечании там описан именно твой случай
//
#import <windows.bas>
class IWindows9x:protected DOS { private: virtual HANDLE EnumClouds()=0; };
Re: запуск прогарммы в NT от другого пользователя
От: Alex Fedotov США  
Дата: 03.04.02 17:36
Оценка:
Здравствуйте Shtas, Вы писали:

S>Как имея пользователя SYSTEM запустить программу(процесс) от имени другого пользователя.

S>Т.е. именно как это сделать не зная пароля этого пользователя...

S>CreateProcessAsUser(...) хочет токен пользователя, но для получения токена необходимо пройти

S>авторизацию UserLogon(...), а как без авторизации?

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

В противном случае, документированных способов нет. Из недокументированных, можно создать токен из ничего c помощью NtCreateToken и использовать его. В этом случае процесс не будет иметь network credentials и не сможет обращаться к сетевым ресурсам, использующим NT integrated authentication.
-- Alex Fedotov
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.