Comment auditer l’Active Directory avec Purple Knight ?
Sommaire
I. Présentation
La sécurité de l'Active Directory est un véritable enjeu pour les entreprises et il n'est pas forcément simple de garder un œil sur l'état général de son annuaire Active Directory sans utiliser des outils adaptés. Fort heureusement, ces outils existent, que ce soit pour surveiller l'activité de l'Active Directory ou pour l'auditer comme nous l'avons vu récemment avec PingCastle.
Aujourd'hui, je vais vous présenter un autre outil gratuit pour auditer l'Active Directory : Purple Knight, édité par l'entreprise Semperis. Ce logiciel s'utilise gratuitement et il n'y a pas de commercialisation de licences, car Semperis commercialise un autre produit : Semperis Directory Services Protector (DSP). Dans cet article, je m'intéresse à l'audit de l'Active Directory, mais ce logiciel est capable d'auditer Azure Active Directory également.
Environ 100 points liés à la sécurité de l'Active Directory sont vérifiés par Purple Knight, aussi bien sur la sécurité des comptes, la délégation Active Directory, les stratégies de groupe, l'infrastructure Active Directory en elle-même, que les options liées à Kerberos.
II. Télécharger et installer Purple Knight
Pour télécharger Purple Knight, il est nécessaire de compléter un formulaire sur le site officiel afin de recevoir un e-mail avec un lien de téléchargement. Contrairement à PingCastle, il faut fournir quelques informations pour télécharger Purple Knight. Rendez-vous sur cette page :
Personnellement, j'ai reçu l'e-mail avec le lien de téléchargement dans la foulée après avoir complété le formulaire. On obtient une archive ZIP d'environ 100 Mo. Le contenu de cette archive ZIP doit être extrait sur votre machine. On obtient ceci :
Les deux PDF font office de documentation sur l'utilisation du logiciel et le répertoire "Scripts" contient un ensemble de scripts PowerShell signés que l'outil va exécuter pour réaliser son audit :
III. Lancer un audit avec Purple Knight
Pour lancer un audit avec Purple Knight, c'est tout simple : il faut exécuter le fichier "PurpleKnight.exe". Un assistant s'ouvre. Commençons par accepter les conditions d'utilisation avant de poursuivre.
La seconde étape consiste à sélectionner l'environnement cible, à auditer donc. Ici, c'est l'Active Directory du domaine "it-connect.local" qui va nous intéresser, donc il faut cocher la case à côté de "Active Directory" puis cliquer sur le bouton "Select" pour sélectionner le domaine. On peut sélectionner plusieurs domaines. Quand c'est fait, on peut cliquer sur "Next".
La troisième étape consiste à sélectionner les éléments à analyser, au cas par cas ou par catégorie. Pour que l'audit soit complet, il vaut mieux tout sélectionner afin d'avoir un résultat pertinent qui reflète réellement l'état actuel de votre annuaire Active Directory.
Nous pouvons voir que, sous chaque catégorie, il y a la liste des éléments qui seront évalués. Il faut cliquer sur "Run tests" pour démarrer l'audit.
L'audit en lui-même est rapide et ne nécessite que 1 ou 2 minutes pour vérifier environ 100 points différents.
Quand l'audit est terminé, l'idéal est de cliquer sur "View report" pour afficher le rapport HTML dans un navigateur. Ce même rapport peut être exporté au format PDF ou au format CSV, comme le montre le bouton "Save as" en bas de l'interface.
Passons à la prochaine étape où nous allons nous intéresser au rapport en lui-même.
IV. Interpréter le rapport d'audit
C'est l'heure du verdict : nous allons parcourir le rapport d'audit pour voir quelles sont les faiblesses de notre Active Directory relevée par Purple Knight.
En ce qui me concerne, l'Active Directory de mon lab a obtenu la lettre B et le score de 88%. Ici, plus le score est élevé, mieux c'est !
Ce qui m'intéresse dans un premier temps, c'est le résultat pour la ligne "IOEs found", 15 dans mon cas. En fait, IOE signifie Indicators of Exposure (Indicateurs d'exposition) et cela correspond au nombre de règles pour lesquelles mon Active Directory n'est pas conforme aux recommandations.
En descendant dans la page, nous pouvons ceux qui sont critiques et qu'il faut traiter en priorité. En cliquant sur le lien "Read More" on est envoyé directement à la section du rapport qui donne des détails techniques sur la règle, mais aussi les éléments de l'Active Directory concernés.
Toujours un peu plus bas dans le rapport, il y a un score par catégorie cette fois-ci. Sur son site, Semperis précise : "Le score global moyen de Purple Knight est de 61 %, la sécurité de Kerberos étant en moyenne de 43 % et celle de Group Policy de 58 %.", ce qui vous permettra de vous situer. En naviguant dans le menu à gauche du rapport, on peut parcourir chaque section et voir l'ensemble des points vérifiés avec le résultat associé.
Selon les résultats et le contenu du rapport, il conviendra d'analyser chaque point afin de mettre un plan d'action pour y remédier. Selon votre score initial, fixez-vous l'objectif d'atteindre un score minimum de 90% même si l'idéal c'est bien sûr 100%.
A chaque fois, différentes informations sont fournies comme le niveau de sévérité, une description, la probabilité de compromission en exploitant cette faiblesse, des détails sur les éléments de votre Active Directory concernés par la règle, ainsi que des informations sur les étapes à réaliser pour résoudre ce défaut de sécurité.
La règle ci-dessous m'indique que j'ai un compte administrateur sur mon Active Directory qui est actif (utilisable, disons), mais qui n'a pas été utilisé depuis longtemps.
Le compte en question, nommé "wapt.wads", est listé par l'outil pour m'aider à résoudre le problème. Son emplacement dans l'annuaire est indiqué, tout comme la date de dernière connexion.
Après avoir résolu le problème, l'élément passe en vert (bien sûr, il faut relancer une analyse) :
Ce qui est plaisant avec Purple Knight, c'est qu'il fait le lien entre les points vérifiés et les recommandations du MITRE et de l'ANSSI. Du coup, si l'on prend l'exemple de l'ANSSI, chaque élément vérifié à un "ANSSI ID", par exemple "vuln1_user_accounts_dormant", que l'on peut retrouver dans le guide "Point de contrôle de l'Active Directory" de l'ANSSI disponible ici. C'est très pratique, car Purple Knight permet de voir rapidement si notre Active Directory respecte les recommandations de l'ANSSI.
Enfin, sachez que vous pouvez retrouver l'ensemble de vos rapports d'audit dans le répertoire "Output" de Purple Knight :
V. Conclusion
Pour auditer l'Active Directory, Purple Knight est une très bonne solution complémentaire à Ping Castle. Même s'il y a des règles communes, les éléments sont présentés différemment donc cela peut vous aider à mieux comprendre certains points à corriger. Les deux outils étant gratuits, il me semble pertinent d'auditer son annuaire Active Directory avec les deux outils d'autant plus que les scans s'effectuent rapidement.
Pour terminer, voici une liste de tutoriels qui pourront vous aider à corriger certains points :
- Comment réinitialiser le mot de passe du compte krbtgt ?
- Politiques de mots de passe Active Directory
- Verrouillage des comptes Active Directory
- Empêcher les non-administrateurs d'ajouter des machines au domaine Active Directory
- Activer la corbeille Active Directory
- Le groupe Protected Users de l'Active Directory
Merci pour cette trouvaille bien documentée !
Voici la page de téléchargement ne nécessitant pas de s’enregistrer 🙂
https://www.purple-knight.com/resources/
Merci petit malin ! lol
Merci pour l’article, c’est un super outil. Je trouve le rapport bien plus complet que Ping Castle, c’est vraiment à mettre dans sa trousse à outil.
Je l’ai testé sur plusieurs AD mais à chaque fois, impossible de récupérer les défauts trouvés et les étapes de remédiation, le rapport reste vide sur ces deux lignes, c’est dommage.
Ah ouais ? Sur des environnements similaires ? Si tu exportes le rapport en PDF c’est vide aussi ?
Bonjour
Merci pour cet outil j’ai juste un test critical qui passe en Failed to run, c’est le « AD Certificate Authority with Web Enrollment – PetitPotam and ESC8 » avec comme résultat (NTLM status) Unreachable pourtant Active Directory Certificate Services est bien démarré sur mon serveur ADCS. Avez-vous une idée pourquoi ?
Bonjour,
J’ai lancer PurpleKnight sur notre AD mais cela me rend que des « failed to run » cela veut dire que j’ai un niveaux de sécurité critique ou alors simplement que les scripts n’ont pas pu s’executer sur mon test ?
Cordialement