Elad Shamir

Après avoir publié des correctifs de sécurité pour deux vulnérabilités Active Directory lors du Patch Tuesday de novembre 2021, Microsoft a exhorté ses clients, le 20 décembre, à appliquer ces correctifs immédiatement afin d'empêcher les pirates de prendre le contrôle des domaines Windows. Outre l'application des correctifs, les entreprises peuvent renforcer leurs défenses contre les attaques en prenant quelques mesures qui contribueront à empêcher la création non autorisée de comptes susceptibles de conduire à une escalade des privilèges et à une attaque.

Lecture associée

Les coulisses de CVE-2021-42278 et CVE-2021-42287

Le9 novembre 2021, Microsoft a publié quatre CVE liés à des problèmes de sécurité dans Active Directory et les a attribués à Andrew Bartlett. Le thème commun à trois de ces mises à jour de sécurité semble concerner la validation de l'unicité de certains attributs des objets AD et la vérification qu'aucun fil ne se croise lors de l'émission de tickets Kerberos, conduisant à l'émission de tickets pour le mauvais principal ou pour le mauvais service.

Alors que de nombreux membres de la communauté de l'informatique pensaient que l'exploitation de ces problèmes impliquerait des conditions de course peu fiables ou d'autres cas limites, les chercheurs en sécurité Charlie Clark et Ceri Coburn ont publié un article démontrant comment les CVE-2021-42278 peuvent être utilisées de manière abusive pour escalader les privilèges par défaut de manière fiable dans n'importe quel domaine/forêt, et même dans des trusts inter-forêts dans des configurations spécifiques.

Avant cette mise à jour de sécurité, il n'y avait pas d'application exigeant que l'attribut sAMAccountName des comptes d'ordinateur/de service se termine par un signe de dollar ($), ce qui permettait l'existence de comptes avec un nom identique à celui des comptes privilégiés, tels que contrôleur de domaine, à l'exception du signe de dollar de fin.

Charlie et Ceri ont découvert qu'un attaquant pouvait demander un ticket Kerberos (TGT) pour un compte dont le sAMAcountName est identique à celui d'un contrôleur de domaine (à l'exception du signe du dollar), puis modifier l'attribut sAMAccountName de ce compte. Le TGT de l'attaquant serait toujours valide, malgré la modification de l'attribut sAMAccountName du compte.

L'attaquant pourrait alors appeler l'extension Kerberos S4U2Self pour obtenir un ticket de service Kerberos pour n'importe quel utilisateur arbitraire, y compris les utilisateurs privilégiés (tels que les membres du groupe Domain Admins), vers le service associé au TGT de l'attaquant. Le contrôleur de domaine tente de délivrer le ticket à un service associé au nom de compte figurant sur le TGT sans le signe du dollar. Lorsque le contrôleur de domaine ne parvient pas à trouver ce compte parce que son attribut sAMAccountName a changé, il recherche un service associé au nom sur le TGT avec un signe de dollar à la fin et trouve le compte du contrôleur de domaine. Par conséquent, le contrôleur de domaine émettrait de manière fiable un ticket pour l'utilisateur privilégié vers le contrôleur de domaine et l'enverrait à l'attaquant.

Même si une fonctionnalité de l'extension de délégation contrainte Kerberos est utilisée de manière abusive dans cette attaque (S4U2Self), l'ajout de tous les comptes privilégiés au groupe Protected Users ou leur définition comme sensibles pour la délégation n'atténuerait pas le risque, car ces contrôles de sécurité n'affectent que S4U2Proxy.

Bien que cette attaque nécessite des privilèges d'écriture sur l'attribut sAMAccountName d'un compte qui possède au moins un Service Principal Name (SPN), par défaut, tous les utilisateurs authentifiés peuvent créer jusqu'à dix nouveaux comptes d'ordinateur dans le domaine, ce qui leur permet d'"apporter leur propre compte d'ordinateur" et d'exploiter cette vulnérabilité.

Notez que le groupe Utilisateurs authentifiés inclut des utilisateurs étrangers d'autres forêts avec une relation de confiance appropriée, ce qui signifie que, dans la configuration par défaut, les attaquants peuvent créer un compte d'ordinateur dans une forêt de confiance et exécuter l'attaque dans cette forêt également, brisant ainsi une autre frontière de sécurité.

Comment atténuer les effets de CVE-2021-42278 et CVE-2021-42287 ?

Pour prévenir les attaques qui exploitent les CVE-2021-42278 et CVE-2021-42287, je recommande vivement trois actions :

  1. Installer immédiatement les correctifs(CVE-42287 et CVE-422278)
  2. Remplacer la valeur de l'attribut MSDS-MachineAccountQuota par zéro.
  3. Appliquer le principe du moindre privilège à l'attribution des droits de l'utilisateur intitulée "Ajouter des postes de travail au domaine" (SeMachineAccountPrivilege).

Ce plan d'action permettra d'empêcher la création non autorisée de comptes informatiques et de relever le niveau d'exécution de cette attaque, ainsi que de plusieurs autres attaques nécessitant un compte informatique ou un compte disposant d'un SPN.