
Azure Red Team Tool zum Darstellen von Azure- und Azure Active Directory-Objekten

Stormspotter erstellt einen „Angriffsgraphen“ der Ressourcen in einem Azure-Abonnement. Es ermöglicht Red Teams und Pentestern, die Angriffsfläche und Pivot-Möglichkeiten innerhalb eines Mandanten zu visualisieren, und verstärkt Ihre Verteidiger, um sich schnell zu orientieren und Incident-Response-Arbeiten zu priorisieren.
Für die meisten Benutzer ist es einfacher, Stormspotter über Docker zu installieren. Dies ist die empfohlene Methode.
git clone https://github.com/Azure/Stormspotter
docker-compose up
Die docker-compose-Datei erstellt drei Container:
Standardmäßig macht der Stormspotter-Container die UI auf Port 9091 zugänglich. Der Neo4j-Container stellt Neo4j auf den Ports 7474 (HTTP) und 7687 (Bolt) bereit. Die Standardkonfiguration von Neo4j hat SSL nicht aktiviert, daher können Sie anfangs direkt über Port 7474 auf die Neo4j-Oberfläche zugreifen.
Hinweis: Derzeit unterstützt Stormspotter nur das lokale Ausführen dieser Container. Der Versuch, Dateien auf ein remote gehostetes Frontend hochzuladen, wird nicht erfolgreich sein, aber dieses Verhalten wird sich voraussichtlich in Zukunft ändern.
Die Standard-Anmeldeinformationen für Neo4j lauten: neo4j/password. Sie können dies in der docker-compose-Datei über die Umgebungsvariable NEO4J_AUTH ändern.
Wenn Sie Stormspotter ohne Docker ausführen möchten, müssen Sie Python 3.8, NodeJS/npm und Neo4j installieren. Sie können auch die neuesten Stormspotter-Versionen von hier herunterladen.
Das Backend, das das Parsen der Daten in Neo4j übernimmt, ist mit FastAPI erstellt. Wenn Sie keine neuen Inhalte für die Datenbank hochladen möchten, müssen Sie das Backend möglicherweise nicht ausführen. Das Backend ist für den Betrieb auf Port 9090 konfiguriert. Sie können dies ändern, indem Sie die Portnummer in Zeile 5 von app.py ändern. Wenn Sie dies tun, müssen Sie auch den Port in der Q-Uploader-Komponente in der DatabaseView-Komponente ändern, damit die Uploads vom Frontend an den richtigen Port gesendet werden, auf dem das Backend läuft.
cd backend
python3 ssbackend.pyz
Die Web-App wird mit Vue und dem Quasar Framework entwickelt. Die Single-Page-App (SPA) wurde für Sie erstellt und befindet sich in frontend/dist/spa. Um dieses Verzeichnis zu bedienen:
npm install -g @quasar/cli
cd frontend/dist/spa
quasar serve -p 9091 --history
Sie können dann in Ihrem Browser http://localhost:9091 aufrufen.
Stormcollector ist der Teil von Stormspotter, mit dem Sie die Abonnements auflisten können, auf die die bereitgestellten Anmeldeinformationen Zugriff haben. Die EMPFEHLENSWERTE Methode zur Verwendung von Stormcollector besteht darin, das Paket sscollector.pyz auszuführen, das Sie in der Release-Datei für Ihr Betriebssystem finden. Dieses PYZ wurde mit Shiv erstellt und enthält bereits alle gepackten Pakete! Die Abhängigkeiten extrahieren sich selbst in einen .shiv-Ordner im Home-Verzeichnis des Benutzers.
cd stormcollector
python3 sscollector.pyz -h
Falls Sie das bereitgestellte Paket aus irgendeinem Grund nicht verwenden möchten, können Sie die erforderlichen Pakete mit pip oder pipenv installieren. Bei diesem Ansatz wird dringend empfohlen, Stormcollector in einer virtuellen Umgebung zu installieren, um Paketkonflikte zu vermeiden. Wenn Sie Probleme mit der Verwaltung Ihrer virtuellen Umgebungen haben, sollten Sie die oben empfohlene Methode verwenden.
cd stormcollector
python3 -m pip install pipenv
pipenv install .
python3 ./sscollector.py
Derzeit unterstützte Anmeldetypen:
az login verwenden)Sie können alle Optionen von Stormcollector einsehen, indem Sie wie oben gezeigt den Schalter -h verwenden. Die grundlegendsten Verwendungen von Stormcollector sind:
python3 sscollector.pyz cli
python3 sscollector.pyz spn -t <tenant> -c <clientID> -s <clientSecret>
Gemeinsame Optionen für alle Authentifizierungstypen
--azure angegeben ist.Ergebnisse hochladen
Sobald Sie die UI gestartet haben, sehen Sie im Datenbank-Tab einen Abschnitt mit der Bezeichnung „Stormcollector Upload“. Fügen Sie Ihre Datei zu diesem Uploader hinzu, und die Verarbeitung beginnt. Während die Ergebnisse verarbeitet werden, können Sie die Backend-Protokolle überprüfen, um den Fortschritt zu verfolgen, und die Ergebnisse sollten auch im selben Datenbank-Ansichts-Tab angezeigt werden.
Berechtigungen für einen KeyVault anzeigen

Mitglieder einer Azure AD-Rolle anzeigen

Eingehende und ausgehende Beziehungen anzeigen

Dieses Projekt begrüßt Beiträge und Vorschläge. Die meisten Beiträge erfordern, dass Sie einer Contributor License Agreement (CLA) zustimmen, die besagt, dass Sie das Recht haben, uns die Rechte zur Nutzung Ihres Beitrags zu gewähren, und dies auch tun. Weitere Informationen finden Sie unter https://cla.opensource.microsoft.com.
Wenn Sie einen Pull-Request einreichen, wird ein CLA-Bot automatisch feststellen, ob Sie eine CLA bereitstellen müssen, und den PR entsprechend kennzeichnen (z. B. Statusprüfung, Kommentar). Befolgen Sie einfach die Anweisungen des Bots. Sie müssen dies nur einmal für alle Repos tun, die unsere CLA verwenden.
Dieses Projekt hat den Microsoft Open Source Code of Conduct übernommen. Weitere Informationen finden Sie in den FAQ zum Code of Conduct oder wenden Sie sich bei weiteren Fragen oder Kommentaren an [email protected].