Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ImproHound — Identifiez les chemins d'attaque dans BloodHound qui brisent votre hiérarchisation AD | Kitploit
Outils/GitHubGitHub/improsec/improhound
Escalade de PrivilègesAnalyse des VulnérabilitésCollecte d'InformationsTests d'Intrusion
GitHubimprosec/improhound

ImproHound

Identifiez les chemins d'attaque dans BloodHound qui brisent votre hiérarchisation AD

Voir le dépôt
328368il y a 3 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

GitHub release (latest SemVer) GitHub all releases

ImproHound

Identifier les chemins d'attaque dans BloodHound qui brisent votre tiering AD

ImproHound est un exe Windows x64 autonome dotnet avec interface graphique. Pour utiliser ImproHound, vous devez exécuter SharpHound afin de collecter les données nécessaires depuis l'AD. Vous téléchargerez ensuite les données sur votre installation BloodHound. ImproHound se connectera à la base de données Neo4j sous-jacente de BloodHound. Dans ImproHound, vous catégoriserez l'AD en couches via la structure des UO, et ImproHound identifiera les relations AD qui permettent à des objets AD de compromettre un objet d'une couche supérieure (plus proche de zéro) et enregistrera les violations de tiering dans un fichier csv.

Article de blog ImproHound

Vidéo de démonstration d'ImproHound

Présentation d'ImproHound au DEF CON Adversary Village

Table des matières
  • Installation
  • Utilisation
  • Directives pour le tiering des objets AD
  • Dernière version testée des dépendances

Installation

1. Configurez votre base de données BloodHound

  1. Installer BloodHound

  2. Collectez les données BloodHound avec SharpHound dans votre AD

    Note : cela générera du bruit dans votre antivirus, SIEM, etc.

    Exemple : Exécutez SharpHound.exe depuis cmd, collectez tout (oui, GPOLocalGroup n'est pas inclus dans All) :

    SharpHound.exe --CollectionMethods All,GPOLocalGroup
    

    Astuce 1 : Utilisez le paramètre Domain pour collecter des données depuis d'autres domaines de la forêt.

    Astuce 2 : Pour obtenir encore plus de données, utilisez La méthode de collecte par boucle de session

  3. Téléchargez vos données BloodHound dans l'interface graphique BloodHound

    Il y a un bug dans BloodHound qui fait parfois sauter le fichier json du domaine lors du téléchargement d'un zip de données BloodHound. Vérifiez les statistiques de la base dans BloodHound après le téléchargement et assurez-vous que les objets du domaine existent.

2. Installez le plugin Neo4j APOC (permet les opérations graphiques géniales dont nous avons besoin)

  1. Téléchargez la version d'APOC correspondant à votre version de Neo4j (apoc-x.x.x.x-all.jar).

    Trouvez la version d'APOC correspondant à votre version de Neo4j dans la matrice de compatibilité des versions.

  2. Essayez de vous souvenir où vous avez installé Neo4j et placez le fichier jar APOC sous : $NEO4J_HOME/plugins/

    • $NEO4J_HOME sous Linux : /var/lib/neo4j/
    • $NEO4J_HOME sous Windows : Vérifiez le service Neo4j. Il révélera l'emplacement.
  3. Modifiez neo4j.conf dans votre éditeur de texte préféré pour autoriser un accès APOC sans restriction en remplaçant la ligne : #dbms.security.procedures.unrestricted=my.extensions.example,my.procedures.* par dbms.security.procedures.unrestricted=apoc.*

    • neo4j.conf sous Linux : /etc/neo4j/neo4j.conf
    • neo4j.conf sous Windows : $NEO4J_HOME/conf/neo4j.conf

    Si vous souhaitez exécuter ImproHound sur un hôte et BloodHound sur un autre, vous devez autoriser les connexions à distance à la base de données Neo4j sur l'hôte BloodHound. Pour cela, supprimez le # de la ligne #dbms.default_listen_address=0.0.0.0 dans neo4j.conf.

  4. Redémarrez Neo4j

    • Linux : systemctl restart neo4j
    • Windows (cmd) : net stop neo4j && net start neo4j (PowerShell : net stop neo4j; net start neo4j)

3. Téléchargez et exécutez la dernière version de ImproHound.exe sous Windows (x64)

    Confirmez que vous pouvez vous connecter à la base BloodHound avec les mêmes identifiants que ceux utilisés dans l'interface graphique BloodHound.

Utilisation

Connexion à la base de données

texte alternatif

Saisissez les identifiants de la base de données et établissez une connexion. Ce sont les mêmes identifiants que ceux utilisés dans l'interface graphique BloodHound.

Continuer ou recommencer

texte alternatif

ImproHound crée un label 'TierX' sur les nœuds de la base de données BloodHound. Si vous avez déjà utilisé ImproHound avec cette base BloodHound, il vous sera demandé si vous souhaitez continuer avec le tiering déjà créé ou recommencer.

Tiering par défaut ou tout en Tier 2

texte alternatif

ImproHound vous donne la possibilité de définir un 'Tiering par défaut' qui placera les administrateurs de domaine en Tier 0, les utilisateurs du domaine en Tier 2, etc., ou de placer tous les objets en Tier 2.

Structure UO

texte alternatif

C'est la page où vous catégoriserez les objets AD en couches. La fenêtre affiche la structure des UO. Chaque objet AD a une valeur de couche qui peut être augmentée ou diminuée avec les flèches.

Définir les enfants sur la couche

Si vous sélectionnez un domaine ou un conteneur AD, vous pouvez cliquer sur 'Définir les enfants sur la couche' pour attribuer à tous les enfants (récursivement) le niveau de couche du domaine/conteneur donné.

Définir les membres sur la couche

Si vous sélectionnez un groupe, vous pouvez cliquer sur 'Définir les membres sur la couche' pour attribuer à tous les membres (récursivement) le niveau de couche du groupe donné.

Définir la couche pour les GPO

Si vous cliquez sur 'Définir la couche pour les GPO', chaque GPO verra son niveau de couche défini sur celui de l'UO de couche la plus élevée (la plus proche de zéro) à laquelle le GPO est lié. Les GPO non liés à une UO ne verront pas leur niveau de couche modifié.

Obtenir les violations de tiering

Trouvez toutes les relations dans la base de données BloodHound où un objet AD contrôle un objet AD d'une couche supérieure (plus proche de zéro).

Deux fichiers CSV sont générés en sortie :

  • adobjects-[horodatage].csv : Tous les objets AD et leur couche respective.

  • tiering-violations-[horodatage].csv : Les violations de tiering.

Exemple d'enregistrements dans le CSV des violations :

Télécharger l’outil