La délégation sans contraintes représente un risque sérieux pour la cybersécurité. En prenant des mesures pour abuser des contrôles de délégation Active Directory appliqués aux objets utilisateurs et ordinateurs dans un environnement AD, un attaquant peut se déplacer latéralement et même prendre le contrôle du domaine.
Contenu connexe sélectionné :
Cet article de blog explore ce domaine d'attaque (délégation non contrainte) et propose aux équipes de sécurité et aux administrateurs des stratégies efficaces pour atténuer ce risque de sécurité.
Qu'est-ce que la délégation sans contrainte ?
La délégation permet à un utilisateur ou à un ordinateur d'usurper l'identité d'un autre compte afin d'accéder à des ressources (telles que des serveurs de bases de données en back-end). La délégation a plusieurs applications pratiques, que Microsoft aborde dans cet article de blog.
En utilisant l'onglet Délégation sur un compte d'utilisateur ou d'ordinateur, vous pouvez configurer soit une délégation non contrainte soit une délégation contrainte :
- En sélectionnant « Faire confiance à cet ordinateur pour la délégation à n'importe quel service (Kerberos delegation uniquement), » vous activez unconstrained
- Alternativement, vous pouvez restreindre les services que l'utilisateur ou l'ordinateur peut usurper en spécifiant des noms de principal de service (SPN) particuliers, ce qui constitue une constrained delegation.
Notez qu'une autre option est la resource-based constrained delegation (RBCD), dans laquelle la délégation est configurée sur la ressource, plutôt que sur les comptes accédant à la ressource. RBCD peut être mis en place à l'aide de Windows PowerShell.
Quels sont les risques de la délégation sans contraintes ?
Plusieurs attaques peuvent être perpétrées contre la délégation non contrainte : certaines sont couvertes dans ce billet de blog par harmj0y et Sean Metcalf en décrit d'autres. Explorons-en quelques-unes.
Exemple 1 : Abuser de la délégation non contrainte pour compromettre une forêt AD entière
Des chercheurs en sécurité ont montré comment un attaquant qui compromet une machine avec une délégation non contrainte dans une forêt peut compromettre une autre forêt et tous les domaines qu'elle contient. Si vous avez une confiance bidirectionnelle en place, un attaquant peut utiliser le bogue de l'imprimante MS-RPRN pour amener un DC à renvoyer des informations d'authentification à l'attaquant, lui permettant d'utiliser DCSync pour compromettre le domaine de confiance. Par exemple, si votre entreprise a acquis une petite entreprise et a joint son domaine au vôtre, un attaquant qui compromet un système dans le petit environnement pourrait prendre le contrôle de toute la forêt de votre entreprise, ce qui n'est définitivement pas bon.
Un article de la KB a été publié pour fournir un correctif à ce bogue, et dans Windows Server 2012 et versions ultérieures, il existe un paramètre de sécurité pour l'empêcher, mais il se peut qu'il ne soit pas activé par défaut.
Exemple 2 : Exploiter la délégation non contrainte pour permettre le mouvement latéral
Voici un autre scénario. Si la délégation non restreinte est activée pour un ordinateur, alors chaque fois qu'un compte se connecte à cet ordinateur, son ticket-granting ticket (TGT) du Key Distribution Center (KDC) est stocké en mémoire pour une utilisation ultérieure par l'ordinateur. Si la machine est compromise, l'adversaire peut obtenir ce TGT et l'utiliser à mauvais escient pour causer beaucoup de dégâts — surtout si le TGT appartient à un utilisateur hautement privilégié.
Par exemple, supposons qu'un administrateur de domaine accède à un ordinateur particulier via le système de fichiers Internet commun (CIFS) en accédant à un dossier partagé. Sans la délégation non restreinte activée, seul le serveur d'émission de tickets (TGS) serait stocké en mémoire ; ce ticket ne donne accès qu'au service CIFS sur la machine locale, donc un adversaire ne peut pas l'utiliser pour se déplacer latéralement. Nous pouvons voir cela en utilisant la commande Mimikatz sekurlsa::tickets /export, qui ne retourne que le ticket de service de l'utilisateur (TGS) :
Toutefois, si la délégation non contrainte est activée, la commande renvoie le TGT pour le compte administrateur, qu'un adversaire peut utiliser dans une attaque Pass-the-Ticket pour compromettre l'ensemble du domaine.
Pour récolter des TGTs de tout utilisateur qui se connecte au système, l'adversaire peut utiliser la commande PowerSpoit suivante :
Droits requis pour activer la délégation sans contrainte
Pour pouvoir gérer les contrôles de délégation d'un objet, un utilisateur a besoin des droits suivants :
- SeEnableDelegationPrivilege, un droit utilisateur est contrôlé par la politique de sécurité locale d'un contrôleur de domaine et géré via le paramètre de stratégie de groupe « Autoriser les comptes d'ordinateurs et d'utilisateurs à être approuvés pour la délégation », comme illustré ci-dessous
- Capacité de mettre à jour les attributs msDS-AllowedToDelegateTo et userAccountControl d'un ordinateur, où ce paramètre de Group Policy setting est stocké
Trouver une délégation sans contrainte
Pour découvrir où la délégation sans contrainte a été activée, vous pouvez utiliser le script PowerShell suivant. Il vérifiera la valeur du Contrôle de Compte d'Utilisateur (UAC) de tous les ordinateurs pour voir où la délégation est activée sans restrictions.
Vous voudrez peut-être aussi examiner qui a reçu le droit SeEnableDelegationPrivilege. Pour ce faire, vous pouvez utiliser PowerSploit et la commande Get-DomainPolicy.
Meilleures pratiques pour réduire le risque lié à la délégation sans contraintes
Pour réduire le risque lié à la délégation sans contraintes, il est recommandé de :
- Enquêtez pour savoir si la délégation non contrainte est réellement nécessaire. Dans de nombreux cas, la délégation non contrainte a été activée par erreur et peut être soit complètement désactivée, soit convertie en délégation contrainte ou en délégation contrainte basée sur les ressources. Gardez à l'esprit qu'il n'est pas recommandé de configurer la délégation contrainte pour un contrôleur de domaine (DC), car un attaquant qui compromet un compte avec délégation contrainte pourra usurper l'identité de n'importe quel utilisateur pour n'importe quel service sur le DC.
- Utilisez l’option « This account is sensitive and cannot be delegated » pour empêcher que les comptes sensibles soient utilisés dans la délégation.
- Placez les utilisateurs privilégiés dans le groupe Protected Users. Cela aide à les empêcher d'être utilisés dans la délégation et conserve leurs TGT hors de l'ordinateur après leur authentification.
- Surveillez attentivement l'activité des comptes délégués. Tous les systèmes où un type quelconque de délégation est configuré et utilisé doivent être surveillés pour détecter toute activité suspecte.
Comment Netwrix peut-il aider ?
La délégation sans contrainte est l'un des nombreux vecteurs d'attaque que les malfaiteurs peuvent exploiter pour accéder et se maintenir dans votre environnement Active Directory. Avec la solution Netwrix Active Directory Security Solution, vous serez capable de :
- Découvrez les risques de sécurité, y compris la délégation inutile, les permissions excessives, les privilèges permanents et les mauvaises configurations de GPO, et priorisez vos efforts d'atténuation.
- Établissez des configurations sécurisées dans l'ensemble de votre infrastructure informatique et maintenez-les en identifiant et en remédiant à tout changement inapproprié par rapport à votre base de référence renforcée.
- Détectez et répondez rapidement aux menaces avancées, telles que le Kerberoasting, le DCSync, l'extraction de dit et les attaques de Golden Ticket.
- Automatisez la réponse aux attaques connues pour minimiser les dégâts.
- Assurez une récupération rapide d'Active Directory en cas de violation de sécurité ou d'autre incident.
FAQ
Quels types de délégation sont disponibles dans Active Directory ?
Il existe 3 types de délégation que votre organisation peut utiliser :
- Délégation sans contrainte
- Délégation restreinte
- Délégation contrainte basée sur les ressources (RBCD)
Qu'est-ce que la délégation contrainte basée sur les ressources (RBCD) ?
Avec RBCD, un administrateur propriétaire d'une ressource peut déléguer l'accès à celle-ci.
Comment puis-je configurer RBCD ?
Pour configurer un service de ressource afin de permettre l'accès au nom des utilisateurs, vous pouvez utiliser les cmdlets de Windows PowerShell (New-ADComputer, New-ADServiceAccount, New-ADUser, Set-ADComputer, Set-ADServiceAccount et Set-ADUser) avec le paramètre PrincipalsAllowedToDelegateToAccount.
Demandez un essai gratuit de Netwrix Directory Manager
Partager sur
En savoir plus
À propos de l'auteur
Joe Dibley
Chercheur en sécurité
Chercheur en sécurité chez Netwrix et membre de l'équipe de recherche en sécurité de Netwrix. Joe est un expert en Active Directory, Windows et une grande variété de plateformes logicielles d'entreprise et de technologies, Joe étudie les nouveaux risques de sécurité, les techniques d'attaque complexes, ainsi que les atténuations et détections associées.
En savoir plus sur ce sujet
RBAC contre ABAC : Lequel choisir ?
Top 11 des solutions d'Identity and Access Management (IAM) pour votre entreprise
Plongée approfondie dans les rôles et les permissions de NetSuite
Comment trouver votre NetSuite Account ID
Contrôle d'accès basé sur les attributs (ABAC) : Un guide complet