Darren Mar-Elia

Blick aus 10.000 Fuß Höhe:

Viele von uns sind mit der Vielzahl von Tools, Angriffen und Angreifern vertraut, die sich auf das Eindringen in Active Directory konzentrieren. Mit der Veröffentlichung von DCShadow im Jahr 2018 wurde ein weiterer hocheffektiver Vektor zu dieser immer länger werdenden Liste hinzugefügt. Dem Forschungsteam ist es zu verdanken, dass neben dem Exploit auch erörtert wurde, wie der Angriff durch eine verstärkte Überwachung und Verwaltung des Active Directory verstanden und möglicherweise entschärft werden kann. Wie bei vielen Angriffen geht es jedoch nicht nur darum, zu verstehen, WIE man getroffen wurde... sondern auch woher. Hierauf hat sich das Semperis-Forschungsteam in den letzten Jahren konzentriert. Wir sind jetzt in der Lage, ein viel genaueres Bild der Unternehmenslandschaft zu zeichnen und eindeutig und genau die Client-Rechner zu identifizieren, die das Angriffstool gegen das Active Directory Ihres Unternehmens verwendet haben oder verwenden.

Hintergrund:

Mimikatz, das Tool zur Ausnutzung von Zugangsdaten, bietet eine Funktion namens "DCShadow". Sie können sich DCShadow als das Gegenteil des DCSync-Befehls vorstellen. Während DCSync Active Directory (AD) dazu zwingen kann, Benutzerkonten und deren Passwort-Hashes mit einem Angreifer zu synchronisieren, ermöglicht DCShadow einem Angreifer, Änderungen in AD einzuschleusen. Dazu wird das Verhalten eines Domänencontrollers simuliert, bei dem es sich im Grunde um jeden kompromittierten Rechner innerhalb einer Active Directory-Domäne handelt. Es ist erwähnenswert, dass DCShadow ein Domain Persistence Tool ist. Es setzt voraus, dass der Angreifer bereits Domänen-Admin oder einen gleichwertigen Zugriff auf eine AD-Domäne hat, bevor es verwendet werden kann. Sobald diese Zugriffsebene jedoch erreicht ist, ist es ein leistungsfähiges und unauffälliges Tool zum Erstellen und Aktualisieren von Objekten im AD, um Hintertüren zu erstellen, den Zugriff auf reguläre Konten zu erhöhen und auf andere Weise in der Zielumgebung Fuß zu fassen und die Kontrolle auszuüben.

Erkennbarkeit

Das Schwierige an DCShadow ist, dass es die normalen Mechanismen umgeht, mit denen Änderungen an AD überprüft werden (d.h. normalerweise über das Windows-Sicherheitsereignisprotokoll auf Domänencontrollern), so dass Sie nicht ohne weiteres feststellen können, wann es verwendet wird. Und wenn der Angreifer heimlich Änderungen vornimmt, nach denen Sie nicht suchen (z.B. wenn er die Enterprise Admins SID in das sidHistory-Attribut eines ansonsten unprivilegierten Benutzers einfügt), kann es sehr schwierig sein, diese Hintertüren zu entdecken. Wenn DCShadow ausgeführt wird, wird beispielsweise ein Objekt der Klasse Server vorübergehend dem Konfigurationsbenennungskontext in einem bestimmten Forest hinzugefügt, um andere Domänencontroller glauben zu lassen, dass der gefälschte Server ein echter DC ist. Dieses Objekt wird jedoch schnell wieder entfernt, wenn DCShadow seinen Lauf beendet hat. Zum Glück für den Verteidiger stellt sich heraus, dass DCShadow einige Fingerabdrücke hinterlässt, wenn es auf einem Host ausgeführt wird.

Entdeckung der DCShadow-Verwendung

Zunächst ein wenig Hintergrundwissen. Ein "normaler" Domain Controller registriert eine Reihe von Kerberos Service Principal Names (SPNs), wenn er zu einem DC befördert wird. Einer davon ist ein GUID-basierter SPN, wie hier gezeigt:

Dieser GUID-basierte SPN hat eine interessante Eigenschaft. Wenn wir sie genau betrachten, sehen wir, dass es tatsächlich zwei GUIDs in der SPN gibt. Die erste, nämlich E3514235-4B06-11D1-AB

04-00C04FC2DCD2, ist eine so genannte Well-Known GUID (WKGUID) und wird von jedem Domänencontroller in jedem AD Forest auf die gleiche Weise registriert. Die zweite GUID, in unserem Beispiel hier: 8b699bb0-d35e-4199-8dd4-6a296c5fc7db, ist eindeutig für einen bestimmten DC.

[semperis-mid-scroll-cta]

Wie hilft uns das nun bei der DCShadow-Erkennung? Nun, es stellt sich heraus, dass DCShadow, wenn es auf einem bestimmten Host läuft, diesem Rechner einige SPNs hinzufügt, damit andere DCs ihn für einen DC halten. Einer dieser SPNs ist der WKGUID-basierte SPN. Leider räumt es nicht hinter sich auf, wenn es nicht mehr läuft (Gott sei Dank, ein unordentlicher DCShadow). Das Ergebnis ist, dass jeder Host, der DCShadow ausgeführt hat, weiterhin den WKGUID SPN im Attribut servicePrincipalName seines Computerkontos speichert.

Ein Beispiel dafür sehen Sie im zweiten Screenshot unten. In diesem Beispiel haben wir DCShadow wiederholt von diesem Host aus ausgeführt - beachten Sie, wie viele der WKGUID SPNs in der Liste erscheinen:

Die gute Nachricht ist, dass wir diese Informationen nutzen können, um Hosts im AD zu unterscheiden, die DCShadow ausgeführt haben. Erstens wissen wir, dass nur *legitime* DCs diesen WKGUID SPN in ihrem Rechnerkonto haben sollten. Das ist einfach genug, um danach zu suchen, aber wir können unsere Suche weiter eingrenzen, indem wir auch nach einem anderen SPN suchen, von dem wir wissen, dass er NICHT auf einem anderen Rechner als einem legitimen DC sein SOLLTE. Das Ergebnis unserer Suche ist die folgende LDAP-Abfrage:

"(&(objectClass=computer)(servicePrincipalName=E3514235-4B06-11D1-AB04-00C04FC2DCD2*)(!(servicePrincipalName=ldap*)))"

Diese Abfrage sucht nach allen Computerobjekten, deren SPN-Attribut die WKGUID SPN enthält (wir verwenden hier einen Platzhalter, um den eindeutigen GUID-Teil dieser SPN auszuschließen) UND enthält nicht die LDAP SPN, die jeder legitime DC enthält.

Im Einklang mit der heimlichen Natur von DCShadow wird das Hinzufügen dieses WKGUID SPN zum Maschinenkonto des gefälschten DCs nicht im Sicherheitsereignisprotokoll des echten DCs protokolliert, der die Replikationsanfrage vom gefälschten DC entgegennimmt.

Zusammenfassung

In der Annahme, dass DCShadow nicht so bald "aufräumt", ermöglicht uns diese Erkennung, schnell alle Rechner zu finden, die als Host für DCShadow-Injektionen genutzt werden, sie angemessen unter Quarantäne zu stellen und vollständige forensische Untersuchungen und IR-Prozesse durchzuführen, BEVOR sie weiteren Schaden anrichten können.

Demonstration eines DCShadow-Angriffs

DCShadow nutzt einen Schalter im Dienstprogramm Mimikatz aus, der es privilegierten Benutzern ermöglicht, unbemerkt bösartige Änderungen in Active Directory vorzunehmen. Sehen Sie sich diese Videopräsentation an, um zu erfahren, wie Sie bösartige Domänencontroller aufspüren, unerwünschte Änderungen schnell rückgängig machen und die Sicht auf Ihr SIEM wiederherstellen können. Wenn Sie Fragen haben, zögern Sie nicht, die Mitarbeiter von Semperis zu kontaktieren.