c ++ - CreateProcess kører som bruger: 'NT MYNDIGHED/Network Service' uden at kende legitimationsoplysningerne?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en windows service, der kører som lokalt system. Jeg vil gerne have tjenesten til at gyde en proces som 'NT MYNDIGHED/Network Service'. Jeg har dog ikke legitimationsoplysningerne for denne konto. Hvordan kan jeg gyde processen som 'Network Service' brugeren ved hjælp af c ++.

Bedste reference


Jeg er ikke foran min win32 dev box, så jeg kan ikke bekræfte, men jeg vil tilbyde to mulige tilgange:



  • Iterate gennem listen over processer

  • Ring til OpenProcess() for at få håndtaget af en eksisterende NETWORK SERVICE-proces

  • Ring til OpenProcessToken() ved hjælp af det håndtag for at få sikkerhedstoken fra sin proces

  • Ring til CreateProcessAsUser() med symbolet for at oprette en proces som NETWORK SERVICE



Alternativt kan du: [8] [9] [10]



  • Ring til [11] CreateService() ved hjælp af NT AUTHORITYNetworkService i lpServiceStartName

  • Ring til [12] StartService() for at starte processen