OpenProcessToken fehlgeschlagen mit Zugriff verweigert (5) unter Windows XP

9

Mein Prototyp-Code funktioniert auf jedem Windows-Betriebssystem, auf dem ich testen konnte, außer Windows XP.

Wenn ich dies unter Windows XP als Administrator ausführe, bekomme ich Zugriff verweigert (5) beim Aufruf von OpenProcessToken .

Gibt es einen Unterschied, den ich nicht kenne?

%Vor%     
wulfgarpro 22.11.2017, 03:04
quelle

1 Antwort

4

auf XP-Prozessen, die unter LocalSystem ( S-1-5-18 ) laufen, haben die nächste DACL auf Token:

%Vor%

Dies bedeutet, dass SYSTEM vollen Zugriff haben TOKEN_ALL_ACCESS ( 000F01FF ) und Benutzer aus der Admin-Gruppe ( S-1-5-32-544 ) haben READ_DACL|TOKEN_QUERY ( 00020008 ) Zugriff

Prozesse, die unter einem anderen Account laufen, haben als nächstes Dacl auf Token:

%Vor%

wo UserSid einige eindeutige (nicht Gruppe!) SID. Für Dienste, die nicht unter LocalSystem ausgeführt werden, sieht es aus wie S-1-5-80 - .. , für Benutzer - S-1-5-21-. . Dies bedeutet, dass dieser dacl vollen Zugriff auf 'SYSTEM' und konkreten Benutzer gewährt. Gewähren Sie jedoch keinen Zugriff auf die Administratorengruppe ( S-1-5-32-544 ). Sie können also alle Prozesstoken öffnen, die unter selbe Benutzer ausgeführt werden. Aber wenn Sie Open Process Toke versuchen, die unter einem anderen Benutzer (einem anderen Sid) ausgeführt werden, haben Sie keinen Zugriff darauf und Zugriff verweigert wurde. du kannst es nicht mal lesen dacl (du bist kein eigentümer und hast kein READ_CONTROL ).

In Code versuchen Sie, Token von einem anderen Benutzerprozess zu öffnen ( LogonUser verwendet). In diesem Token DACL - Nein Ihre Benutzer SID oder Administratoren sid. als Ergebnis und Zugriff verweigert

Wenn Sie jedoch Besitzberechtigung haben, können Sie zuerst Token mit WRITE_OWNER öffnen und self als Eigentümer festlegen, danach mit WRITE_DAC (Besitzer haben diesen Zugriff) und dacl ändern. oder, wenn Sie Debug-Propulege haben, können Sie System-Thread imitieren, indem Sie NtImpersonateThread verwenden und vollständigen Zugriff auf Token haben.

Hilfscode:

%Vor%

einige Ergebnisse von XP:

%Vor%     
RbMm 28.11.2017, 02:34
quelle

Tags und Links