
Outil Red Team Azure pour la cartographie des objets Azure et Azure Active Directory.

Stormspotter crée un « graphe d’attaque » des ressources d’un abonnement Azure. Il permet aux équipes rouges et aux testeurs d’intrusion de visualiser la surface d’attaque et les opportunités de pivotement au sein d’un locataire, et renforce les défenseurs pour s’orienter rapidement et prioriser le travail de réponse aux incidents.
La plupart des utilisateurs trouveront plus facile d’installer Stormspotter via Docker. C’est la méthode recommandée.
git clone https://github.com/Azure/Stormspotter
docker-compose up
Le fichier docker-compose va créer trois conteneurs :
Par défaut, le conteneur Stormspotter expose l’interface utilisateur sur le port 9091. Le conteneur neo4j expose neo4j sur les ports 7474 (HTTP) et 7687 (Bolt). La configuration par défaut de Neo4j n’active pas SSL, vous pouvez donc interagir directement avec l’interface neo4j sur le port 7474.
Remarque : Actuellement, Stormspotter ne supporte que l’exécution de ces conteneurs localement. Toute tentative de téléversement vers le frontend hébergé à distance échouera, mais ce comportement devrait changer à l’avenir.
Les identifiants par défaut pour neo4j sont : neo4j/password. Vous pouvez les modifier dans le fichier docker-compose via la variable d’environnement NEO4JAUTH.
Si vous choisissez d’exécuter Stormspotter sans Docker, vous devez avoir Python 3.8, NodeJS/npm et Neo4j installés. Vous pouvez également obtenir les dernières versions de Stormspotter ici.
Le backend qui gère l’analyse des données dans Neo4j est construit avec FastAPI. Si vous n’envisagez pas de téléverser du nouveau contenu pour la base de données, vous n’aurez peut-être pas besoin d’exécuter le backend du tout. Le backend est configuré pour fonctionner sur le port 9090. Vous pouvez modifier cela en changeant le numéro de port à la ligne 5 de app.py. Si vous le faites, vous devez également changer le port dans le composant Q-Uploader dans le Composant DatabaseView afin que les téléversements depuis le frontend soient envoyés vers le bon port où se trouve le backend.
cd backend
python3 ssbackend.pyz
L’application web est développée avec Vue et le Framework Quasar. L’application monopage (SPA) a été construite pour vous et se trouve dans frontend/dist/spa. Pour servir ce répertoire :
npm install -g @quasar/cli
cd frontend/dist/spa
quasar serve -p 9091 --history
Vous pouvez ensuite visiter http://localhost:9091 dans votre navigateur.
Stormcollector est la partie de Stormspotter qui permet d’énumérer les abonnements auxquels les identifiants fournis ont accès. La méthode RECOMMANDÉE pour utiliser Stormcollector est d’exécuter le package sscollector.pyz, disponible dans le fichier de version pour votre système d’exploitation. Ce PYZ a été créé avec Shiv et contient tous les packages déjà compressés ! Les dépendances s’extrairont dans un dossier .shiv dans le répertoire personnel de l’utilisateur.
cd stormcollector
python3 sscollector.pyz -h
Si pour une raison quelconque vous ne souhaitez pas utiliser le package fourni, vous pouvez installer les packages requis avec pip ou pipenv. Avec cette approche, il est hautement recommandé d’installer Stormcollector dans un environnement virtuel pour éviter les conflits de packages. Si vous rencontrez des difficultés pour gérer vos environnements virtuels, vous devriez utiliser la méthode recommandée ci-dessus.
cd stormcollector
python3 -m pip install pipenv
pipenv install .
python3 ./sscollector.py
Types de connexion actuellement supportés :
az login d’abord)Vous pouvez consulter toutes les options offertes par Stormcollector en utilisant l’option -h comme indiqué ci-dessus. Les utilisations les plus basiques de Stormcollector sont :
python3 sscollector.pyz cli
python3 sscollector.pyz spn -t <tenant> -c <clientID> -s <clientSecret>
Options communes pour tous les types d’authentification
Téléversement des résultats
Une fois que vous avez démarré l’interface utilisateur, vous verrez une section dans l’onglet base de données intitulée « Stormcollector Upload ». Ajoutez votre fichier à ce téléverseur et le traitement commencera. Au fur et à mesure que les résultats sont traités, vous pouvez consulter les logs du backend pour voir la progression, et les résultats devraient également apparaître dans le même onglet Database View.
Afficher les autorisations sur un KeyVault

Afficher les membres d’un rôle Azure AD

Afficher les relations entrantes et sortantes

Ce projet accepte les contributions et suggestions. La plupart des contributions nécessitent que vous acceptiez un Contrat de Licence de Contributeur (CLA) déclarant que vous avez le droit de, et que vous nous accordez effectivement, les droits d’utiliser votre contribution. Pour plus de détails, visitez https://cla.opensource.microsoft.com.
Lorsque vous soumettez une pull request, un robot CLA déterminera automatiquement si vous devez fournir un CLA et décorera la PR de manière appropriée (par exemple, vérification de l’état, commentaire). Suivez simplement les instructions fournies par le robot. Vous n’aurez besoin de le faire qu’une seule fois sur tous les dépôts utilisant notre CLA.
Ce projet a adopté le Code de conduite open source Microsoft. Pour plus d’informations, consultez la FAQ sur le code de conduite ou contactez [email protected] pour toute question ou commentaire supplémentaire.