
ADManager Plus Build < 7210 — Vulnérabilité d’élévation de privilèges
Le rôle Modify Computers est un rôle prédéfini dans ADManager pour la gestion des ordinateurs. Si un utilisateur technicien dispose du privilège Modify Computers sur un ordinateur, il peut modifier les attributs userAccountControl et msDS-AllowedToDelegateTo de l'objet ordinateur. De cette manière, l'utilisateur technicien peut définir une délégation Kerberos contrainte sur n'importe quel ordinateur de l'unité d'organisation qui lui a été déléguée.
Contrairement à ce qu'affirme ADManager, l'utilisateur qui dispose du rôle Modify Computers peut modifier les privilèges des objets ordinateur dans l'Active Directory. La délégation Kerberos contrainte peut être définie pour n'importe quel service, tel que les services CIFS, LDAP, HOST. L'utilisateur peut alors accéder à ces services en abusant de la délégation Kerberos contrainte. De plus, la délégation Kerberos non contrainte peut être définie sur les objets ordinateur en modifiant l'attribut userAccountControl. Normalement, seuls les utilisateurs disposant du privilège SeEnableDelegationPrivilege peuvent définir une délégation Kerberos contrainte. Seuls les membres du groupe BUILTIN\Administrators disposent de ce privilège par défaut. L'utilisateur délégué pour une unité d'organisation ne peut pas définir de délégation Kerberos contrainte, même s'il dispose du droit GenericAll sur un compte d'ordinateur ; le processus de délégation dans Active Directory n'accorde donc pas ce privilège. Cependant, l'utilisateur technicien peut utiliser le droit SeEnableDelegationPrivilege via le rôle Modify Computers.
Problème d'autorisation de l'application web ADMP : l'attribution du rôle prédéfini Modify Computers délègue à l'utilisateur technicien la possibilité de modifier de manière inattendue les attributs personnalisés des ordinateurs. Même s'il semble que ce privilège ne soit pas accordé dans l'interface, la propriété Additional Custom Attribute est assignée, ce qui conduit à une vulnérabilité de contrôle d'accès défaillant.
Il n'existe aucune restriction pour la modification des attributs userAccountControl et msDS-AllowedToDelegateTo des objets ordinateur. L'application ADMP effectue les modifications avec les privilèges d'administrateur de domaine par conception ; ainsi, si nous pouvons contourner certaines restrictions (par exemple le format de la valeur de l'attribut), nos requêtes sont appliquées avec les privilèges d'administrateur de domaine. De cette manière, nous pouvons modifier les attributs userAccountControl et msDS-AllowedToDelegateTo.
Un utilisateur technicien élève ses privilèges d'utilisateur de domaine (Domain User) à administrateur de domaine (Domain Admin). L'utilisateur peut récupérer le hash du compte krbtgt à l'aide d'une attaque DCSync après avoir configuré une délégation Kerberos contrainte pour le service LDAP du contrôleur de domaine sur un ordinateur. Autre exemple : l'utilisateur peut définir une délégation Kerberos contrainte sur CLIENT1$ pour le service CIFS du contrôleur de domaine (DC), puis accéder au service CIFS. Par conséquent, l'utilisateur est délégué pour gérer CLIENT1$, mais il peut accéder au service CIFS du contrôleur de domaine en usurpant l'identité d'un utilisateur de manière inattendue.
L'utilisateur attaquant peut effectuer une attaque DCSync après avoir ajouté la délégation Kerberos contrainte pour le service LDAP, avec les conditions préalables suivantes :
Scénario 1 : si l'attaquant dispose d'un droit d'administrateur local sur un ordinateur et peut gérer cet ordinateur avec le rôle « Modify Computers » dans ADManager Plus
Scénario 2 : si l'attaquant ajoute un ordinateur à l'Active Directory (MAQ, délégation) et gère cet ordinateur avec le rôle « Modify Computers »
Scénario 3 : si l'attaquant peut extraire le hash NT d'un compte d'ordinateur (extraction du hash avec mimikatz, secretsdump, etc.) et gérer cet ordinateur avec le rôle « Modify Computers »
Cette preuve de concept a été réalisée sur ADManager Plus Build 7203.
https://github.com/user-attachments/assets/496b3bfd-a95f-4d69-8ee5-53ae0592ebdb