Zugriff verweigert - Access Denied - Die Grenzen der Powershell

05.03.2021 | Autor: Mark Heitbrink

VERWEIGERN ist in jedem Berechtigungskonzept bei Microsoft das gewinnende Recht. Administratoren haben gelernt sparsam damit umzugehen und es selten zu verwenden. Es gibt immer wieder Stolperfallen, wenn User in Gruppen stecken, die in Gruppen geschachtelt wurden und denen wurde der Zugriff verweigert. Manchmal dauert es dann bis man seinen Fehler entdeckt hat und der berühmte Groschen fällt pfennigweise.

Es gibt Situationen, zB am TerminalServer/RemoteDesktopServer, wo man eine restriktive Richtlinie für alle Benutzer anwenden möchte AUSSER den Domänen-Admins. Mein bevorzugter Weg ist, es gibt eine Sicherheitsgruppe für RDS/TS User und nur diese hat das Recht ÜBERNEHMEN. Mitglieder das Administratoren sind nicht in dieser Sicherheitsgruppe. Ich baue eine Whitelist oder neusprachlich Allowlist.

Was in einigen Situationen schneller zu realisieren ist, da man keine zusätzliche Gruppe benötigt ist, das man den Administratoren das Recht der Übernahme verweigert. Technisch ist das kein Problem, es sollte nur dokumentiert werden und der Admin sollte sich dran erinnern. Vielleicht heisst die Richtlinien dann: B_SEC_DENY_restriktive_Einstellungen_RDS
B = Benutzer, SEC = es gibt einen Sicherheitsfilter, DENY = Verweigern wurde verwendet.

Im Eifer des Gefechts verklickt sich der Administrator und er setzt das VERWEIGERN nicht bei dem Recht "übernehmen", sondern beim LESEN, oder gar bei Vollzugriff. 

 

LESEN verweigern ist immer falsch, da man sich damit auch die saubere Auflistung und das Reporting im gpresult / RSOP verbaut. Ohne Leserechte wird nur die GUID der Richtlinie angezeigt, aber nicht der Name. 

Je nachdem, wie das AD konfiguriert ist, wird nun das Objekt, an dem der Account keine Berechtigungen mehr hat in der GPMC unterschiedlich angezeigt. Entweder wird das Objekt überhaupt nicht angezeigt, dann ist das AD im "List Object Mode". Dieser ist vergleichbar mit dem Access Based Enumeration im Dateisystem. Es werden nur die Objekte angezeigt, auf die man mindestens Leserechte hat. Meine Demo Umgebung ist so konfiguriert. Normalerweise sieht man jetzt ein Object mit rotem Einbahnstrassenschild und dem Namen "Zugriff verweigert" (Access Denied). 

Das Objekt bleibt "versteckt". In keiner MMC Konsole wird das Objekt noch angezeigt. Wir können die Berechtigungen weder in der GPMC noch per ADSI Edit korrigieren. Wir sehen das Objekt in meinem Fall nur noch im SYSVOL. Um die Berechtigungen zu korrigieren benötigen wir auf jeden Fall die GUID der GPO. Nur über diese ist das Objekt noch zu indentifizieren.

Die Lösung: die gute Eingabeaufforderung mit dem Befehl dsacls.exe.
Was spricht gegen set-gppermission in der Powershell? Es spricht dagegen, das es mit der Powershell nicht korrigierbar ist.

Die Powershell Commandlets der Gruppenrichtlinien sind zwingend auf die GPMC angewiesen. Sie sprechen nicht nativ mit dem AD sondern über die GPMC mit den Objekten. Wie wir soeben festgestellt haben "sieht" die GPMC das Objekt nicht. Es ist praktisch nicht vorhanden und deswegen scheitert die Powershell mit der Korrektur, da die Schnittstelle das Objekt nicht findet.

Die Powershell können wir nur benutzen solange wir noch LESE Rechte haben und die GPMC das Objekt anzeigt.

Die Lösung führt in diesem Fall über dsacls.exe

1. Zuerst entfernen wir das DENY. Das GPC (Group Policy Container) im AD ist immer unter cn=System, cn=Policies.

dsacls cn={F6806F1E-3CFB-4F9A-837A-820EBB63D521},cn=Policies,cn=system,dc=gallier,dc=ads /R "Domänen-Admins"

2. Danach geben wir der Gruppe alle Rechte zurück (GA = Generac All)

dsacls cn={F6806F1E-3CFB-4F9A-837A-820EBB63D521},cn=Policies,cn=system,dc=gallier,dc=ads /G "Domänen-Admins":GA

Danach ist das Objekt wieder ganz normal in der GPMC vorhanden und muss bearbeitet werden. Beim ersten anklicken kommt eine Fehlermeldung, das die Berechtigungen im SYSVOL nicht konsistent sind und ob das geändert werden soll. Das kann mit klick OK bestätigt werden.
Durch das GA wird der Gruppe explizit das Recht ÜBERNEHMEN eigeräumt, das sollte über die Delegation entfernt werden.