Sortie de la version 3.0 de Bloodhound
I. Présentation
Le fameux outil d'analyse de la sécurité de l'Active Directory, Bloodhound, vient de paraître dans sa version 3.0, comme l'indique Andy Robbins de la société Specter Ops, éditrice de cette solution (gratuite et open-source) : Introducing BloodHound 3.0
Pour rappel, BloodHound est un outil de sécurité offensive et défensive qui vise à identifier les vecteurs d'attaque et de compromission d'un objet A vers un objet B. Cela en identifiant et en recherchant les liens d'appartenance ou d'action, directs ou indirects, entre ces objets. Cet outil utilise notamment la théorie des graphs pour repérer et dessiner des chemins d'attaques du type : "Je suis membre du groupe A, lui-même membre du groupe B, alors je peux être administrateur local sur un poste Y sur lequel est connecté un utilisateur X membre du groupe Administrateur du domaine".
En utilisant tour à tour cette suite de liens, je peux donc obtenir les droits administrateurs du domaine. Cet outil est autant utile pour les attaquants que pour les défenseurs, car il change la manière dont les données sont analysées et présentées. Bloodhound est notamment la source de ce type de graphique :
II. Quelles nouveautés ?
Cette nouvelle version, qui entraîne une incompatibilité avec les schémas et bases de données des versions précédentes, apporte 3 nouvelles recherches de vecteurs d'attaque :
- Les contrôles GMSA : Les Group Managed Service Accounts (GMSAs) sont des comptes de services dont le mot de passe est géré par l'Active Directory. En cela, il se peut que certaines personnes aient besoin de pouvoir lire ce mot de passe. BloodHound va donc chercher à lister quels sont les utilisateurs ayant les droits de lecture sur le mot de passe d'un compte de type GMSA, ce qui pourra, en cas de compromission de ces comptes utilisateurs, donner accès à un compte de service potentiellement privilégié, voir au contrôle du service ou du système hébergeant le service exécuté par le compte de service. La détection d'un chemin d'attaque se présentera comme ceci dans BloodHound 3. :
- Les Contrôles d'OU : Cette nouvelle recherche porte sur la possibilité, pour un utilisateur contrôlant une OU, d'affecter à cette OU des ACE (Access control entry, ou permission d'accès) qui vont directement être héritées par les membres de cette OU. Un attaquant sera alors en capacité de modifier certaines conditions ou règles de sécurité s'appliquant aux membres de l'OU contrôlées. l'ajout d'une ACE à une OU est déjà prise en compte dans la suite de scripts Powershell offensifs Powerview (New-ADObjectAccessControlEntry).
- Le SID History : Cet attribut, présent comme un héritage après une migration d'un domaine Active Directory vers un autre, peut parfois permettre à des utilisateurs anciennement privilégiés (sur l'ancien domaine) de garder leurs privilèges sur d'ancien objets présents dans le nouveau domaine. Ces droits, un peu dissimulés, peuvent donc également être exploités par un attaquant s'ils sont découverts. La détection d'un chemin d'attaque se présentera comme ceci dans BloodHound 3. :
Cette nouvelle version de Bloodhound, qui est en charge de l'analyse à froid des données, parait également avec une nouvelle version du client de récolte de celles-ci (l'Ingestor, nommé SharpHound). Ce client a subit de plusieurs améliorations et possède à présent de nombreux paramètres. Pour une utilisation basique, exécuté depuis une machine du domaine en tant qu'utilisateur du domaine, la commande à utiliser reste la suivante :
SharpHound.exe
Sont également présents dans cette nouvelle version des améliorations de performance tant dans la partie collecte de données (SharpHound) que lors de leur analyse à froid. Notamment grâce à une refonte de la logique de parsing du fichier JSON produit par SharpHound et de son import. Ces améliorations de performance seront présentées plus tard par l'éditeur.
Aussi, l'interface de recherche BloodHound a également subit quelques améliorations sur la façon dont les données d'un objet sont présentées. Là ou certaines informations étaient affichées par défaut à chaque sélection d'un objet, il faudra maintenant cliquer sur un bouton d'action, qui entraînera une requête au moment du clic pour afficher l'information. Cela limite notamment le nombre de requête (parfois non utiles) effectuées à chaque sélection d'objet.
La second amélioration graphique concerne la façon dont seront affichés les graphiques ayant un très grand nombre de nœuds, qui proposera notamment de sauvegarder les nœuds présentés dans le résultat de requête afin de les afficher dans un schéma à part au besoin. A noter que le choix d'afficher les données mêmes si cela entraînera un ralentissement de la GUI est toujours possible.
III. Téléchargement des dernières versions
- La dernière version de Bloodhound peut être trouvée ici : https://github.com/BloodHoundAD/BloodHound/releases
- La dernière version de SharpHound (client de récolte des données) peut être trouvées ici : https://github.com/BloodHoundAD/BloodHound/tree/master/Ingestors