• Aucun résultat trouvé

COMPARAISON DE DIFFÉRENTS OUTILS D AUDIT ET D ENTRETIEN - ACTIVE DIRECTORY

N/A
N/A
Protected

Academic year: 2022

Partager "COMPARAISON DE DIFFÉRENTS OUTILS D AUDIT ET D ENTRETIEN - ACTIVE DIRECTORY"

Copied!
19
0
0

Texte intégral

(1)

COMPARAISON DE DIFFÉRENTS OUTILS D’AUDIT ET D’ENTRETIEN - ACTIVE DIRECTORY

Livre Blanc

Comme le font remarquer de nombreux rapports et experts du sujet, l’annuaire Active Directory d’une grosse entreprise est souvent un point critique de la sécurité de son infrastructure informatique. En effet, maintenir un Active Directory est à la fois complexe et coûteux, particulièrement lorsqu’il s’agit de s’assurer de sa sécurité alors qu’il contient des milliers d’objets remplis de données sensibles. Afin d’aider à cette tâche, de nombreux guides et outils ont été écrits ou développés. Ce document ne prétend pas tous les présenter, mais propose plutôt une liste épurée d’outils testés afin de souligner leurs points forts, leurs points faibles ainsi que leurs complémentarités. L’objectif final est de permettre au lecteur de pouvoir choisir le ou les bons outils en fonction de ses besoins afin de s’assurer que l’analyse de la sécurité de son Active Directory soit la plus efficace possible.

Référence

Livre Blanc – Active Directory Date

Juin – Août 2021 Rédigé par

Quentin MICHAUD, Margot JOUAULT & Matthieu TOULOUCANON

(2)

SOMMAIRE

Table des matières

I. Introduction ... 1

I. A. Active Directory ... 1

I. B. Kerberos ... 1

I. C. Objectifs de ce livre blanc ... 2

II. Les outils et les ressources... 2

II. A. La liste de l’ANSSI / ORADAD ... 2

II. B. PingCastle ... 3

II. C. BloodHound ... 3

II. D. Saporo ... 4

III. Comparaison des outils ... 4

IV. Cas d'utilisation ... 6

IV. A. Exemple sur l’Active Directory virtuel ... 6

IV. B. Retour d’expérience client ... 9

Analyse PingCastle ... 9

Analyse BloodHound ... 12

V. Conclusion ... 15

VI. Annexes ... 16

VI. A. Guide d’Utilisation BloodHound ... 16

VI. B. Guide d’utilisation Pingcastle ... 17

(3)

Introduction

I. Introduction

I. A. ACTIVE DIRECTORY

Active Directory (qui sera souvent abrégé AD par la suite) est une amélioration de l’annuaire LDAP proposée par Microsoft pour ses systèmes d’exploitation Windows. L’objectif principal de cette technique est de proposer un moyen de gestion centralisé de l’ensemble des ordinateurs, ressources informatiques et personnelles. Il permet de gérer l’authentification sur les postes de travail, l’accès aux différents périphériques, ainsi que l’implémentation de règles de sécurité, tel que l’expiration des mots de passe ou l’obligation de mises à jour. Cet annuaire, bien que basé sur Windows et devant être hébergé depuis un Windows Server, peut gérer des ressources utilisant la plupart des systèmes d’exploitation.

Le serveur en charge de la gestion du domaine Active Directory est appelé un contrôleur de domaine.

La réplication des données entre plusieurs contrôleurs de domaine est prise en charge nativement et permet un stockage des données plus sûr et plus rapide.

Chaque objet possède des propriétés de base et d’autres propriétés peuvent être rajoutées à volonté.

Ces objets peuvent être rangés dans des groupes logiques d’organisation (ces groupes sont les mêmes que pour un LDAP traditionnel) ainsi que dans des groupes leur permettant d’obtenir des droits (accès à une machine, une imprimante, droits d’administration…). Certains de ces groupes sont présents par défaut, et d’autres peuvent être créés selon le besoin de l’entreprise. Par défaut, tout membre de ces groupes hérite des droits de ce groupe.

En outre, pour une grande entreprise, plusieurs LDAP peuvent être reliés entre eux par ce qu’on appelle des trusts. Ces relations de confiance permettent à un Active Directory d’autoriser un autre Active Directory à accéder à ses données. Bien que cela s’avère très pratique voire nécessaire, des trusts mal configurés peuvent amener une potentielle menace à se propager d’AD en AD. Par exemple, une multinationale utilisant un Active Directory par pays pourrait se retrouver avec l’intégralité de ses employés compromis alors que les dégâts auraient pu être limités à un seul pays. C’est pourquoi les relations entre Active Directories doivent être analysées autant que les AD eux-mêmes : si votre AD est sécurisé mais que vous faites confiance à un AD qui ne l’est pas, toute votre protection pourra se révéler inutile.

Lorsqu’un Active Directory est présent sur le réseau d’une organisation, les controleurs de domaine deviennent immédiatement une cible de choix pour les attaquants. En effet, puisqu'il s'agit d'un système d'authentification centralisé, qu'il contient des données sensibles, par exemple tous les digests de connexion de la base de données NTDS (Naval Tactical Data System), et que c'est un outil parfois mal entretenu sont autant de raisons qui en font une cible de choix. Si un attaquant arrive à passer Administrateur du domaine, il est à même de changer tous les mots de passe, accéder à toutes les données et de s’authentifier sur tous les ordinateurs enregistrés dans l’AD.

I. B. KERBEROS

En proposant un service d’authentification centralisée, Microsoft a choisi d’utiliser un protocole d’authentification particulier, basé sur le protocole Kerberos, développé par le MIT. Ce protocole utilise un système de tickets au lieu des traditionnels mots de passe. Son objectif principal est de pouvoir gérer de manière sûre une authentification entre deux services qui communiquent via un réseau considéré comme n’étant pas de confiance. Ainsi, au lieu de faire transiter des condensats de mots de passe sur le réseau, qui présentent le risque d’être interceptés, déchiffrés et réutilisés, ce sont les tickets qui circulent, chiffrés avec la clé privée de chaque utilisateur, destinés à un seul service et disposant d’une date d’expiration. Ainsi, si un attaquant venait à intercepter un ticket, il ne pourrait l’utiliser que pour s’authentifier sur ce service en particulier et ce durant une durée très limitée par rapport à la durée de vie d’un mot de passe.

Le fonctionnement du protocole ne sera pas présenté en détail dans ce livre blanc, mais le comprendre est très utile pour être capable d’anticiper et de contrer les attaques utilisant ce protocole. Une vidéo très bien faite expliquant ce protocole est disponible ici : https://www.youtube.com/watch?v=5N242XcKAsM. Il

(4)

Les outils et les ressources

est important de savoir que, si ce protocole a des avantages par rapport à l’envoi de condensats de mots de passe, son mode de fonctionnement permet des attaques particulières, dont la facilité de mise en œuvre, la possibilité de succès et l’impact peuvent être facilités par des faiblesses de configuration qui doivent être systématiquement étudiées lors d’un audit d’Active Directory.

Les vecteurs d’attaque sur un Active Directory contiennent très souvent l’utilisation du protocole Kerberos. C’est pour cela qu’il est important de le comprendre afin de pouvoir maîtriser l’audit des situations d’attaque le concernant. Une explication de l’Active Directory, de Kerberos et un panel très complet de l’ensemble des attaques possibles est disponible ici : https://zer1t0.gitlab.io/posts/attacking_ad/.

I. C. OBJECTIFS DE CE LIVRE BLANC

Ce livre blanc vise à proposer différents outils et ressources afin d’améliorer la qualité et l’efficacité des audits d’Active Directory. Ces ressources seront présentées et leurs cas d’utilisation étudiés avant de discuter des complémentarités de ces derniers.

Le but principal de cette étude est d’effectuer une analyse comparative des différents outils listés ci- dessous, et d’autres outils éventuels qui pourraient venir s’ajouter à la liste s’ils venaient à être jugés suffisamment intéressants. Cette étude se basera majoritairement sur les points suivants :

Qualité de l’analyse

Mode de fonctionnement (dump et analyse hors système, en continu…)

Simplicité de mise en place et d’utilisation

Niveau d’intrusion côté client (droits, accès, agents…)

Prix et comparaison des différentes solutions au sein d’un même outil

Possibilités d’amélioration ou de personnalisation

Afin de pouvoir évaluer ces points de la manière la plus approfondie possible, nous avons choisi de suivre une procédure cadrée permettant de comparer les outils de différentes manières.

Dans un premier temps, il est nécessaire de prendre en main les différents outils, d’étudier leur fonctionnement et recenser leurs principales caractéristiques. A côté de cela il est important de regarder du côté des services proposés pour les outils payants, ainsi que le prix, les droits d’utilisation et les licences associées. Cette prise en main a été effectuée sur de petits environnements dans des VMs.

Après la prise en main effective des outils, un test plus conséquent sur un environnement virtualisé et créé de toutes pièces a été effectué (notamment à l’aide de l’outil BadBlood téléchargeable via le lien suivant : https://github.com/davidprowe/BadBlood), afin d’établir une première comparaison des résultats produits par les outils.

II. Les outils et les ressources

II. A. LA LISTE DE L’ANSSI / ORADAD

L’évaluation de la sécurité d’un AD de l’ANSSI repose sur une liste de critères établie par l’agence pour évaluer de manière claire et précise la sécurité d’un AD. Ces règles sont disponibles ici : https://www.cert.ssi.gouv.fr/uploads/guide-ad.html. Chaque règle correspond à un niveau de 1 à 5. Pour obtenir le niveau, tous les critères correspondant au niveau visé doivent être validés. Un Active Directory possédant le niveau 5 a donc passé tous les points de contrôle de l’ANSSI avec succès et peut être considéré comme étant « à l’état de l’art ». Pour référence, le niveau 3 correspond à un niveau de sécurité basique qui correspond à une installation par défaut.

Cette grille d’évaluation est une référence pour l’ANSSI : tous les OIV et organismes d’administration audités par elle le sont via cette notation. L’ANSSI a développé un outil de dump d’AD, nommé ORADAD (https://github.com/ANSSI-FR/ORADAD), qui permet aux entreprises bénéficiaires de l’évaluation de l’ANSSI d’effectuer un dump avant de l’envoyer aux experts de l’ANSSI pour analyse via leur programme ADS

(5)

Les outils et les ressources

(https://www.ssi.gouv.fr/actualite/le-service-active-directory-security-ads-accompagner-la-securisation-des- annuaires-active-directory-des-acteurs-critiques/).

Cependant, si l’ANSSI utilise un outil particulier pour analyser ces dumps et donner une note de manière rapide et efficace, il n’a pas été publié publiquement et l’ANSSI n’a pas montré d’intention à ce sujet.

Par ailleurs l’évaluation par des personnes extérieures est assez complexe car la liste des règles publiées n’est pas complète : seuls les critères des niveaux 1 à 3 ont été publiés pour le moment, même si l’ANSSI assure qu’elle sera complétée très prochainement.

II. B. PINGCASTLE

PingCastle (https://www.pingcastle.com/) est un outil développé par une entreprise française dirigée par Vincent LE TOUX (responsable de l'équipe CERT du groupe ENGIE et PDG de My Smart Logon) dont la version basique est open source (https://github.com/vletoux/pingcastle) et sous la forme d’un simple outil d’audit générant un rapport au format html, alors qu’une version professionnelle pour auditeurs est disponible permettant, entre autres, d’accéder à de nouveaux graphiques ainsi qu’à une notation utilisant les points de contrôle de l’ANSSI évoqués plus haut. Pour la version basique, il prend la forme d’un simple exécutable à lancer sur une machine, avec plusieurs options disponibles, et génère le rapport immédiatement.

Leur site web ne semble pas indiquer qu’ils prennent en charge Azure.

II. C. BLOODHOUND

BloodHound est un outil open source sous licence GNU General Public License (https://github.com/BloodHoundAD/BloodHound) écrit en JavaScript et interagissant avec une base de données Neo4j. Il s’agit d’un outil permettant de visualiser sous forme de graphe un annuaire Active Directory, permettant de représenter à la fois les objets, les relations et les propriétés de ces derniers. Il fonctionne à partir de dumps réalisés par un outil associé, également open source, nommé SharpHound, et écrit en C# ou PowerShell. Une version bêta pour Azure, nommée AzureHound, est également disponible.

Cet outil permet, grâce à des requêtes déjà prédéfinies, de trouver des informations utiles à l’évaluation de la sécurité d’un Active Directory telles que « trouver les chemins les plus courts vers les administrateurs de domaine » (sous-entendu depuis le PC d’où a été lancé le dump), ou « trouver les utilisateurs kerberoastables avec le plus de privilèges ». Il est également possible de se définir des requêtes personnalisées en utilisant le langage d’interrogation de Neo4j, nommé Cypher.

Si le but principal de cet outil est de permettre aux Red Teams d’identifier les différents chemins d’attaque pour prendre le contrôle et élever les privilèges d’un attaquant dans un domaine, le point de vue unique qu’il offre amène de plus en plus de gens à le considérer pour un usage défensif (https://posts.specterops.io/bloodhound-versus-ransomware-a-defenders-guide-28147dedb73b).

Une version professionnelle de BloodHound pour les SOC, proposé en SaaS avec des dumps automatisés et un suivi de l’évolution de la sécurité de l’AD (https://bloodhoundenterprise.io/).

(6)

Comparaison des outils

Tableau comparatif entre BloodHound et BloodHound Enterprise (https://bloodhoundenterprise.io/bloodhound-open-source/)

II. D. SAPORO

Saporo (https://www.saporo.io/) propose une interface web interactive. Un dump est réalisé avec un exécutable similaire à SharpHound, les chemins d’attaque sont ensuite évalués grâce à une analyse basée sur les graphes. L’outil permet une analyse régulière de l’AD ou Azure AD. Il est possible de visualiser les goulots d’étranglement permettant d’accéder à de nombreux utilisateurs et les nœuds à risque avec à chaque fois une description et des recommandations afin d’y remédier. Des notations et évaluations de niveau de maturité sont disponibles.

III. Comparaison des outils

Critères BloodHound PingCastle

Qualité de l’analyse

L’analyse est axée sur les différents moyens de gagner des privilèges sur l’AD en exploitant

des vulnérabilités connues.

L’analyse se repose sur une liste de règles constamment améliorée et mise à jour, et qui

s’appuie sur des listes de référence : liste de points de contrôle de l’ANSSI, MITRE ATT&CK

entre autres :

(https://www.pingcastle.com/PingCastleFiles/

ad_hc_rules_list.html) Mode de

fonctionnement

Un dump est réalisé à l’aide d’un exécutable fourni, nommé SharpHound : il fournit une archive zip contenant des données au format

Le rapport est généré immédiatement au moment du dump. Il suffit de lancer l’exécutable et de choisir les options

(7)

Comparaison des outils

json qui peuvent ensuite être directement importées dans la base de données neo4j via

BloodHound. BloodHound est ensuite une application standalone qui utilise cette base

de données locale.

souhaitées. Un rapport HTML est alors généré, et éventuellement un rapport XML qui peut être réutilisé par l’exécutable pour fusionner

différents rapports.

Simplicité de mise en place et d’utilisation

Le logiciel BloodHound ainsi que neo4j (le plus simple étant d’installer l’application neo4j

Desktop) doivent être installées sur la machine sur laquelle sera effectuée l’analyse.

En fonction de la taille de l’AD analysé, une très bonne capacité de RAM est recommandée. L’exécutable SharpHound doit être lancé sur une machine reliée au domaine.

Attention : comme ces outils ont été créés pour du pentest, il est utilisé par de nombreux

attaquants et sera signalé comme très dangereux par quasiment tous les antivirus.

Il suffit de télécharger l’exécutable sur une machine reliée au domaine et de lancer

l’exécution. Différentes options sont proposées, choisir celles voulues et continuer.

Le rapport HTML sera directement généré.

L’exécutable peut également être utilisé pour fusionner plusieurs rapports entre eux, notamment afin d’obtenir une vision globale lorsqu’on audite plusieurs AD possédant des

trusts entre eux et qu’un seul dump ne permet pas de recueillir immédiatement

toutes les informations.

Niveau d’intrusion côté client

SharpHound a besoin d’être lancé depuis un ordinateur relié au domaine visé (il est possible de le faire depuis un ordinateur non

relié, mais cette méthode n’est pas recommandée). Le dump contiendra énormément d’informations potentiellement

sensibles tirées de l’AD, il est donc à utiliser avec prudence. Ces données sont répliquées

dans une base de données neo4j lors de l’import dans BloodHound, un mot de passe

fort sur la base de données concernée est hautement conseillé. Le chiffrement est

également un plus.

PingCastle a été conçu afin de pouvoir être lancé de n’importe quel ordinateur joint au domaine, peu importe son niveau de droits.

En effet la vérification des règles ne nécessite pas de droits admin mais juste une connexion

à l’AD.

Prix des différentes

solutions

Gratuit (open source) Version free gratuite et open source (non destinée à un usage commercial)

Version auditor à 2000€/an

Version professional et enterprise également disponibles

Amélioration et personnalisation

L’utilisation d’une base de données neo4j permet d’utiliser son langage de requête, nommé Cypher, pour effectuer des requêtes

personnalisées sur les données de l’AD.

Ces requêtes peuvent également être enregistrées dans BloodHound afin d’être

réutilisées. Un guide pour l’utilisation de Cypher est disponible ici : https://neo4j.com/docs/cypher-

refcard/current/

Non

(8)

Cas d'utilisation

IV. Cas d'utilisation

IV. A. EXEMPLE SUR L’ACTIVE DIRECTORY VIRTUEL

Dans cette partie nous allons voir comment PingCastle et BloodHound peuvent être utiles dans le cas d’un audit. Pour cela nous avons créé un AD fictif en utilisant le script BadBlood (https://github.com/davidprowe/BadBlood) contenant environ 250 utilisateurs, 530 groupes et 270 ordinateurs.

A la différence d’un AD réel, lorsque l’on crée un environnement virtuel avec BadBlood, les groupes et les droits des utilisateurs sont faits au hasard, ce qui rend l’environnement très vulnérable, avec par exemple des imbrications de groupes permettant des élévations de privilèges. Ce scénario est tout de même très intéressant car dans la réalité, il n’est pas rare de trouver des utilisateurs avec les mauvais droits ou appartenant à plusieurs groupes à la fois, ceci résultant d’une erreur humaine. Sans action de la part des administrateurs, un AD de ce type est fortement vulnérable.

La démarche de cette démonstration est la suivante:

Réaliser un rapport avec PingCastle afin de confirmer la vulnérabilité d'imbrication de groupe.

Trouver un chemin d'attaque vers le contrôleur de domaine grâce à une analyse via BloodHound et au rapport de PingCastle.

Corriger une vulnérabilité liée à ce chemin et refaire un dump avec SharpHound afin de comparer les résultats.

Voici un extrait d'un problème relevé par PingCastle:

L’énoncé encadré en rouge fait référence au problème d’imbrication de groupe évoqué précédemment : un grand nombre d’utilisateurs se trouvent plus ou moins directement dans des groupes à privilèges élevés.

En chargeant les données de notre AD sur BloodHound grâce à l’outil SharpHound, nous pouvons visualiser le problème. Par exemple, voici les chemins d'attaque les plus courts pour un certain utilisateur, "FELECIA_VELEZ" :

(9)

Cas d'utilisation

On constate qu'une des sources principales du problème vient du fait que l'utilisateur fait partie du groupe "LU-COC-DISTLIST" qui a notamment des droits "GenericAll" et permet de modifier le mot de passe d'un administrateur du domaine.

(10)

Cas d'utilisation

Pour corriger cette erreur de configuration, nous proposons de retirer l'utilisateur de ce groupe.

Ce faisant, nous pouvons recharger les données de notre AD modifié sur BloodHound et ainsi constater qu’il existe toujours des chemins d'attaque dus à la nature aléatoire de notre AD de test, mais ils sont moins directs dans ce cas précis.

(11)

Cas d'utilisation

Nous ne relançons pas d’analyse avec PingCastle car l’utilisateur peut encore prendre le contrôle du compte administrateur du domaine. Pour résoudre complètement le problème, il faudrait réitérer la procédure précédente pour tous les utilisateurs avec tous les groupes dans lesquels ils ne sont pas censés être.

Dans ce cas d’utilisation, PingCastle nous a permis d’identifier les problèmes de sécurité et BloodHound de visualiser les relations entre objets afin de corriger les vulnérabilités liées aux chemins d’attaque.

IV. B. RETOUR D’EXPERIENCE CLIENT

Réalisé par Quentin MICHAUD

Dans le cadre d’un audit de sécurité d’une PME européenne axé sur l’analyse de son exposition à une attaque par ransomware, nous avons pu utiliser PingCastle et BloodHound sur leur AD. Cet AD contenait environ 3500 utilisateurs et 2000 groupes.

ANALYSE PINGCASTLE

Grâce à un accès RDP et à un compte AD temporaire sur l’infrastructure du client, nous avons pu lancer facilement PingCastle et obtenir énormément d’informations très utiles en quelques heures. En comptant l’analyse des résultats, une demi-journée a été suffisante pour récupérer de nombreuses informations, les trier en fonction de l’objectif visé, et approfondir les résultats de l’analyse principale afin de pouvoir être le plus précis possible lors du retour au client.

Lors de l’analyse principale, le rapport de PingCastle mettait en évidence le fait que le SMBv1 était activé sur les 2 controleurs de domaine. Ce protocole est déprécié et cible de nombreuses attaques, dont le fameux exploit EternalBlue utilisé par WannaCry. Cette vulnérabilité critique a fait l’objet d’un patch de sécurité de Microsoft (https://docs.microsoft.com/fr-fr/security-updates/SecurityBulletins/2017/ms17- 010?redirectedfrom=MSDN), et ce même pour des systèmes d’exploitation non supportés (c’est dire l’ampleur de la faille), mais de nombreux systèmes restent non patchés. A ce jour, l’utilisation du protocole SMBv1 en général est déprécié et signe d’une infrastructure potentiellement vulnérable. Ce point est donc extrêment important et sera analysé plus en détails.

(12)

Cas d'utilisation

A côté de cela, PingCastle nous signale la présence de nombreux PC avec un système d’exploitation plus supporté, une autre cible de choix pour les ransomware car ces postes ne recoivent plus de mises à jour de sécurité. C’est hélas une situation courante dans de nombreuses entreprises et autres organisations qui ne souhaitent pas ou ne peuvent pas engager les sommes nécessaires pour les licences nécessaires aux mises à jour de leurs ordinateurs. De plus, cela est en assumant que les ordinateurs en question sont suffisamment récents / puissants pour accueillir les nouveaux systèmes d’exploitation en question. Sinon, leur remplacement est nécessaire pour la mise à jour du système d’exploitation, avec un coût que très peu d’entreprises peuvent se permettre.

Si la plupart des systèmes d’exploitation relevés sont des Windows 7, on relève également quelques autres OS en nombre très limité (Windows XP et 2008) ainsi que des Windows 10 non mis à jour. C’est un autre problème qui se pose alors car les Windows 10 sont censés bénéficier des mises à jour de sécurité gratuitement et le fait que certains ne soient pas mis à jour peut poser des questions sur le fonctionnement de la gestion des mises à jour des PC de l’entreprise reliés à Active Directory, qui doivent déboucher sur des discussions avec le client.

(13)

Cas d'utilisation

D’autres points importants sont également relevés par le rapport principal de PingCastle, notamment :

Mot de passe du compte KRBTGT non changé régulièrement : possibilité de persistance avancée d’un attaquant avec un golden ticket.

Politique de mots de passe faible : plus de 100 utilisateurs ont des mots de passe qui n’expirent jamais.

Les administrateurs ne sont pas dans un groupe protégé, ce qui fait que les comptes admin peuvent être « impersonate » par des comptes de service.

La dernière sauvegarde de l’AD recensée a eu lieu il y a plus d’un mois, ce qui peut poser de sérieux problèmes en cas de ransomware.

Plus d’une centaine d’objets « inactifs » (pas d’activité depuis les 6 derniers mois) dont un Domain Controller ont été détectés. Les objets inactifs sont des portes d’entrée supplémentaires non surveillées et doivent être nettoyés.

Cette liste n’est qu’une représentation rapide des points les plus importants relevés par l’analyse PingCastle dans l’optique d’une lutte contre les ransomwares. De nombreux autres problèmes et mauvaises configurations ont été relevées, ce qui montre l’utilité de PingCastle pour ce genre d’audit où des heures voire des jours auraient été nécessaires pour vérifier fastidieusement ces règles à la main, avec une grande chance de manquer plusieurs problèmes.

En plus de l’analyse principale, PingCastle permet de cartographier les relations de l’AD entre forêts et les trusts présents afin de pouvoir mieux comprendre l’environnement autour de l’AD ciblé. En plus de cela, dans le cas d’un audit approfondi, il est possible de lancer PingCastle depuis chacun des AD ou forêt (filiales, découpage par pays…) et de visualiser rapidement les résultats via cette carte.

Enfin, PingCastle permet de faire des scans approfondis pour certains problèmes. Dans notre cas, il est possible de faire une énumération complète des serveurs enregistrés sur l’AD qui utilisent SMBv1 et quelles versions sont supportées exactement. Nous avons donc remarqué que quasiment tous les serveurs et pas uniquement les DC avaient le SMBv1 activé, augmentant donc davantage l’importance du problème.

(14)

Cas d'utilisation ANALYSE BLOODHOUND

L’analyse BloodHound a été plus complexe notamment au moment du dump : le collecteur de BloodHound, SharpHound, est présent dans la plupart des bases de données antivirus et se fera immédiatement isoler et signaler. Cela a été le cas chez le client ici (ce qui a tout de même l’avantage de

« tester » le fonctionnement de l’antivirus et du SOC). A l’instant où l’archive contenant SharpHound a été décompressée, le binaire a été isolé et une alerte envoyée. Il existe également un collecteur PowerShell, mais Microsoft est devenu encore plus draconien avec les scripts PowerShell qu’avec les exécutables étrangers dus à l’augmentation du nombre d’attaques utilisant ce moyen, je suis donc resté sur le choix de l’exécutable.

Après une demande au client il a été sorti de l’isolation mais je ne pouvais pas l’exécuter. Suite à une nouvelle demande, cette fois j’ai pu exécuter le binaire mais sans options (on peut donner des options à SharpHound pour affiner son comportement via la ligne de commande).

Je me suis donc contenté d’un dump général qui a été analysé en utilisant les requêtes pré- enregistrées ainsi qu’en s’appuyant sur l’article cité précédemment (https://posts.specterops.io/bloodhound- versus-ransomware-a-defenders-guide-28147dedb73b) qui par chance traite justement de l’usage défensif de BloodHound pour lutter conte les ransomwares.

Une possibilité intéressante non présente de base dans BloodHound est de lister les plus courts chemins des PC aux systèmes d’exploitation non supportés jusqu’à des comptes à privilège. Cela permet de se rendre compte des possibilités de prise du contrôle de domaine en s’attaquant aux ordinateurs supposés les plus vulnérables, et est faisable facilement avec l’interface de BloodHound et quelques connaissances en Cypher. BloodHound possède déjà une requête listant l’ensemble des PC avec des systèmes d’exploitation plus maintenus mais dans notre cas il y a bien trop de résultats, ce qui rend l’analyse pour le moins compliquée…

On se concentre donc sur l’analyse des PC possédent un système d’exploitation Windows XP car il s’agit des plus anciens et qu’il y en a un nombre raisonnable. Pour cela, on doit utiliser Cypher. La documentation (https://neo4j.com/docs/cypher-manual/current/) est très bien faite et il peut être très utile de s’inspirer des requêtes déjà prêtes dans BloodHound en lisant son code source (https://github.com/BloodHoundAD/BloodHound/blob/0da9efe76570bdf9403c89700e87fe4666ea1209/src/

components/SearchContainer/Tabs/PrebuiltQueries.json). On arrive donc à extraire les quelques PC possédant un système d’exploitation Windows XP :

(15)

Cas d'utilisation

On a notamment accès à tous les attributs de l’objet, et on peut relever directement des informations essentielles, notamment que le PC a été utilisé récemment et le mot de passe changé, ainsi que le système d’exploitation précis : Windows XP Professionnel SP2. Cela nous indique soit que le PC en question n’a pas forcément reçu les dernières mises à jour de sécurité disponibles pour Windows XP (https://fr.wikipedia.org/wiki/Windows_XP#Service_Packs_et_mises_%C3%A0_jour). Cela augmente l’intérêt de cette cible pour un attaquant.

(16)

Cas d'utilisation

Hélas sur les trois PC disponibles, le bouton « Reachable High Values Targets » indique zéro.

Cependant il est possible d’ajouter ses cibles personnalisées en étudiant les comptes intéressants de l’AD et travailler à atteindre ces cibles-là plutôt que les comptes Administrateur par défaut. Enfin, BloodHound nous offre la possibilité de lister les comptes qui ont des droits sur les PC en question. Cela nous permet de savoir qui a pu laisser sur ce PC des documents ou autres informations auxquels nous pourrions accéder si nous parvenions à en prendre le contrôle. Ou de lancer une attaque sur un compte se connectant à ce PC pendant que nous l'avons infecté, en volant ses identifiants par exemple. Cet exemple n’est qu’un rapide aperçu de ce que nous permet de faire BloodHound en tant qu’évaluation des risques, des escalades de privilèges et des points d’entrée d’un Active Directory.

(17)

Conclusion

V. Conclusion

Ces trois différents outils sont donc assez différents pour être adaptés à trois cas d'utilisations distincts: l'audit, le pentest et la maintenance.

Pour l'audit, PingCastle est le plus adapté grâce à son rapport HTML clair, des critères basés sur ceux de l'ANSSI et ne réalise pas de dump complet de l'AD qui serait très sensible à manipuler,

contrairement aux autres.

Pour les tests d’intrusion, BloodHound, fortement orienté "Red Team" est quant à lui le plus adapté grâce à ses requêtes permettant de prendre le contrôle d'un poste administrateur.

Pour la maintenance, Saporo, le seul s'exécutant régulièrement est le plus apte à être utilisé dans cette démarche car il permet la maintenance de la sécurité d'un Active Directory sur la durée.

Quel que soit le choix retenu, il est important de retenir que les outils présentés ici ne sont pas les seuls, ni forcément les meilleurs, qui permettent d’analyser la sécurité d’un Active Directory. Si ce livre blanc essaie de donner une base d’outils pour la plupart des cas menant à l’audit d’un AD, d’autres outils (Alsid, AD control path de l’ANSSI, BloodHound Enterprise, pour ne citer qu’eux) peuvent également se révéler être de bonnes alternatives.

(18)

Annexes

VI. Annexes

VI. A. GUIDE D’UTILISATION BLOODHOUND

Prise en main de BloodHound :

Pour lancer l’application BloodHound, il faut dans un premier temps démarrer une base de données orientée graphe sur l’outil neo4j. Ensuite, pour charger les données d’un Active Directory déjà existant, il faut réaliser un dump de celui-ci et le réinjecter dans BloodHound. Pour cela, on peut utiliser l’outil Sharpound, localisé dans le répertoire Ingestors et exécutable à l’aide de la commande : SharpHound.exe - CollectionMethod All. Un fichier ZIP est alors automatiquement généré dans le même répertoire, il ne reste plus qu’à l’injecter dans BloodHound grâce au bouton upload.

Fonctionnalités et caractéristiques techniques :

BloodHound s’appuie sur la notion de graphe qui peut être résumé en trois éléments : - Les Nodes (nœuds) : ce sont globalement les objets (utilisateur, domaine, groupe…)

- Les Edges (arêtes) : ce sont les relations entre les objets (l’appartenance à un groupe, fait d’être administrateur d’un objet...)

- Les paths (chemins) : ce sont des ensembles de Nodes connectés par des Edges (ce sont des chemins qui permettent de rejoindre un objet depuis un autre).

Sur l’interface de BloodHound, en déroulant le menu sous on trouve trois boutons principaux :

- Database Info : affiche les informations de la base de données telles que son adresse, le nombre d’utilisateurs, le nombre de postes ou encore le nombre de groupes.

- Node info : lorsque l’on sélectionne un objet, ce bouton affiche l’ID de celui-ci ainsi que d’autres paramètres tels que la date de dernière mise à jour du mot de passe, la date de la dernière connexion ou encore si le compte dispose des droits admins ou non.

- Analysis : recueil des requêtes prédéfinies. Pour lancer des requêtes personnalisées, on peut utiliser la barre de recherche “Raw Queries” en bas de l’écran.

(19)

Annexes

VI. B. GUIDE D’UTILISATION PINGCASTLE

Prise en main de PingCastle :

Le fichier se télécharge depuis le site officiel : https://www.pingcastle.com/download Il suffit de lancer la commande PingCastle.exe sur l’ordinateur client.

Fonctionnalités et caractéristiques techniques :

Lorsqu’on lance la commande PingCastle.exe, un shell nous propose différents modules :

1. Healthcheck : établit un score avec les vulnérabilités découvertes. Cette fonction est la plus utilisée.

2. Permissions : permet de savoir qui peut prendre le contrôle des comptes admins, c'est un genre de réécriture de "AD_Control_Path" en plus rapide et sans le droit ni la difficulté à mettre en place.

3. Conso : Génère un rapport condensé sans explications détaillées des vulnérabilités trouvées.

Le rapport est segmenté en plusieurs onglets, avec l'ajout de la cartographie.

4. Carto : Création automatique d'une cartographie de(s) domaine(s) de confiance avec les liens directs (peut aller jusqu’à 5 niveaux de profondeur).

5. Scanner : Ce module permet de scanner différents éléments indépendants, tels que le listing des anti-virus présent sur le domaine, SBM, les partages... Il est très intéressant pour répertorier rapidement des objets.

6. Advanced : permet de modifier certains paramétrages pour obtenir un rendu personnalisé.

Cela va ensuite générer un rapport. Ce dernier s’articule en trois parties :

La première, « Indicators », permet de visualiser les « criticités » des processus par le logiciel. Chaque processus est noté sur 100 et on peut visualiser le score à l’aide d’un compteur.

Le deuxième, « Risk model », va détailler les vulnérabilités trouvées.

La troisième, détaille chaque vulnérabilité avec un texte explicatif

Le mode carto quant à lui génère une carte représentant des annuaires actifs liés par des “trusts”. Elle peut être plus ou moins précise en fonction de la fraîcheur des informations et de la profondeur des liens de confiance.

Références

Documents relatifs

Implémentation des appels système sous Linux – 177 phys() , de numéro 52, permet à un processus de spécifier une adresse physique (et non une adresse virtuelle) ; sa fonction de

Users who are part of its membership have the ability to create, modify, and delete many of the accounts that are stored in Active Directory.They can manage accounts in any OU

Active Directory uses a multimaster replication model in which all domain controllers are able to accept changes to the database and replicate those changes to all other

• on remarque enfin que des actions qui pourraient trouver leur place dans une démarche ou un parcours d’ensemble d’éducation à la santé et à la citoyenneté (travail autour de

Contexte : Mise en place d’un serveur de domaine sous Windows Server 2019 avec les services AD-DS, DHCP, DNS et mise en place GPO pour

utilisateurs du domaine Quelques groupes locaux de domaine prédéfinis (con- trôleur de domaine). Gpes

Active Directory regroupe sous un seul nom un ensemble considérable de services, et désigne en fait, plus qu’un produit ou qu’un composant logiciel, un ensemble de standards et

✗ smb && kerberos ,  ldap && kerberos ,  dcerpc && kerberos  : .