Détecter les autorisations déléguées dans Active Directory

Les autorisations de sécurité dans Active Directory peuvent être un sujet épineux. Non seulement, par défaut, Microsoft vous les cache dans Utilisateurs et ordinateurs, mais en plus il n’existe pas d’outil intégré permettant d’obtenir une vue d’ensemble sur la façon dont les autorisations ont été appliquées à AD.

Dans le présent article, je vais vous expliquer les principes élémentaires de délégation, de suppression d’autorisations, d’utilisation des outils intégrés pour trouver les autorisations qui ont été déléguées, et pour finir, je vous offrirai un script PowerShell personnalisé pour l’analyse d’AD.

Pourquoi déléguer ?

Imaginez que vous êtes à la tête d’une grande entreprise comportant plusieurs services : finances, RH, ventes, haute direction. Si chaque utilisateur qui a oublié son mot de passe doit appeler le service d’assistance informatique, celui-ci va vite être submergé d’appels.

Vous pourriez plutôt déléguer les autorisations au chef de chaque service afin qu’il ou elle puisse réinitialiser les mots de passe de sa propre équipe.

Un autre cas d’utilisation classique de la délégation est de permettre au personnel d’échanger des e-mails – par exemple via une boîte aux lettres partagée ou un(e) assistant(e) de direction qui envoie des e-mails au nom de son supérieur.

Octroyer à tout le monde des droits d’administration de domaine ?

Vous vous êtes peut-être dit : donnons à chaque chef de service des droits d’administration de domaine, afin qu’ils puissent réinitialiser les mots de passe en cas de besoin.

Ceci est techniquement possible, mais ils seront alors en mesure de faire tout ce que vous-même pouvez faire, y compris accéder aux données des utilisateurs. Violation de données en vue !

Comment déléguer des autorisations dans AD

La bonne méthode consiste bien sûr à utiliser la délégation. Vous pourrez ainsi sélectionner individuellement les autorisations que vous souhaitez accorder.
1. Ouvrez Utilisateurs et ordinateurs Active Directory et connectez-vous à votre domaine de test préféré.
2. Cliquez avec le bouton droit sur l’unité d’organisation que vous souhaitez autoriser à réinitialiser les mots de passe.
3. Trouvez l’option « Déléguer le contrôle » (probablement la première option dans la liste). Sélectionnez-la et cliquez sur Suivant.

AD_Permissions

4. Vous êtes alors invité à choisir les utilisateurs ou les groupes auxquels vous souhaitez déléguer le contrôle, c’est-à-dire les personnes que vous souhaitez voir accomplir une tâche.

Il est FORTEMENT recommandé de créer un groupe de sécurité pour chaque ensemble d’autorisations que vous déléguez (par exemple, « Ventes – Habilitation à réinitialiser les mots de passe », « RH – Habilitation à réinitialiser les mots de passe »). Ainsi, vous pourrez ajouter très facilement des utilisateurs à ces groupes, ou en supprimer, plutôt que de vous soucier directement de ces autorisations.

5. À vous de jouer, ajoutez un groupe. (Dans la figure ci-dessous, j’ai ajouté notre équipe de haute direction.)

AD_Permissions2

6. Cliquez sur Suivant, puis sélectionnez l’option « Réinitialiser les mots de passe utilisateur et forcer le changement de mot de passe à la prochaine ouverture de session ».

7. Cliquez sur Suivant, puis sur Terminer, c’est tout !

Supprimer des autorisations déléguées dans AD

Vous en avez terminé avec l’assistant, vous vous demandez à présent comment vérifier que vous avez bien délégué les autorisations et comment les supprimer à nouveau.

1. Dans Utilisateurs et ordinateurs, cliquez sur le menu Affichage et assurez-vous que l’option « Fonctions avancées » est cochée.

AD_Permissions3

2. Cette case étant cochée, vous pouvez voir l’onglet Sécurité lorsque vous sélectionnez Propriétés pour des objets dans Active Directory.

Cliquez avec le bouton droit sur l’unité d’organisation à laquelle vous venez de déléguer des autorisations et sélectionnez Propriétés, puis l’onglet Sécurité.

3. Sélectionnez « Avancé » et faites défiler vers le haut et vers le bas jusqu’à ce que vous trouviez le groupe à qui vous venez d’accorder les autorisations. Vous devriez voir l’autorisation « Réinitialiser le mot de passe » sous « Accès ».

AD_Permissions4

4. Si vous souhaitez supprimer cette autorisation, vous pouvez la sélectionner et cliquer sur Supprimer, mais laissez-la en place pour le moment et cliquez sur Annuler.

Comme vous pouvez le constater, il est assez difficile de trouver les autorisations déléguées, surtout si l’on considère qu’il est possible de déléguer non seulement aux unités d’organisation, mais aussi aux groupes de sécurité et même aux objets utilisateur.

Recherche d’autorisations (avec DSACLS)

Un scénario cauchemardesque que vous devez envisager : quelqu’un a réinitialisé le mot de passe du patron et vous devez découvrir qui était autorisé à le faire. (Si vous avez installé Netwrix Auditor, vous pourriez y jeter un coup d’œil, mais pour l’instant nous supposerons que ce n’est pas le cas).

1. Dans Utilisateurs et ordinateurs, accédez à l’objet utilisateur dont vous souhaitez vérifier les autorisations.

2. Cliquez avec le bouton droit et sélectionnez « Choisir les propriétés », puis « Éditeur d’attributs ».

3. Faites défiler puis double-cliquez sur « distinguishedName ». Copiez cette chaîne pour plus tard.

AD_Permissions5

4. Ouvrez une invite de commande et tapez « dsacls », puis collez la chaîne de caractères que vous venez de copier, entourée de guillemets droits ( » « ) :

AD_Permissions6

5. Appuyez sur la touche Entrée.

6. À ce stade, vous réalisez probablement qu’il y a trop d’autorisations à l’écran. Vous disposez de deux options :

  • Insérez -more à la fin de la commande pour afficher un écran à la fois.
  • Placez le résultat dans un fichier texte que vous pourrez lire en utilisant > filename.txt.

7. J’ai choisi la deuxième option, ouvert le fichier dans le bloc-notes et finalement constaté que le groupe de la haute direction avait le droit de réinitialiser le mot de passe du patron !

AD_Permissions7

Recherche d’autorisations (avec PowerShell)

Maintenant que vous avez découvert les délégations, vous vous demandez peut-être s’il y en a dont vous ne connaissez pas l’existence, émanant d’anciens employés ou d’administrateurs malveillants.

J’ai créé un court script PowerShell qui recherche chaque type d’objet pouvant être délégué et répertorie les deux délégations d’autorisation courantes : « Réinitialiser le mot de passe » et « Envoyer en tant que » (Exchange).

Voici un exemple d’exécution sur un domaine :

AD_Permissions8

Pour utiliser ce script sur votre propre domaine :

1. Ouvrez Utilisateurs et ordinateurs Active Directory et accédez au domaine (ou à l’unité d’organisation) qui fait l’objet de vos recherches.

2. Cliquez avec le bouton droit et sélectionnez Propriétés.

3. Dans l’onglet « Éditeur d’attributs », recherchez la propriété « distinguishedName ».

4. Sélectionnez-la et cliquez sur Afficher, puis copiez le chemin LDAP. Vous en aurez besoin plus tard.

5. Téléchargez une copie du script depuis GitHub :

https://raw.githubusercontent.com/thephoton/activedirectory-delegation-searcher/master/search.ps1

6. Cliquez avec le bouton droit et éditez le script avec PowerShell ISE.

7. Modifiez la ligne 6 ($bSearch = …) en remplaçant DOMAINCONTROLLER par le nom d’un de vos contrôleurs de domaine.

8. Modifiez la ligne 6, en remplaçant LDAP par le chemin que vous avez copié à l’étape 4.

9. Sauvegardez le script et cliquez sur Exécuter.

10. Le script va effectuer une recherche dans votre Active Directory ; la progression sera affichée dans la console et une fois la recherche terminée, une fenêtre contextuelle apparaîtra, détaillant les objets auxquels des autorisations ont été déléguées. Vous serez peut-être surpris !

Si vous souhaitez plus d’informations sur la façon de détecter qui a modifié des autorisations dans Active Directory, consultez notre guide pratique. Il existe également un utilitaire gratuit Netwrix qui fournit des informations précieuses sur qui dispose d’autorisations pour quoi dans Active Directory et en matière de partage de fichiers.

Profitez-en !