Détection des permissions déléguées dans Active Directory
Oct 27, 2016
Les autorisations de sécurité dans Active Directory peuvent être un sujet délicat. Non seulement Microsoft les cache par défaut dans Users and Computers, mais il n'existe également aucun outil intégré pour obtenir une vue d'ensemble de la manière dont les autorisations ont été appliquées à AD.
In this article, I’ll take you through the basics of delegating, removing permissions, using built–in tools to find permissions that have been delegated, and finally a custom PowerShell script that scans AD.
Pourquoi déléguer ?
Imaginez que vous êtes le dirigeant d'une grande entreprise avec plusieurs départements : finance, RH, ventes, direction. Si chaque utilisateur qui oublie son mot de passe devait appeler le service d'assistance informatique, vous seriez submergé d'appels.
Au lieu de cela, vous pourriez déléguer les permissions au responsable de chaque département 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 la capacité pour le personnel d'envoyer des e-mails en tant que l'un l'autre—soit une boîte mail partagée, soit un assistant personnel envoyant un e-mail au nom de son patron.
Donner à tout le monde le rôle d'Admin Domaine ?
Vous avez peut-être pensé—d'accord, donnons à chaque responsable de département des permissions d'Admin Domaine, ainsi ils pourront réinitialiser les mots de passe lorsque nécessaire.
Bien que cela soit techniquement vrai, ils seraient alors capables de faire tout ce que vous pouvez faire, y compris accéder aux données des utilisateurs. Violation de données en préparation !
Comment déléguer des autorisations dans AD
La manière correcte d'atteindre cet objectif est bien sûr d'utiliser la Delegation. Cela vous permettra de sélectionner individuellement les permissions que vous souhaitez déléguer.
1. Ouvrez Active Directory Users and Computers et connectez-vous à votre domaine de test préféré.
2. Faites un clic droit sur l'unité organisationnelle du département à laquelle vous souhaitez donner la permission de réinitialiser les mots de passe.
3. Trouvez l'option ‘Delegate Control’ (cela devrait être la première option dans la liste). Cliquez dessus et appuyez sur Suivant.
4. Il vous est maintenant demandé de choisir des utilisateurs ou des groupes auxquels vous souhaitez déléguer le contrôle—ce sont les personnes que vous voulez pouvoir effectuer une tâche.
Il est FORTEMENT recommandé de créer un groupe de sécurité pour chaque ensemble de permissions que vous déléguez (c'est-à-dire, un pour 'Sales – Password Reset Ability', 'HR – Password Reset Ability'). Cela vous permet d'ajouter/retirer très facilement des utilisateurs de ces groupes à l'avenir, plutôt que de devoir modifier directement les permissions.
5. Allez-y et ajoutez un groupe. (Dans la figure ci-dessous, j'ai ajouté notre équipe de direction.)
6. Appuyez sur suivant puis choisissez l'option ‘Réinitialiser les mots de passe des utilisateurs et forcer le changement de mot de passe à la prochaine connexion’.
7. Appuyez sur suivant puis sur terminer—et voilà !
Suppression des permissions déléguées dans AD
Maintenant que vous avez terminé l'assistant, vous vous demandez peut-être comment vérifier que vous avez bien délégué les permissions et comment les supprimer à nouveau.
1. Depuis Users and Computers, appuyez sur le menu Affichage et assurez-vous que l'option ‘Fonctionnalités avancées’ est cochée.
2. En cochant cette case, vous pourrez voir l'onglet sécurité lorsque vous sélectionnez Propriétés sur des objets dans Active Directory.
Cliquez droit sur la même OU à laquelle vous venez de déléguer des permissions et choisissez Propriétés, puis l'onglet Sécurité.
3. Choisissez 'Avancé' puis faites défiler vers le haut et vers le bas jusqu'à ce que vous trouviez le groupe auquel vous venez d'accorder des autorisations. Vous devriez voir l'autorisation 'Réinitialiser le mot de passe' listée sous 'Accès'.
4. Si vous vouliez supprimer cette permission, vous pourriez la sélectionner et appuyer sur Supprimer, mais laissez-la en place pour l'instant et appuyez sur Annuler.
Comme vous pouvez le voir, il est assez difficile de trouver des permissions déléguées, surtout quand vous prenez en compte que vous pouvez déléguer non seulement aux unités organisationnelles, mais aussi aux groupes de sécurité, et même aux objets utilisateur eux-mêmes.
Simplifiez l'analyse des permissions AD
Découvrez comment Netwrix Access Analyzer peut révéler les risques dans votre environnement Active Directory
Chasse aux permissions (Utilisation de DSACLS)
Alors, un scénario cauchemardesque à envisager est que quelqu'un a réinitialisé le mot de passe du patron et vous devez découvrir qui avait la permission de le faire. (Si vous aviez Netwrix Auditor installé, vous pourriez jeter un œil là-dedans, mais pour l'instant nous allons supposer que vous ne l'avez pas.)
1. Dans Users and Computers, naviguez jusqu'à l'objet utilisateur pour lequel vous souhaitez vérifier les permissions.
2. Faites un clic droit et sélectionnez Propriétés, puis ‘Éditeur d’attributs’
3. Faites défiler et double-cliquez sur ‘distinguishedName’. Copiez cette chaîne pour plus tard.
4. Ouvrez une invite de commande et tapez ‘dsacls’, suivi du collage de la chaîne que vous venez de copier, entre guillemets :
5.Appuyez sur Entrée.
6. À ce stade, vous réaliserez probablement qu'il y a trop de permissions affichées à l'écran—vous avez deux options :
a. Utilisez |more à la fin de la commande pour afficher un écran entièrement à la fois.
b. Redirigez la sortie vers un fichier texte et lisez-le en utilisant > filename.txt.
7. J'ai opté pour la 2e option, j'ai ouvert le fichier dans le bloc-notes et j'ai finalement découvert que le groupe de la direction a les autorisations pour réinitialiser le mot de passe du patron !
Chasse aux permissions (Utilisation de PowerShell)
Maintenant que vous avez découvert la délégation, vous vous demandez peut-être s'il existe des délégations que vous ne connaissez pas—soit de la part d'anciens employés, soit de la part d'administrateurs malveillants.
J'ai préparé un court script PowerShell qui va rechercher chaque type d'objet déléguable et lister les deux délégations de permission communes—réinitialisation du mot de passe et 'envoyer en tant que' (depuis Exchange).
Voici un exemple d'exécution à partir d'un domaine :
Pour utiliser ce script sur votre propre domaine :
1. Ouvrez Active Directory Users and Computers et naviguez jusqu'au domaine (ou Unité Organisationnelle) que vous êtes en train d'investiguer.
2. Faites un clic droit dessus et choisissez Propriétés.
3. Dans l'onglet ‘Attribute Editor’, recherchez la propriété ‘distinguishedName’.
4. Sélectionnez-le et appuyez sur Afficher, puis copiez le chemin LDAP Path. 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 modifiez le script à l'aide de PowerShell ISE.
7. Modifiez la ligne 6 ($bSearch = …), en remplaçant DOMAINCONTROLLER par le nom de l'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. Enregistrez le script et appuyez sur exécuter.
10. Laissez le script rechercher dans votre Active Directory ; la progression est signalée dans la console et, une fois terminée, vous recevrez une fenêtre contextuelle détaillant les objets auxquels des permissions ont été déléguées — vous pourriez être surpris !
Si vous avez besoin de plus d'informations sur comment détecter qui a modifié les permissions dans Active Directory, consultez notre how-to. Il existe également un outil gratuit de Netwrix qui fournit des informations exploitables sur qui a des permissions pour quoi dans Active Directory et les partages de fichiers.
Tutoriel de script Windows PowerShell pour débutants
En savoir plusPartager sur
En savoir plus
À propos de l'auteur
Matt Hopton
Consultant
Responsable Réseau TIC, consultant en informatique et entrepreneur. En plus de travailler comme Responsable Réseau à Sir Thomas Rich's School, Matt développe et héberge des sites web pour des entreprises locales, développe des logiciels et fournit des recommandations matérielles.
En savoir plus sur ce sujet
Créez des utilisateurs AD en masse et envoyez leurs identifiants par e-mail à l'aide de PowerShell
Comment créer, modifier et tester des mots de passe en utilisant PowerShell
Comment ajouter et supprimer des groupes AD et des objets dans des groupes avec PowerShell
Attributs Active Directory : Dernière connexion
Confiances dans Active Directory