Как выдать себя за WellKnownSidType? - PullRequest
1 голос
/ 10 сентября 2010

Я знаю, что могу выдать себя за учетную запись Windows, используя: http://msdn.microsoft.com/en-us/library/chf6fbt4.aspx

Но как мне выдать себя за WellKnownSidType аккаунт?

SecurityIdentifier sid = new SecurityIdentifier(WellKnownSidType.LocalSystemSid, null);
NTAccount account = sid.Translate(typeof(NTAccount)) as NTAccount;
if (account != null)
{
    //Impersonate here???
}

Ответы [ 2 ]

2 голосов
/ 10 сентября 2010

Прежде всего, вы не сможете олицетворять встроенные учетные записи, такие как «Сетевая служба» или «Локальная служба», если вы не используете учетную запись «Локальная служба», что, насколько я знаю, может быть сделано толькоОС.

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

http://geek.hubkey.com/2008/02/impersonating-built-in-service-account.html

После запуска под учетной записью «Локальная служба» вам просто нужно использовать LogonUser (также показано по ссылке выше) для входа в систему с использованием имени учетной записи хорошо известного SID, а затем выдать себя заtoken.

Я вижу, что приведенная выше ссылка запускает «CMD.EXE» как службу, которая может взаимодействовать с рабочим столом, обратите внимание, что функциональность «взаимодействовать с рабочим столом» устарела.

0 голосов
/ 11 сентября 2010

Используйте конструктор WindowsIdentity и следуйте указаниям здесь .Вам, между прочим, понадобится «Действовать как часть операционной системы».

...