Der Berechtigungsmythos (SDDL)

Welche Berechtigung gewinnt, wenn ich bei einem Windows Ordner Zulassen = Vollzugriff und Verweigern = Vollzugriff eingestellt habe? Die Verweigern-Berechtigung würden Sie vermutlich sagen. In beinahe jedem Artikel, den ich über Berechtigungen lese, steht, dass die Berechtigung Verweigern vor Zulassen gilt. Wie kann es dann sein, dass ich eine Datei lesen kann, obwohl die Berechtigung für diese Datei Zulassen = Vollzugriff und Verweigern = Vollzugriff ist?

Uns wird immer wieder gesagt, dass die Verweigern-Berechtigung stärker ist, als die Zulassen-Berechtigung. So einfach ist es jedoch nicht. Am besten können wir es mit SDDL sehen.

Was ist SDDL

SDDL steht für Security descriptor definition language und ist eine Form, um Berechtigungen in Textform darzustellen. SDDL wird bei Windows beispielsweise im Hintergrund für die ACLs (Access Control List) in der Registry und bei NTFS verwendet.

Ein SDDL-Eintrag sieht wie folgt aus:

Teilen wir den SDDL-Eintrag mal auf, um diesen besser zu lesen. Ein SDDL-Eintrag besteht aus mehreren Bereichen.

2.1.1. O Besitzer (Owner)

  • SID (Eindeutige ID des Benutzers)

O:S-1-5-21-4116322834-1022833452-971453019-1001

2.1.2. G Gruppe

  • Wird nicht mehr benötigt. Wird aus kompatibilitätsgründen noch verwendet.

G:S-1-5-21-4116322834-1022833452-971453019-513

2.1.3. D DACL

  • P DACL geschützt
  • AI Vererbung aktiviert
  • Access Control Entry (ACE)
    • ACE-Typ (allow/deny/audit)
    • ACE-Flags (Vererbungs- und Überwachungseinstellungen)
    • Berechtigung (Liste der Berechtigungen)
    • Objekt-Typ
    • Vererbter Objekt-Typ
    • Berechtigter

D:PAI(A;;FA;;;SY)(A;;FA;;;BU)

Es gibt noch viele weitere. Weitere Informationen zu SDDL finden Sie hier.

3. Beispiel

Spielen wir ein bisschen mit den Berechtigungen. Wir haben eine Datei mit der Berechtigung Zulassen = Vollzugriff für alle Benutzer. Im Windows Explorer sieht die Berechtigung wie folgt aus.

Jetzt exportieren wir die Berechtigungen der Datei topsecret.txt mit icacls.exe in die Datei perm.txt. Mit icacls.exe können beispielsweise die Berechtigungen von Dateien und Ordnern angezeigt und geändert werden. Icacls.exe wurde mit Windows Server 2003 eingeführt und ist seitdem auf jedem Windows System installiert. Die Anwendung ersetzte cacls.exe.

In der perm.txt sehen wir den SDDL-Eintrag für die Berechtigung der Datei topsecret.txt

Um den Zugriff auf die Datei zu verweigern, fügen wir hinter den aktuellen SDDL-Eintrag noch (D;;FA;;;BU) ein. Jetzt sieht die Datei wie folgt aus.

Als nächstes schreiben wir die Berechtigung der Datei topsecret.txt mit der perm.txt-Datei neu.

Schauen wir uns die Berechtigungen nun im Windows Explorer an, haben wir für die Gruppe Benutzer Zulassen = Vollzugriff und Verweigern = Vollzugriff.

Und siehe da, wir können die Datei bearbeiten. Aber warum funktioniert das, wenn Verweigern stärker ist als Zulassen?

Nächster Versuch: Jetzt vertauschen wir die Einträge (A;;FA;;;BU) und (D;;FA;;;BU).

Jetzt haben wir keinen Zugriff mehr auf die Datei. Hier zeigt sich, dass es von der Reihenfolge abhängt und dass nicht immer Verweigern vor Zulassen zählt.

Werden die Berechtigungen über den Windows Explorer gepflegt, wird dieser Fall nicht eintreten, da der Windows Explorer auf die Reihenfolge achtet. D.h. dieser wird Verweigern immer vor Zulassen setzen. Ändern wir die Berechtigungen mit Skripten oder über die Befehlszeile, können diese Konstellationen eintreten und zu den oben gezeigten unerwünschten Nebeneffekten führen.

Quellen

icacls | Microsoft Docs
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/icacls

Informationen zum Autor: Marius Hamborgstrøm

Im Jahre 2014 ist es mir gelungen goSecurity von meinem Talent zu überzeugen. Als Experte für Penetration Tests konnte ich schon viele Schwachstellen aufdecken, bevor dies einem Hacker gelungen ist. Zudem bin ich für die Gestaltung und die Durchführung unserer goTraining-Kurse Hack to PROTECT (H2P), Hack to PROTECT [ADVANCED] (H2PA) und Windows Server Hardening (WSH) verantwortlich. Durch meine jahrelange Erfahrung als IT-Leiter einer mittelständischen Bank, kenne ich auch die Seite des Administrators und des IT-Managers in einer Umgebung mit hohen Sicherheitsanforderungen. Aus dieser Erfahrungskiste kann ich die Anforderungen unserer Kunden auch bei Audits und umfassenden Beratungen schnell verstehen und Sie zielgerichtet und praxisnah beraten. Jede Sicherheitslücke bei Ihnen zu finden, bevor dies jemand anderem gelingt, ist leider nicht immer realistisch. Und dennoch ist es mein Antrieb und mein Anspruch.