CreateProcess, запущенный от имени пользователя: NT AUTHORITY / Network Service, не зная учетные данные? - PullRequest
1 голос
/ 12 апреля 2011

У меня есть служба Windows, работающая как локальная система.Я хотел бы, чтобы служба порождала процесс как «NT AUTHORITY / Network Service».Однако у меня нет учетных данных для этой учетной записи.Как я могу порождать процесс как пользователь «Сетевой службы», используя c ++.

1 Ответ

3 голосов
/ 12 апреля 2011

Я не нахожусь перед моей коробкой разработчика win32, поэтому я не могу подтвердить, но я предложу два возможных подхода:

  • Итерация по списку процессов
  • Позвоните OpenProcess(), чтобы получить дескриптор существующего процесса NETWORK SERVICE
  • Позвоните OpenProcessToken(), используя этот дескриптор для получения токена безопасности из своего процесса
  • Позвоните CreateProcessAsUser() с токеном, чтобы создать процесс в качестве СЕТЕВОЙ СЛУЖБЫ

Кроме того, вы можете:

  • Позвонить CreateService() с использованием NT AUTHORITY\NetworkService in lpServiceStartName
  • Вызов StartService() для запуска процесса
...