Benutzern in Windows können verschiedene Berechtigungen gewährt werden
Berechtigungen bestimmen die Art der Systemvorgänge, die ein Benutzerkonto ausführen kann. Ein Administrator weist Benutzer- und Gruppenkonten Berechtigungen zu. Zu den Berechtigungen jedes Benutzers gehören die Berechtigungen, die dem Benutzer und den Gruppen gewährt wurden, denen der Benutzer angehört.
Derzeit gibt es 35 Berechtigungen. Einige der interessanteren sind:
- SeSystemtimePrivilege : Erforderlich, um die Systemzeit zu ändern.
- SeTimeZonePrivilege : Erforderlich, um die Zeitzone anzupassen, die der internen Uhr des Computers zugeordnet ist
- SeBackupPrivilege : Dieses Privileg bewirkt, dass das System allen Dateien unabhängig von der für die Datei angegebenen Zugriffssteuerungsliste (Access Control List, ACL) Lesezugriffskontrolle gewährt.
- SeCreatePagefilePrivilege : Erforderlich zum Erstellen einer Auslagerungsdatei.
- SeRemoteShutdownPrivilege : Erforderlich, um ein System mithilfe einer Netzwerkanforderung herunterzufahren.
- SeDebugPrivilege : Erforderlich zum Debuggen und Anpassen des Speichers eines Prozesses, der einem anderen Konto gehört.
Aber der, der mich interessiert, ist:
- SeShutdownPrivilege : Erforderlich, um ein lokales System herunterzufahren.
Mir ist aufgefallen, dass ich dieses Privileg eigentlich nicht habe . An einer Eingabeaufforderung mit erhöhten Rechten:
>whoami /priv
PRIVILEGES INFORMATION
----------------------
Privilege Name Description State
=============================== ========================================= ========
SeIncreaseQuotaPrivilege Adjust memory quotas for a process Disabled
SeSecurityPrivilege Manage auditing and security log Disabled
SeTakeOwnershipPrivilege Take ownership of files or other objects Disabled
...
SeShutdownPrivilege Shut down the system Disabled
...
Dies wird bestätigt, wenn Sie den Process Explorer verwenden , um das Sicherheitstoken eines erhöhten Prozesses zu überprüfen, der unter mir ausgeführt wird:
Und doch kann ich das System herunterfahren. Warum?
Die Gruppenrichtlinie besagt, dass ich es haben sollte
Wenn Sie die lokalen Sicherheitsrichtlinien - Editor - Snap (verwenden secpol.msc
), können Sie sehen , dass ich sollte das Privileg haben:
secpol.msc
Die Erklärung des Privilegs:
Fahren Sie das System herunter
Diese Sicherheitseinstellung bestimmt, welche Benutzer, die lokal am Computer angemeldet sind, das Betriebssystem mit dem Befehl Herunterfahren herunterfahren können. Der Missbrauch dieses Benutzerrechts kann zu einer Dienstverweigerung führen.
Standard auf Arbeitsstationen: Administratoren, Sicherungs-Operatoren, Benutzer.
Standard auf Servern: Administratoren, Sicherungsoperatoren.
Standard auf Domänencontrollern: Administratoren, Sicherungs-Operatoren, Server-Operatoren, Druck-Operatoren.
Ich bin ein Benutzer . Manchmal bin ich Administrator , manchmal bin ich NotAdministrator .
Vielleicht sollte die Frage sein, warum ich nicht das Privileg habe.
Aber die Realität ist, dass ich nicht das Privileg habe; und doch, wenn ich lokal eingeloggt bin, kann ich das lokale System herunterfahren.
Warum?
@Mehrdad hatte eine gute Antwort, die er gelöscht hat, die meiner Meinung nach Beachtung verdient und die die Frage nett und prägnant beantwortet:
Du hast das Privileg. Es ist lediglich standardmäßig deaktiviert. Wenn Sie nicht das Privileg hätten , würde es überhaupt nicht aufgeführt werden .
Beachten Sie, dass oderSE_PRIVILEGE_REMOVED
fehlt .SE_PRIVILEGE_ENABLED
SE_PRIVILEGE_ENABLED_BY_DEFAULT
Bonus Lesung
quelle
Antworten:
Sie haben die Berechtigung, diese ist jedoch deaktiviert . Das sagt Ihnen PowerShell.
Zum Herunterfahren des Systems verwenden Sie die Win32API-Funktion
InitiateSystemShutdown
oderExitWindowsEx
:Diese Funktionen beachten:
Wie Sie sehen, überprüft Windows Thread- Berechtigungen (jeder Thread verfügt über Token mit Berechtigungen). Wenn Sie
ExitWindowsEx
ohne das Zugriffsrecht SE_SHUTDOWN_NAME aufrufen, schlägt die Funktion mit dem folgenden Fehler fehl:Threads, die Sie standardmäßig erstellen, erben Ihre Berechtigungen. Ein Programm kann jedoch ein deaktiviertes Privileg aktivieren, das ihm gewährt wurde mit
AdjustTokenPrivileges
:Das Ändern von Berechtigungen in einem Token lautet:
Warum ist dieses Privileg standardmäßig deaktiviert? So stellen Sie sicher, dass kein Programm Windows versehentlich herunterfahren kann. Bewerbungen sollten dies ausdrücklich verlangen.
Es gibt ein uraltes, aber sehr gutes Buch: https://www.amazon.com/Programming-Windows-Security-Keith-Brown/dp/0201604426/ über all das Zeug.
quelle
Dies liegt daran, dass Ihr Benutzer einer Gruppe angehört, für die dieses Recht aktiviert ist.
Um selbst zu sehen, welche Gruppe (n):
secedit /export /areas USER_RIGHTS /cfg OUTFILE.CFG
.SeShutdownPrivilege
Eintrag. Sie werden (sollten) einige SIDs für Benutzer und / oder Gruppen sehen, für die diese Berechtigung aktiviert ist.Also habe ich drei kurze SIDs aufgelistet. Kurze SIDs sind normalerweise Konten / Gruppen auf Computerebene. Zum Beispiel ist einer von ihnen
S-1-5-32-545
.Mithilfe von PowerShell können wir ermitteln, für welches Konto / welche Gruppe die SID steht:
Dies kehrt zurück
BUILTIN\Users
.Da Sie ein Benutzer auf diesem Computer sind, sind Sie automatisch Mitglied dieser Gruppe. Dies bedeutet, dass Sie den Computer herunterfahren können.
Die anderen zwei, die ich habe, sind
S-1-5-32-544
undS-1-5-32-551
. Dies sind die StandardgruppeBUILTIN\Administrators
und dieBUILTIN\Backup Operators
Gruppe. Welche Aufstellung mit den Gruppen, die Sie imsecpol.msc
Dialogfeld sehen.quelle