Abusing Active Directory ACLs/ACEs
Cette page est principalement un résumé des techniques de https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces et https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges. Pour plus de détails, consultez les articles originaux.
Droits GenericAll sur l'utilisateur
Ce privilège accorde à un attaquant un contrôle total sur un compte utilisateur cible. Une fois que les droits GenericAll
sont confirmés en utilisant la commande Get-ObjectAcl
, un attaquant peut :
Changer le mot de passe de la cible : En utilisant
net user <nom_utilisateur> <mot_de_passe> /domain
, l'attaquant peut réinitialiser le mot de passe de l'utilisateur.Kerberoasting ciblé : Attribuer un SPN au compte de l'utilisateur pour le rendre kerberoastable, puis utiliser Rubeus et targetedKerberoast.py pour extraire et tenter de craquer les hachages de tickets de concession de ticket (TGT).
Ciblage de l'ASREPRoasting: Désactivez la pré-authentification pour l'utilisateur, rendant leur compte vulnérable à l'ASREPRoasting.
Droits GenericAll sur le groupe
Ce privilège permet à un attaquant de manipuler les appartenances à un groupe s'ils ont des droits GenericAll
sur un groupe comme Domain Admins
. Après avoir identifié le nom distinctif du groupe avec Get-NetGroup
, l'attaquant peut :
Ajouter Leur Propre Compte au Groupe Domain Admins : Cela peut être fait via des commandes directes ou en utilisant des modules comme Active Directory ou PowerSploit.
GenericAll / GenericWrite / Write on Computer/User
Posséder ces privilèges sur un objet ordinateur ou un compte utilisateur permet :
Délégation contrainte basée sur les ressources Kerberos : Permet de prendre le contrôle d'un objet ordinateur.
Informations d'identification fantômes : Utilisez cette technique pour vous faire passer pour un ordinateur ou un compte utilisateur en exploitant les privilèges pour créer des informations d'identification fantômes.
WriteProperty sur un groupe
Si un utilisateur a des droits WriteProperty
sur tous les objets pour un groupe spécifique (par exemple, Domain Admins
), ils peuvent :
S'ajouter au groupe Domain Admins : Réalisable en combinant les commandes
net user
etAdd-NetGroupUser
, cette méthode permet une élévation de privilèges au sein du domaine.
Auto-adhésion (Auto-adhésion) au groupe
Ce privilège permet aux attaquants de s'ajouter à des groupes spécifiques, tels que Domain Admins
, via des commandes qui manipulent directement l'appartenance au groupe. L'utilisation de la séquence de commandes suivante permet l'auto-ajout :
WriteProperty (Auto-adhésion)
Un privilège similaire, cela permet aux attaquants de s'ajouter directement à des groupes en modifiant les propriétés des groupes s'ils ont le droit WriteProperty
sur ces groupes. La confirmation et l'exécution de ce privilège sont effectuées avec :
ForceChangePassword
Détenir le ExtendedRight
sur un utilisateur pour User-Force-Change-Password
permet de réinitialiser les mots de passe sans connaître le mot de passe actuel. La vérification de ce droit et son exploitation peuvent être effectuées via PowerShell ou des outils en ligne de commande alternatifs, offrant plusieurs méthodes pour réinitialiser le mot de passe d'un utilisateur, y compris des sessions interactives et des commandes en une ligne pour les environnements non interactifs. Les commandes vont des invocations simples de PowerShell à l'utilisation de rpcclient
sur Linux, démontrant la polyvalence des vecteurs d'attaque.
WriteOwner sur un groupe
Si un attaquant découvre qu'il a des droits WriteOwner
sur un groupe, il peut changer la propriété du groupe pour la sienne. Cela est particulièrement impactant lorsque le groupe en question est Domain Admins
, car le changement de propriété permet d'avoir un contrôle plus large sur les attributs du groupe et ses membres. Le processus implique d'identifier le bon objet via Get-ObjectAcl
puis d'utiliser Set-DomainObjectOwner
pour modifier le propriétaire, soit par SID soit par nom.
GenericWrite sur l'utilisateur
Cette autorisation permet à un attaquant de modifier les propriétés de l'utilisateur. Plus précisément, avec l'accès GenericWrite
, l'attaquant peut modifier le chemin du script de connexion d'un utilisateur pour exécuter un script malveillant lors de la connexion de l'utilisateur. Cela est réalisé en utilisant la commande Set-ADObject
pour mettre à jour la propriété scriptpath
de l'utilisateur ciblé afin de pointer vers le script de l'attaquant.
GenericWrite sur un groupe
Avec ce privilège, les attaquants peuvent manipuler l'appartenance à un groupe, comme s'ajouter eux-mêmes ou d'autres utilisateurs à des groupes spécifiques. Ce processus implique la création d'un objet d'identification, l'utilisation de celui-ci pour ajouter ou supprimer des utilisateurs d'un groupe, et vérifier les changements d'appartenance avec des commandes PowerShell.
WriteDACL + WriteOwner
Posséder un objet AD et avoir des privilèges WriteDACL
dessus permet à un attaquant de s'octroyer des privilèges GenericAll
sur l'objet. Cela est réalisé grâce à la manipulation ADSI, permettant un contrôle total sur l'objet et la capacité de modifier ses appartenances de groupe. Malgré cela, des limitations existent lors de la tentative d'exploitation de ces privilèges en utilisant les cmdlets Set-Acl
/ Get-Acl
du module Active Directory.
Réplication sur le Domaine (DCSync)
L'attaque DCSync exploite des autorisations spécifiques de réplication sur le domaine pour imiter un contrôleur de domaine et synchroniser des données, y compris les informations d'identification des utilisateurs. Cette technique puissante nécessite des autorisations telles que DS-Replication-Get-Changes
, permettant aux attaquants d'extraire des informations sensibles de l'environnement AD sans accès direct à un contrôleur de domaine. En savoir plus sur l'attaque DCSync ici.
Délégation de GPO
Délégation de GPO
L'accès délégué pour gérer les objets de stratégie de groupe (GPO) peut présenter des risques de sécurité importants. Par exemple, si un utilisateur tel que offense\spotless
se voit déléguer des droits de gestion des GPO, il peut disposer de privilèges tels que WriteProperty, WriteDacl et WriteOwner. Ces autorisations peuvent être abusées à des fins malveillantes, comme identifié en utilisant PowerView : bash Get-ObjectAcl -ResolveGUIDs | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
Énumérer les autorisations des GPO
Pour identifier les GPO mal configurés, les cmdlets de PowerSploit peuvent être enchaînés. Cela permet de découvrir les GPO que peut gérer un utilisateur spécifique : powershell Get-NetGPO | %{Get-ObjectAcl -ResolveGUIDs -Name $_.Name} | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
Ordinateurs avec une politique donnée appliquée : Il est possible de déterminer quels ordinateurs sont affectés par une GPO spécifique, ce qui aide à comprendre l'ampleur de l'impact potentiel. powershell Get-NetOU -GUID "{DDC640FF-634A-4442-BC2E-C05EED132F0C}" | % {Get-NetComputer -ADSpath $_}
Politiques appliquées à un ordinateur donné : Pour voir quelles politiques sont appliquées à un ordinateur particulier, des commandes comme Get-DomainGPO
peuvent être utilisées.
OUs avec une politique donnée appliquée : Identifier les unités organisationnelles (OUs) affectées par une politique donnée peut se faire en utilisant Get-DomainOU
.
Abus des GPO - New-GPOImmediateTask
Les GPO mal configurés peuvent être exploités pour exécuter du code, par exemple, en créant une tâche planifiée immédiate. Cela peut être fait pour ajouter un utilisateur au groupe des administrateurs locaux sur les machines affectées, élevant considérablement les privilèges :
Module GroupPolicy - Abus de GPO
Le module GroupPolicy, s'il est installé, permet la création et le lien de nouvelles GPO, et le paramétrage des préférences telles que les valeurs du registre pour exécuter des portes dérobées sur les ordinateurs affectés. Cette méthode nécessite la mise à jour de la GPO et la connexion d'un utilisateur à l'ordinateur pour l'exécution :
SharpGPOAbuse - Abus de GPO
SharpGPOAbuse propose une méthode pour abuser des GPO existantes en ajoutant des tâches ou en modifiant des paramètres sans avoir besoin de créer de nouvelles GPO. Cet outil nécessite la modification des GPO existantes ou l'utilisation des outils RSAT pour en créer de nouvelles avant d'appliquer des modifications :
Forcer la mise à jour de la stratégie
Les mises à jour des GPO se produisent généralement toutes les 90 minutes. Pour accélérer ce processus, surtout après avoir implémenté un changement, la commande gpupdate /force
peut être utilisée sur l'ordinateur cible pour forcer une mise à jour immédiate de la stratégie. Cette commande garantit que toutes les modifications apportées aux GPO sont appliquées sans attendre le prochain cycle de mise à jour automatique.
Sous le capot
Lors de l'inspection des tâches planifiées pour une GPO donnée, comme la Politique mal configurée
, l'ajout de tâches telles que evilTask
peut être confirmé. Ces tâches sont créées à travers des scripts ou des outils en ligne de commande visant à modifier le comportement du système ou à escalader les privilèges.
La structure de la tâche, comme indiqué dans le fichier de configuration XML généré par New-GPOImmediateTask
, décrit les spécificités de la tâche planifiée - y compris la commande à exécuter et ses déclencheurs. Ce fichier représente comment les tâches planifiées sont définies et gérées au sein des GPO, offrant une méthode pour exécuter des commandes ou des scripts arbitraires dans le cadre de l'application des politiques.
Utilisateurs et Groupes
Les GPO permettent également la manipulation des adhésions d'utilisateurs et de groupes sur les systèmes cibles. En éditant directement les fichiers de politique des Utilisateurs et Groupes, les attaquants peuvent ajouter des utilisateurs à des groupes privilégiés, tels que le groupe local administrateurs
. Cela est possible grâce à la délégation des autorisations de gestion des GPO, qui permet la modification des fichiers de politique pour inclure de nouveaux utilisateurs ou modifier les adhésions de groupe.
Le fichier de configuration XML pour les Utilisateurs et Groupes décrit comment ces changements sont implémentés. En ajoutant des entrées à ce fichier, des utilisateurs spécifiques peuvent se voir accorder des privilèges élevés sur l'ensemble des systèmes affectés. Cette méthode offre une approche directe pour l'escalade de privilèges à travers la manipulation des GPO.
De plus, d'autres méthodes pour exécuter du code ou maintenir la persistance, telles que l'utilisation de scripts de connexion/déconnexion, la modification des clés de registre pour les autoruns, l'installation de logiciels via des fichiers .msi, ou l'édition des configurations de service, peuvent également être envisagées. Ces techniques offrent divers moyens de maintenir l'accès et de contrôler les systèmes cibles à travers l'abus des GPO.
Références
Last updated