Autorisé à déléguer
Description
Le principal de sécurité de la source est autorisé à effectuer une délégation contrainte Kerberos (KCD) avec transition de protocole sur l'ordinateur cible. Cela signifie qu'il peut emprunter l'identité de n'importe quel utilisateur lorsqu'il s'authentifie avec Kerberos dans un service exécuté sur l'ordinateur cible.
Cela conduit souvent à la compromission totale de l'ordinateur cible.
Exploitation
Les attaquants qui compromettent le principal de sécurité source peuvent utiliser des outils de piratage dédiés tels que Rubeus pour exploiter les extensions de protocole Kerberos légitimes (S4U2self et S4U2proxy), afin de falsifier des tickets de service Kerberos et d'emprunter l'identité de l'utilisateur ciblé. Les attaquants choisiront probablement d'usurper l'identité d'un utilisateur avec privilèges pour obtenir un accès avec privilèges.
Une fois que les attaquants ont falsifié le ticket de service, ils peuvent utiliser n'importe quel outil d'administration natif ou de piratage spécialisé compatible avec Kerberos pour exécuter des commandes arbitraires à distance.
Une tentative d'exploitation réussie doit respecter les contraintes suivantes :
-
Le principal de sécurité source doit être activé pour la transition de protocole (ADS_UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION dans UserAccountControl/ « Utiliser tout protocole d'authentification » dans l'interface graphique de délégation). Plus précisément, l'attaque peut fonctionner sans transition de protocole (« Utiliser Kerberos uniquement » dans l'interface graphique de délégation), mais les attaquants doivent d'abord contraindre une authentification Kerberos de l'utilisateur ciblé vers le principal de sécurité source, ce qui complique l'attaque. Par conséquent, Tenable Identity Exposure ne crée pas de relation d'attaque dans ce cas.
-
Les principaux de sécurité source et cible doivent avoir un nom de principal de service (ServicePrincipalName). Tenable Identity Exposure ne crée pas cette relation d'attaque sans cette condition.
-
Le compte ciblé par l'usurpation ne doit pas porter l'indicateur « est sensible et ne peut pas être délégué » (ADS_UF_NOT_DELEGATED dans UserAccountControl) ni être membre du groupe « Protected Users » (Utilisateurs protégés), car Active Directory protège ces comptes contre les attaques par délégation.
En revanche, l'ordinateur cible, sur lequel la délégation est autorisée, est désigné par un nom principal de service (SPN) et contient donc un service spécifique tel que SMB avec « cifs/host.exemple.net », HTTP avec « http/host.exemple.net », etc. Cependant, les attaquants peuvent cibler tout autre SPN et service exécuté sous le même compte cible dans le cadre d'une « attaque par substitution de nom ». Il ne s'agit donc pas d'une limitation.
Remédiation
Si le principal de sécurité source n'a pas besoin de l'autorisation d'effectuer une délégation contrainte Kerberos (KCD) sur l'ordinateur cible, vous devez le supprimer. Vous devez effectuer la modification dans la source, contrairement à une relation d'attaque par délégation « Autorisé à agir ».
Pour supprimer le principal de sécurité source :
-
Dans l'interface graphique d'administration « Utilisateurs et ordinateurs Active Directory », accédez à l'onglet Propriétés > Délégation de l'objet source.
-
Supprimez le nom principal du service correspondant à la cible.
-
Si vous ne souhaitez aucune délégation à partir de cette source, supprimez tous les SPN et sélectionnez « Ne pas approuver cet ordinateur pour la délégation ».
Vous pouvez également utiliser PowerShell pour modifier le contenu de l'attribut « msDS-AllowedToDelegateTo » de la source.
-
Par exemple, dans Powershell, exécutez cette commande pour remplacer toutes les valeurs :
CopierSet-ADObject -Identity "CN=Source,OU=corp,DC=example,DC=net" -Replace @{ "msDS-AllowedToDelegateTo" = @("cifs/desiredTarget.example.net") }
-
Si vous ne souhaitez aucune délégation à partir de cette source, exécutez la commande suivante pour effacer l'attribut :
CopierSet-ADObject -Identity "CN=Source,OU=corp,DC=example,DC=net" -Clear "msDS-AllowedToDelegateTo"
Il est également possible de réduire le risque sans fermer complètement ce chemin d'attaque en désactivant la transition de protocole. Il faut pour cela que tous les principaux de sécurité se connectent à la source en utilisant uniquement Kerberos au lieu de NTLM.
Pour désactiver la transition de protocole :
-
Dans l'interface graphique d'administration « Utilisateurs et ordinateurs Active Directory », accédez à l'onglet Propriétés > Délégation de l'objet source.
-
Sélectionnez « Utiliser uniquement Kerberos » à la place de « Utiliser tout protocole d'authentification ».
Vous pouvez également exécuter la commande suivante dans PowerShell pour désactiver la transition de protocole :
Set-ADAccountControl -Identity "CN=Source,OU=corp,DC=example,DC=net" -TrustedToAuthForDelegation $false
Enfin, d'une manière générale, afin de limiter l'exposition des comptes avec privilèges sensibles à ces attaques par délégation, Tenable Identity Exposure il est recommandé de leur donner l'indicateur « est sensible et ne peut pas être délégué » (ADS_UF_NOT_DELEGATED) ou de les ajouter au groupe « Protected Users » (Utilisateurs protégés), après avoir vérifié minutieusement les impacts opérationnels.
Voir aussi