Möchten Sie das Windows-Zugriffskontrollsubsystem in zwei Stunden erlernen? Darüber hinaus, um dieses Thema zu kennen, wie es keiner Ihrer Lehrer kennt? Sie fragen sich, wie Sie die Windows-API-Funktion mit dem längsten Namen verwenden können - AccessCheckByTypeResultListAndAuditAlarmByHandle? Und sehen Sie den Code, der undokumentierte Windows-Strukturen erstellt? Dann bist du da!
Der Artikel enthält eine Beschreibung der Bibliothek und eine Reihe von Tests, mit denen jeder Benutzer das Windows-Zugriffskontrollsubsystem mit relativ geringen Anfangskenntnissen so vollständig wie möglich untersuchen kann. Die Probleme der Arbeit mit DACL, SACL, Conditional ACE, der obligatorischen Integritätsprüfung und vielen anderen werden berücksichtigt. Mithilfe von Tests kann der Benutzer die Eingabedaten willkürlich ändern und unabhängig voneinander ändern, um die für einen bestimmten Benutzer erforderlichen Themen genauer zu untersuchen. Mit der vorgestellten Bibliothek können Sie alle internen Strukturen des Windows-Sicherheitssubsystems analysieren und erstellen sowie "Zugriffstoken" mit beliebigen Anfangsdaten erstellen.
Vor langer Zeit habe ich angefangen, etwas über das Windows-Sicherheitssubsystem zu lernen. Ich habe ausgezeichnete Bücher gelesen, aber jedes Buch sollte zuerst durch Übung gesichert werden. So begann ich meine praktischen Experimente. Zunächst begann ich mit einer Standardtechnik: Erstellen einer bestimmten Dateistruktur mit mehreren verschachtelten Ebenen (Verzeichnissen). Zu Beginn der Studie reichte ein solcher "Versuchsort" aus. Als ich mich jedoch mit DAC (Dynamic Access Control) beschäftigte, wurde die Test- "Site" viel komplizierter: Ich musste bereits mehrere virtuelle Maschinen bereitstellen, von denen eine Windows Server und die andere ein reguläres Client-Betriebssystem war . Hier musste bereits der Prozess der Konfiguration vieler Windows Server-Subsysteme untersucht werden, was etwas von der ursprünglichen Aufgabe ablenkte: der Untersuchung des Sicherheitssubsystems.Am Ende hatte ich eine ziemlich entwickelte Bibliothek geschrieben, die es mir ermöglichte, alle für mich geeigneten Werte aller Strukturen des Windows-Sicherheitssubsystems in einer für mich geeigneten Form abzurufen und für die meisten von ihnen auch aus zuvor gespeicherten Werten zu erstellen . Aber eines Tages kam mir eine Idee, die meinen gesamten Ansatz, dieses Thema zu studieren, radikal veränderte (und stark vereinfachte).
, , , , , . Microsoft .
, Windows – : «» (access token) « » (security descriptor a.k.a. SD). , , – . /, Windows , . : 1) ; 2) ; 3) . , - – . , , .
- . , «Run As Administrator». Visual Studio. , - : SeCreateTokenPrivilege (Create a token object), SeTcbPrivilege (Act as part of the operating system), SeImpersonatePrivilege (Impersonate a client after authentication).
C++. « » , . . . , , « , , copyright». – - , Windows Access Control, , , .
, :
1. Windows ?
2. Windows API - AccessCheckByTypeResultListAndAuditAlarmByHandle?
, AccessCheckByTypeResultListAndAuditAlarmByHandle. , . AccessCheckByTypeResultListAndAuditAlarmByHandle . , , , .
3. , Windows?
Hier unter diesem Link finden Sie eine Funktion, die eine "binäre Darstellung" für den Datentyp CLAIM_SECURITY_ATTRIBUTE_V1 erstellt. Die Struktur selbst ist in [MS-DTYP] dokumentiert, es gibt jedoch keine Beschreibung, wie sie in Binärdaten dargestellt wird. Diese Struktur wird benötigt, um die "Ressourcenattribute" (das Konzept bezieht sich auf DAC, Dynamic Access Control) für den Sicherheitsdeskriptor festzulegen (z. B. um die Ressourcen für eine Datei festzulegen).