Das Impersonate gibt dem Prozess nicht plötzlich Adminrechte. Entweder ein Prozess wird mit Adminrechten gestartet, oder ohne. Das lässt sich nicht nachträglich ändern.
Öhm ... also
ImpersonateLoggedOnUser gibt in der Tat dem
Thread die Rechte des Nutzers dessen Identität man annimmt. Himitsu erwähnte es bereits.
Kann es sein, daß du eher
das hier meinst? Denn die von dir beschriebene Abgrenzung gibt es meines Wissens nach dort, aber nicht auf der Ebene um welche sich die Frage dreht. Ich lasse mich gern eines besseren belehren.
Selbst Anwendungen wie z.B. Visual Studio Code installieren sich standardmäßig dorthin.
Faszinierend, oder? Entgegen Microsofts eigenen Empfehlungen. Nunja. Vermutlich liegt's daran, daß VSCode Electron-basiert ist?!
Und nicht das hier ein Denkfehler geschieht "User mit Adminrechten" <> Administratoruser (unter Windows 10 zumindest).
Definiere:
- Adminrechte
- Adminstratoruser
Also redest du über
RID=500 (DOMAIN_USER_RID_ADMIN)? Oder geht es um die
"Privileges" (ich meine eingedeutscht hießen die Benutzerrechte)?
Es gibt keinen "Rest" des Programms. Es hat auch nichts wirklich mit Rechten eines Benutzers zu tun. Entweder der Prozess hat beim Start Admin-RechteFähigkeiten mitbekommen, oder er hat sie nicht. Man durch diese "Impersonation" sich als anderer Benutzer ausgeben, auf dessen Resourcen (z.B. Registry oder Dateien) zugreifen, aber die Admin-Fähigkeiten kommen dadurch nicht nach.
Sicher? Du bist dir da so 100%ig sicher, daß du das hier Hilfesuchenden als definitive Aussage präsentierst? Woher genau bekommst du denn das Token? Normalerweise wird das
LogonUser oder Tokenklau sein. Und wenn du dich in
LogonUser als Admin ausgewiesen hast, bekommst du selbstverfreilich die entsprechenden Rechte. Wie genau definierst du "Admin-Fähigkeiten"? Das ist ja gerade der Zweck dieser Funktionen.
Ich verweise auf
Mimikatz (siehe auch
GitHub).
Die Lektüre des Codes von
SuRun empfiehlt sich ebenfalls.
Also entweder reden wir aufgrund mangelnder gemeinsam akzeptierter Definition von "Admin-Fähigkeiten" aneinander vorbei, oder du bist auf dem Holzweg.