Abusing Active Directory ACLs/ACEs
Last updated
Last updated
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Diese Seite ist hauptsächlich eine Zusammenfassung der Techniken von https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces und https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges. Für weitere Details, siehe die Originalartikel.
Dieses Privileg gewährt einem Angreifer die volle Kontrolle über ein Zielbenutzerkonto. Sobald die GenericAll
-Rechte mit dem Befehl Get-ObjectAcl
bestätigt sind, kann ein Angreifer:
Das Passwort des Ziels ändern: Mit net user <username> <password> /domain
kann der Angreifer das Passwort des Benutzers zurücksetzen.
Gezieltes Kerberoasting: Weisen Sie dem Benutzerkonto ein SPN zu, um es kerberoastable zu machen, und verwenden Sie dann Rubeus und targetedKerberoast.py, um die Ticket-Granting-Ticket (TGT)-Hashes zu extrahieren und zu versuchen, sie zu knacken.
Targeted ASREPRoasting: Deaktivieren Sie die Vor-Authentifizierung für den Benutzer, wodurch sein Konto anfällig für ASREPRoasting wird.
Dieses Privileg ermöglicht es einem Angreifer, Gruppenmitgliedschaften zu manipulieren, wenn er GenericAll
-Rechte auf einer Gruppe wie Domain Admins
hat. Nachdem der Angreifer den distinguished name der Gruppe mit Get-NetGroup
identifiziert hat, kann er:
Sich Selbst zur Domain Admins Gruppe Hinzufügen: Dies kann über direkte Befehle oder mithilfe von Modulen wie Active Directory oder PowerSploit erfolgen.
Das Halten dieser Berechtigungen auf einem Computerobjekt oder einem Benutzerkonto ermöglicht:
Kerberos Resource-based Constrained Delegation: Ermöglicht die Übernahme eines Computerobjekts.
Shadow Credentials: Verwenden Sie diese Technik, um ein Computer- oder Benutzerkonto zu impersonieren, indem Sie die Berechtigungen zum Erstellen von Shadow Credentials ausnutzen.
Wenn ein Benutzer WriteProperty
-Rechte auf allen Objekten für eine bestimmte Gruppe (z. B. Domain Admins
) hat, kann er:
Sich Selbst zur Domain Admins Gruppe Hinzufügen: Erreichbar durch die Kombination der Befehle net user
und Add-NetGroupUser
, ermöglicht diese Methode die Eskalation von Berechtigungen innerhalb der Domäne.
Dieses Privileg ermöglicht Angreifern, sich selbst zu bestimmten Gruppen hinzuzufügen, wie z.B. Domain Admins
, durch Befehle, die die Gruppenmitgliedschaft direkt manipulieren. Die Verwendung der folgenden Befehlssequenz ermöglicht die Selbsthinzufügung:
Ein ähnliches Privileg, das Angreifern erlaubt, sich direkt zu Gruppen hinzuzufügen, indem sie die Gruppenattribute ändern, wenn sie das Recht WriteProperty
für diese Gruppen haben. Die Bestätigung und Ausführung dieses Privilegs erfolgt mit:
Das Halten des ExtendedRight
für einen Benutzer für User-Force-Change-Password
ermöglicht Passwortzurücksetzungen, ohne das aktuelle Passwort zu kennen. Die Überprüfung dieses Rechts und dessen Ausnutzung kann über PowerShell oder alternative Befehlszeilentools erfolgen, die mehrere Methoden zum Zurücksetzen des Passworts eines Benutzers anbieten, einschließlich interaktiver Sitzungen und Einzeiler für nicht-interaktive Umgebungen. Die Befehle reichen von einfachen PowerShell-Aufrufen bis hin zur Verwendung von rpcclient
auf Linux, was die Vielseitigkeit der Angriffsvektoren demonstriert.
Wenn ein Angreifer feststellt, dass er WriteOwner
-Rechte über eine Gruppe hat, kann er die Eigentümerschaft der Gruppe auf sich selbst ändern. Dies ist besonders wirkungsvoll, wenn es sich bei der betreffenden Gruppe um Domain Admins
handelt, da die Änderung der Eigentümerschaft eine umfassendere Kontrolle über die Gruppenattribute und die Mitgliedschaft ermöglicht. Der Prozess umfasst die Identifizierung des richtigen Objekts über Get-ObjectAcl
und dann die Verwendung von Set-DomainObjectOwner
, um den Eigentümer entweder durch SID oder Namen zu ändern.
Diese Berechtigung ermöglicht es einem Angreifer, Benutzerattribute zu ändern. Insbesondere kann der Angreifer mit GenericWrite
-Zugriff den Anmeldeskriptpfad eines Benutzers ändern, um ein bösartiges Skript bei der Benutzeranmeldung auszuführen. Dies wird erreicht, indem der Befehl Set-ADObject
verwendet wird, um die scriptpath
-Eigenschaft des Zielbenutzers auf das Skript des Angreifers zu aktualisieren.
Mit diesem Privileg können Angreifer die Gruppenmitgliedschaft manipulieren, indem sie sich selbst oder andere Benutzer zu bestimmten Gruppen hinzufügen. Dieser Prozess umfasst das Erstellen eines Anmeldeobjekts, die Verwendung dieses Objekts zum Hinzufügen oder Entfernen von Benutzern aus einer Gruppe und die Überprüfung der Mitgliedschaftsänderungen mit PowerShell-Befehlen.
Das Besitzen eines AD-Objekts und das Vorhandensein von WriteDACL
-Befugnissen darauf ermöglicht es einem Angreifer, sich selbst GenericAll
-Befugnisse über das Objekt zu gewähren. Dies wird durch ADSI-Manipulation erreicht, die vollständige Kontrolle über das Objekt und die Möglichkeit zur Änderung seiner Gruppenmitgliedschaften ermöglicht. Trotz dessen gibt es Einschränkungen, wenn versucht wird, diese Berechtigungen mit den Set-Acl
/ Get-Acl
Cmdlets des Active Directory-Moduls auszunutzen.
Der DCSync-Angriff nutzt spezifische Replikationsberechtigungen in der Domäne, um einen Domänencontroller zu imitieren und Daten, einschließlich Benutzeranmeldeinformationen, zu synchronisieren. Diese leistungsstarke Technik erfordert Berechtigungen wie DS-Replication-Get-Changes
, die es Angreifern ermöglichen, sensible Informationen aus der AD-Umgebung zu extrahieren, ohne direkten Zugriff auf einen Domänencontroller zu haben. Erfahren Sie hier mehr über den DCSync-Angriff.
Delegierter Zugriff zur Verwaltung von Gruppenrichtlinienobjekten (GPOs) kann erhebliche Sicherheitsrisiken darstellen. Wenn beispielsweise ein Benutzer wie offense\spotless
die Rechte zur Verwaltung von GPOs delegiert bekommt, kann er über Berechtigungen wie WriteProperty, WriteDacl und WriteOwner verfügen. Diese Berechtigungen können für böswillige Zwecke missbraucht werden, wie mit PowerView identifiziert: bash Get-ObjectAcl -ResolveGUIDs | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
Um falsch konfigurierte GPOs zu identifizieren, können die Cmdlets von PowerSploit miteinander verknüpft werden. Dies ermöglicht die Entdeckung von GPOs, für die ein bestimmter Benutzer Berechtigungen zur Verwaltung hat: powershell Get-NetGPO | %{Get-ObjectAcl -ResolveGUIDs -Name $_.Name} | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
Computer mit einer bestimmten Richtlinie angewendet: Es ist möglich zu ermitteln, auf welche Computer eine bestimmte GPO angewendet wird, was hilft, den Umfang der potenziellen Auswirkungen zu verstehen. powershell Get-NetOU -GUID "{DDC640FF-634A-4442-BC2E-C05EED132F0C}" | % {Get-NetComputer -ADSpath $_}
Richtlinien, die auf einen bestimmten Computer angewendet werden: Um zu sehen, welche Richtlinien auf einen bestimmten Computer angewendet werden, können Befehle wie Get-DomainGPO
verwendet werden.
OUs mit einer bestimmten Richtlinie angewendet: Die Identifizierung von organisatorischen Einheiten (OUs), die von einer bestimmten Richtlinie betroffen sind, kann mit Get-DomainOU
erfolgen.
Falsch konfigurierte GPOs können ausgenutzt werden, um Code auszuführen, beispielsweise durch das Erstellen einer sofortigen geplanten Aufgabe. Dies kann durchgeführt werden, um einen Benutzer zur lokalen Administratorgruppe auf betroffenen Maschinen hinzuzufügen, was die Berechtigungen erheblich erhöht:
Das GroupPolicy-Modul, falls installiert, ermöglicht die Erstellung und Verknüpfung neuer GPOs sowie das Setzen von Präferenzen wie Registrierungswerten, um Backdoors auf betroffenen Computern auszuführen. Diese Methode erfordert, dass die GPO aktualisiert wird und ein Benutzer sich am Computer anmeldet, um die Ausführung zu ermöglichen:
SharpGPOAbuse bietet eine Methode, um bestehende GPOs zu missbrauchen, indem Aufgaben hinzugefügt oder Einstellungen geändert werden, ohne neue GPOs erstellen zu müssen. Dieses Tool erfordert die Modifikation bestehender GPOs oder die Verwendung von RSAT-Tools, um neue zu erstellen, bevor Änderungen angewendet werden:
GPO-Updates erfolgen typischerweise alle 90 Minuten. Um diesen Prozess zu beschleunigen, insbesondere nach der Implementierung einer Änderung, kann der Befehl gpupdate /force
auf dem Zielcomputer verwendet werden, um eine sofortige Richtlinienaktualisierung zu erzwingen. Dieser Befehl stellt sicher, dass alle Änderungen an GPOs angewendet werden, ohne auf den nächsten automatischen Aktualisierungszyklus zu warten.
Bei der Überprüfung der geplanten Aufgaben für ein bestimmtes GPO, wie die Misconfigured Policy
, kann die Hinzufügung von Aufgaben wie evilTask
bestätigt werden. Diese Aufgaben werden durch Skripte oder Befehlszeilentools erstellt, die darauf abzielen, das Systemverhalten zu ändern oder Berechtigungen zu eskalieren.
Die Struktur der Aufgabe, wie sie in der von New-GPOImmediateTask
generierten XML-Konfigurationsdatei dargestellt ist, beschreibt die Einzelheiten der geplanten Aufgabe - einschließlich des auszuführenden Befehls und seiner Auslöser. Diese Datei zeigt, wie geplante Aufgaben innerhalb von GPOs definiert und verwaltet werden, und bietet eine Methode zur Ausführung beliebiger Befehle oder Skripte im Rahmen der Durchsetzung von Richtlinien.
GPOs ermöglichen auch die Manipulation von Benutzer- und Gruppenmitgliedschaften auf Zielsystemen. Durch das direkte Bearbeiten der Benutzer- und Gruppenrichtliniendateien können Angreifer Benutzer zu privilegierten Gruppen, wie der lokalen administrators
-Gruppe, hinzufügen. Dies ist durch die Delegation von GPO-Verwaltungsberechtigungen möglich, die die Modifikation von Richtliniendateien erlaubt, um neue Benutzer hinzuzufügen oder Gruppenmitgliedschaften zu ändern.
Die XML-Konfigurationsdatei für Benutzer und Gruppen beschreibt, wie diese Änderungen implementiert werden. Durch das Hinzufügen von Einträgen zu dieser Datei können bestimmten Benutzern erhöhte Berechtigungen auf betroffenen Systemen gewährt werden. Diese Methode bietet einen direkten Ansatz zur Eskalation von Berechtigungen durch GPO-Manipulation.
Darüber hinaus können auch zusätzliche Methoden zur Ausführung von Code oder zur Aufrechterhaltung der Persistenz in Betracht gezogen werden, wie z.B. die Nutzung von Anmelde-/Abmeldeskripten, das Ändern von Registrierungsschlüsseln für Autoruns, das Installieren von Software über .msi-Dateien oder das Bearbeiten von Dienstkonfigurationen. Diese Techniken bieten verschiedene Möglichkeiten, um den Zugriff aufrechtzuerhalten und Zielsysteme durch den Missbrauch von GPOs zu kontrollieren.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)