Darren Mar-Elia

Anmerkung: Aktualisiert am 30. März 2022

Auf einer vergangenen Hybrid Identity Protection Conference sprachen mehrere von uns über die anhaltende Nutzung von Active Directory als Gegenstand des Interesses bei Malware-Angriffen. Ob es nun darum geht, AD nach Informationen über privilegierten Zugriff zu durchsuchen, Benutzerkonten zu kompromittieren, die zu immer mehr Privilegien im AD führen, oder AD-Domänencontroller gezielt mit Ransomware anzugreifen - Active Directory ist heutzutage eine große Zielscheibe. Infolgedessen gibt es eine Menge Sicherheitsforschung und Diskussionen über die verschiedenen Wege zur Kompromittierung von AD. Eine Reihe von cleveren Methoden nutzt schlecht delegierte AD-Berechtigungen aus, um die Kontrolle über privilegierte AD-Sicherheitsprinzipale zu übernehmen. Eine dieser Methoden besteht darin, einen Punkt zu erreichen, an dem der Angreifer in der Umgebung bleiben kann, ohne entdeckt zu werden. Eine Möglichkeit, dies zu erreichen, besteht darin, ein privilegiertes Benutzerkonto im AD zu erstellen oder die Kontrolle darüber zu übernehmen und dieses Konto dann vor den neugierigen Augen der Administratoren zu verbergen.

Verwandte Lektüre

Wenn ein Angreifer beispielsweise über ausreichende Berechtigungen für ein Benutzerobjekt verfügt, kann er die Rechte des Benutzers übernehmen, einen Leseverweigerungs-ACE für alle Benutzer auf diesem Objekt setzen und das Objekt ist im Wesentlichen versteckt, wie hier gezeigt:

Abbildung 1: Ein Benutzer mit Leseverweigerung auf ihm

Sie können den Benutzer auch daran hindern, für andere Administratoren sichtbar zu sein, indem Sie die Berechtigung "Inhalte auflisten" für die versteckte OU "Jeder" im obigen Screenshot verweigern. Dies würde verhindern, dass ein normaler Administrator die Existenz dieses Benutzers überhaupt bemerkt und ein Angreifer könnte das Konto möglicherweise nutzen, ohne entdeckt (oder zumindest gefunden) zu werden.

Michael Dubinsky(@MichaelDubinsky), ein Freund von Semperis, hat einen großartigen Blog-Beitrag über dieses Phänomen des Versteckens geschrieben, zusammen mit einem PowerShell-Skript, mit dem Sie versteckte Benutzerobjekte aufspüren können, indem Sie die im AD RID-Pool verbliebenen relativen Identifikatoren (RIDs) aufzählen und dann versuchen, die SID jedes Objekts zu erreichen. Wenn eine nachgeschlagene SID mit einem Standard-LDAP-Aufruf nicht gefunden werden kann, zeigt das Skript an, dass Sie keinen Zugriff auf dieses Objekt haben, was auf ein verstecktes Objekt hindeuten könnte.

Unser CTO Guy Teverovsky hat einen alternativen Ansatz und ein Dienstprogramm entwickelt, AD Hidden Object Detectorentwickelt, das das Ziel, versteckte Active Directory-Objekte zu finden, mit einem neuartigen Ansatz erreicht. Er verwendet im Wesentlichen die gleichen API-Aufrufe wie unser Directory Services Protector Produkt verwendet, um AD auf der Ebene der Verzeichnisreplikation abzufragen. Dieser Aufruf auf unterer Ebene ermöglicht es uns, die Anzahl der Objekte zu ermitteln, die AD kennt, unabhängig von den für das Objekt geltenden ACLs, und diese mit der Anzahl der Objekte zu vergleichen, auf die wir Zugriffsrechte haben. Das Tool gibt dann alle Objekte zurück, die es über unseren Replikationsaufruf gefunden hat und die wir nicht über normale LDAP-Aufrufe gefunden haben. Das Dienstprogramm muss als privilegierter Benutzer in AD ausgeführt werden, findet aber problemlos mein Objekt "Hidden User", wie die folgende Ausgabe des Dienstprogramms zeigt.

Dienstprogramm für versteckte Active Directory-Objekte
Abbildung 2: Ausführen des AD Hidden Object Detector, um versteckte Objekte zu finden

Das Schöne an diesem Tool ist, dass es jede Art von versteckten Objekten finden kann - nicht nur Benutzerobjekte. Sie können das Dienstprogramm hier AD Hidden Object Detector herunterladen und es ausprobieren. Lassen Sie uns wissen, was Sie davon halten. Wenn Sie versteckte Active Directory-Objekte finden, ist es vielleicht an der Zeit, tiefer zu graben und zu sehen, wer sich dort versteckt!