Comment les adversaires obtiennent la persistance en utilisant AdminSDHolder et SDProp
Jun 16, 2023
Une fois qu'un adversaire a compromis des informations d'identification privilégiées, par exemple, en exploitant un chemin d'attaque, il veut s'assurer de ne pas perdre son emprise sur le domaine. C'est-à-dire, même si les comptes qu'ils ont compromis sont désactivés ou ont leurs mots de passe réinitialisés, ils veulent pouvoir facilement récupérer les droits d'Admin de Domaine.
Une manière d'obtenir cette persistance est d'exploiter les fonctionnalités de Active Directory qui sont destinées à protéger les comptes privilégiés : AdminSDHolder et SDProp. Cet article explique comment cette tactique fonctionne et comment se défendre contre elle.
Quels sont AdminSDHolder et SDProp ?
AdminSDHolder est un conteneur qui existe dans chaque domaine Active Directory dans un but spécial : la liste de contrôle d'accès (ACL) de l'objet AdminSDHolder est utilisée comme modèle pour copier les permissions à tous les groupes protégés dans Active Directory et leurs membres. (Les Protected groups sont ces groupes intégrés qui ont été identifiés comme nécessitant une sécurité supplémentaire, y compris les Domain Admins, Administrators, Enterprise Admins et Schema Admins.)
Le processus SDProp applique la liste de contrôle d'accès (ACL) de l'objet AdminSDHolder à tous les groupes protégés et leurs utilisateurs membres toutes les 60 minutes par défaut. Étant donné que l'ACL pour AdminSDHolder est conçu pour être très restrictif, ce processus aide normalement à renforcer la sécurité.
Cependant, si un attaquant modifie la liste de contrôle d'accès (ACL) pour AdminSDHolder, alors ces permissions d'accès modifiées seront automatiquement appliquées à tous les objets protégés à la place. Par exemple, un adversaire pourrait ajouter un compte utilisateur qu'il contrôle à la liste de contrôle d'accès AdminSDHolder et lui donner des permissions de contrôle total :
Même si un administrateur remarque une permission inappropriée sur un objet protégé particulier et la supprime, le processus SDProp réappliquera simplement l'ACL modifiée dans l'heure. En conséquence, cette stratégie aide les attaquants à accéder à des informations sensibles.
Évaluer votre risque en utilisant AdminCount
AdminCount est un attribut des objets Active Directory. Une valeur AdminCount de 1 indique que l'objet est (ou a été) membre d'au moins un groupe protégé. Par conséquent, en examinant tous les objets avec une valeur AdminCount de 1, vous aurez une idée de l'étendue qu'une attaque contre AdminSDHolder pourrait avoir sur votre environnement.
Cette analyse peut être réalisée facilement avec PowerShell et une opération de filtrage LDAP :
$ldapFilter = “(adminCount=l)”
$domain = New-Object System.DirectoryServices.DirectoryEntry
$search = New-Object System.DirectoryServices.DirectorySearcher
$search.SearchRoot = $domain
$search.PageSize = 1000
$search.Filter = $ldapFilter
$search.SearchScope = “Subtree”
$results = $search.FindAll()
foreach ($result in $results)
{
SuserEntry = $result.GetDirectoryEntry()
Write-host “Object Name = “ $userEntry.name
Write-host “Obect Class = “ $userEntry.objectClass
foreach($AdminCount in $userEntry.adminCount)
{
Write-host “AdminCount =” $AdminCount
Write-host “”
}
}
Il est important de noter que même si un utilisateur est retiré d'un groupe privilégié, sa valeur AdminCount reste à 1 ; cependant, il n'est plus considéré comme un objet protégé par Active Directory, donc l'ACL AdminSDHolder ne lui sera pas appliquée. Néanmoins, il est probable qu'une version des permissions AdminSDHolder soit toujours définie car l'héritage de ses permissions sera toujours désactivé, vestige de l'époque où il était protégé par les permissions AdminSDHolder. Par conséquent, il est toujours utile d'examiner ces objets et, dans la plupart des cas, d'activer l'héritage des permissions.
Protection contre l'abus d'AdminSDHolder
Seuls les utilisateurs disposant de droits administratifs peuvent modifier l'ACL AdminSDHolder, donc la meilleure façon de se protéger contre cette tactique de persistance est de prévenir la compromission des identifiants administratifs.
De plus, dans le cas où un compte administratif serait compromis, il est important de surveiller l'objet AdminSDHolder et de recevoir des alertes sur tout changement. Les modifications ne devraient jamais se produire, donc toute alerte mérite d'être immédiatement enquêtée et révoquée.
Il est également important de rendre compte régulièrement des objets avec une valeur AdminCount de 1. Si l'un de ces objets ne devrait pas avoir de droits administratifs, placez-le au bon endroit et assurez-vous qu'il hérite des permissions.
Comment Netwrix peut aider
La solution Netwrix Active Directory Security Solution peut soutenir les efforts de votre organisation pour se défendre contre les attaques qui abusent de AdminSDHolder et SDProp. En particulier, vous pouvez :
- Protégez les comptes privilégiés contre les compromissions afin qu'ils ne puissent pas être utilisés pour modifier AdminSDHolder.
- Détectez rapidement les comportements suspects indiquant un compromis d'identité.
- Surveillez l'objet AdminSDHolder et recevez des alertes sur tout changement le concernant.
- Identifiez et supprimez les permissions excessives pour limiter les dommages causés par des informations d'identification compromises.
- Restez informé de tout changement effectué dans votre environnement Active Directory grâce à des alertes en temps réel et des rapports détaillés.
Foire aux questions
Qu'est-ce que AdminSDHolder ?
AdminSDHolder est un objet conteneur qui est créé dans chaque domaine Active Directory. Sa liste de contrôle d'accès est automatiquement appliquée à tous les groupes protégés dans le domaine et à leurs membres.
Où se trouve AdminSDHolder ?
Le conteneur AdminSDHolder se trouve dans le conteneur Système (CN=Système). Vous pouvez le voir en activant les « Fonctions avancées » dans Active Directory Users and Computers (ADUC) console de gestion.
Qu'est-ce que AdminCount ?
AdminCount est un attribut des objets AD. Une valeur AdminCount de 1 indique que l'objet est (ou a été) membre d'au moins un groupe protégé.
Partager sur
En savoir plus
À propos de l'auteur
Jeff Warren
Directeur des produits
Jeff Warren supervise le portefeuille de produits Netwrix, apportant plus d'une décennie d'expérience dans la gestion et le développement de produits axés sur la sécurité. Avant de rejoindre Netwrix, Jeff dirigeait l'organisation des produits chez Stealthbits Technologies, où il a utilisé son expérience en tant qu'ingénieur logiciel pour développer des solutions de sécurité innovantes à l'échelle de l'entreprise. Avec une approche pratique et un don pour résoudre des défis de sécurité complexes, Jeff se concentre sur la création de solutions pratiques qui fonctionnent. Il est titulaire d'un BS en Systèmes d'Information de l'Université du Delaware.
En savoir plus sur ce sujet
Comment ajouter et supprimer des groupes AD et des objets dans des groupes avec PowerShell
Attributs Active Directory : Dernière connexion
Confiances dans Active Directory
Attaques de rançongiciels sur Active Directory
Comment créer, supprimer, renommer, désactiver et joindre des ordinateurs dans AD en utilisant PowerShell