
rassembler rassembler rassembler
rassemble rassemble rassemble

Jackdaw a pour but de collecter toutes les informations de votre domaine, de les stocker dans une base de données SQL et de vous montrer de beaux graphiques sur la façon dont les objets de votre domaine interagissent entre eux et comment un attaquant potentiel pourrait exploiter ces interactions. Il est également doté d'une fonctionnalité pratique pour vous aider dans un projet de cassage de mots de passe en stockant/recherchant/rapportant les hachages/mots de passe/utilisateurs.
dbinitenum. Cela peut être fait automatiquement sur Windows en double-cliquant sur l'exécutable, ou en tapant jackdaw.exe auto.nest pour obtenir l'interface web. Par défaut, elle est servie sous http://127.0.0.1:5000/nest ; il y a une API documentée SWAGGER sous http://127.0.0.1:5000/ui.Generate graph cache une seule fois pour obtenir les informations de bord dans un fichier cache. Cela peut prendre un certain temps, mais dans la ligne de commande, vous verrez une barre de progression.vue graphe, mais n'oubliez pas de sélectionner le bon numéro de cache en haut à gauche.Cette section sera régulièrement mise à jour en fonction des retours des utilisateurs.
Aucun conseil ici, même si certaines améliorations peuvent être apportées dans le code, rien qu'un utilisateur générique ne puisse faire.
La génération du fichier cache de données de graphe doit être effectuée une fois sur chaque graphe (et une seule fois), ce qui peut prendre du temps avec l'outil sqlalchemy par défaut.
Les performances et la vitesse peuvent être considérablement améliorées (plus de 50x de vitesse et 20x moins de mémoire) si vous utilisez le backend sqlite ET placez l'utilitaire en ligne de commande "sqlite3" quelque part dans le PATH. Je recommande cela à tous les utilisateurs.
Voici le grand compromis. Les premières implémentations de Jackdaw utilisaient le module networkx comme backend de graphe car il est entièrement écrit en Python. Mais cela avait un coût significatif en mémoire et en vitesse. Pour que Jackdaw reste en Python pur, cette option existe toujours, mais l'utilisation du backend igraph est désormais la valeur par défaut.
Remarque : igraph est une bibliothèque C++ avec des liaisons Python. Elle a des wheels pré-compilées pour Windows et les principales distributions Linux, mais si vous utilisez Jackdaw sur autre chose (systèmes embarqués/téléphones mobiles/navigateurs web), vous devrez soit revenir à networkx, soit subir un temps de compilation de plusieurs heures.
Pas besoin de pré-initialiser la base de données, cela sera fait automatiquement.
En utilisant le binaire distribué, vous pouvez simplement double-cliquer sur jackdaw.exe
En utilisant comme script Python jackdaw auto
jackdaw --sql sqlite:///<full path here>/test.db dbinit
SUR LES SYSTÈMES LINUX, <full path here> inclut le premier / donc vous aurez //// quatre (4) tirets avant le nom du fichier. Ne paniquez pas.
jackdaw --sql sqlite:///test.db enum 'ldap+sspi-ntlm://<domain>\<placeholder>@10.10.10.2' 'smb+sspi-ntlm://<domain>\<placeholder>@10.10.10.2'
Le mot de passe est Passw0rd!
jackdaw --sql sqlite:///test.db enum 'ldap+ntlm-password://TEST\victim:[email protected]' 'smb+ntlm-password://TEST\victim:[email protected]'
Le mot de passe est Passw0rd!
jackdaw --sql sqlite:///test.db ldap 'ldap+ntlm-password://TEST\victim:[email protected]'
jackdaw --sql sqlite:///<FULL PATH TO DB> nest
Ouvrez http://127.0.0.1:5000/ui pour l'API
Veuillez consulter la section Construction de l'interface utilisateur plus bas pour apprendre à construire l'interface. Une fois construite :
Ouvrez http://127.0.0.1:5000/nest pour l'interface graphique (affiche le graphe, mais loin d'être fonctionnel)
La phase d'énumération LDAP acquiert des données sur les informations AD, les objets Utilisateur, Machine, OU, Groupe qui seront représentés comme un nœud dans le graphe, et comme une table séparée dans la base de données. De plus, le descripteur de sécurité de tous les objets susmentionnés sera analysé et les ACL pour la DACL ajoutées à la base de données. Ceci, avec les informations d'appartenance, sera représenté comme des arêtes dans le graphe. De plus, des requêtes SQL personnalisées peuvent être effectuées sur n'importe lequel des types de données susmentionnés si nécessaire.
La phase d'énumération SMB acquiert des données sur les partages, les groupes locaux, les sessions, les données NTLM via la connexion à chaque machine du domaine (acquises via LDAP)
Le module Kerberos effectue automatiquement le kerberoasting et l'aspreproasting
Le framework permet aux utilisateurs de télécharger des dumps mémoire LSASS pour stocker les identifiants et étendre la table d'informations de session. Les deux seront utilisés comme arêtes supplémentaires dans le graphe (mot de passe partagé et session respectivement). Le framework utilise également ces informations pour créer un rapport de mots de passe sur les identifiants faibles/partagés/cassés.
Le framework permet aux utilisateurs de télécharger les fichiers DCSYNC d'impacket pour stocker les identifiants. Ceux-ci seront utilisés comme arêtes supplémentaires dans le graphe (mot de passe partagé). Le framework utilise également ces informations pour créer un rapport de mots de passe sur les identifiants faibles/partagés/cassés.
Le framework permet d'étendre manuellement la base de données disponible dans tous les aspects. Exemple : lorsque des informations de session utilisateur sur un ordinateur donné sont découvertes (en dehors de l'énumération automatique), il est possible de télécharger manuellement ces sessions, ce qui remplira la base de données ainsi que le graphe de résultat.
Le framework peut générer un graphe en utilisant les informations disponibles dans la base de données et le tracer via l'interface web (nest). De plus, la génération du graphe et les calculs de chemin peuvent être invoqués par programmation, soit en utilisant l'API web (point de terminaison /ui) soit les fonctions de l'objet graphe.
Le framework peut identifier les mauvaises configurations AD courantes sans génération de graphe. Actuellement uniquement via l'API web.