
Strumento Azure Red Team per rappresentare graficamente oggetti Azure e Azure Active Directory

Stormspotter crea un "grafo di attacco" delle risorse in una sottoscrizione Azure. Consente ai red team e ai penetration tester di visualizzare la superficie d'attacco e le opportunità di pivot all'interno di un tenant, e potenzia i difensori per orientarsi rapidamente e prioritizzare il lavoro di incident response.
La maggior parte degli utenti potrebbe trovare più semplice installare Stormspotter tramite Docker. Questo è il metodo consigliato.
git clone https://github.com/Azure/Stormspotter
docker-compose up
Il file docker-compose creerà tre container:
Per impostazione predefinita, il container di Stormspotter esporrà l'interfaccia utente sulla porta 9091. Il container neo4j esporrà neo4j sulle porte 7474 (HTTP) e 7687 (Bolt). La configurazione predefinita di Neo4j non abilita SSL, quindi puoi interagire inizialmente direttamente con l'interfaccia neo4j sulla porta 7474.
Nota: Attualmente, Stormspotter supporta solo l'esecuzione locale di questi container. Tentare di caricare sul frontend ospitato in remoto non avrà successo, ma questo comportamento dovrebbe cambiare in futuro.
Le credenziali predefinite per neo4j sono: neo4j/password. Puoi modificarle nel file docker-compose tramite la variabile d'ambiente NEO4JAUTH.
Se scegli di eseguire Stormspotter senza Docker, devi avere installati Python 3.8, NodeJS/npm e Neo4j. Puoi anche scaricare le ultime versioni di Stormspotter da qui.
Il backend che gestisce l'analisi dei dati in Neo4j è realizzato con FastAPI. Se non prevedi di caricare nuovo contenuto per il database, potresti non aver bisogno di eseguire affatto il backend. Il backend è configurato per essere eseguito sulla porta 9090. Puoi modificarla cambiando il numero di porta nella riga 5 di app.py. Se lo fai, devi anche cambiare la porta nel componente Q-Uploader nel DatabaseView Component in modo che i caricamenti dal frontend vengano inviati alla porta corretta dove risiede il backend.
cd backend
python3 ssbackend.pyz
L'applicazione web è sviluppata con Vue e Quasar Framework. L'applicazione a pagina singola (SPA) è già stata compilata per te e si trova in frontend/dist/spa. Per servire questa directory:
npm install -g @quasar/cli
cd frontend/dist/spa
quasar serve -p 9091 --history
Puoi quindi visitare http://localhost:9091 nel tuo browser.
Stormcollector è la parte di Stormspotter che ti consente di enumerare le sottoscrizioni a cui le credenziali fornite hanno accesso. Il modo RACCOMANDATO per utilizzare Stormcollector è eseguire il pacchetto sscollector.pyz, disponibile nel file di rilascio per il tuo sistema operativo. Questo PYZ è stato creato con Shiv e include già tutti i pacchetti compressi! Le dipendenze si estrarranno in una cartella .shiv nella directory home dell'utente.
cd stormcollector
python3 sscollector.pyz -h
Se per qualche motivo non desideri utilizzare il pacchetto fornito, puoi installare i pacchetti richiesti con pip o pipenv. Con questo approccio, è altamente raccomandato installare Stormcollector in un ambiente virtuale per evitare conflitti di pacchetto. Se hai problemi nella gestione degli ambienti virtuali, dovresti utilizzare il metodo consigliato sopra.
cd stormcollector
python3 -m pip install pipenv
pipenv install .
python3 ./sscollector.py
Tipi di accesso attualmente supportati:
az login)Puoi visualizzare tutte le opzioni offerte da Stormcollector usando l'opzione -h come mostrato sopra. Gli utilizzi più basilari di Stormcollector sono:
python3 sscollector.pyz cli
python3 sscollector.pyz spn -t <tenant> -c <clientID> -s <clientSecret>
Opzioni comuni per tutti i tipi di autenticazione
Caricamento dei risultati
Una volta avviata l'interfaccia utente, vedrai una sezione nella scheda del database denominata "Stormcollector Upload". Aggiungi il tuo file a questo caricatore e l'elaborazione inizierà. Mentre i risultati vengono elaborati, puoi controllare i log del backend per visualizzare l'avanzamento e i risultati dovrebbero riflettersi anche nella stessa scheda Database View.
Visualizza i permessi su un KeyVault

Mostra i membri di un ruolo Azure AD

Mostra le relazioni in entrata e in uscita

Questo progetto accoglie contributi e suggerimenti. La maggior parte dei contributi richiede che tu accetti un Contributor License Agreement (CLA) che dichiari di avere il diritto di concederci, e di fatto concederci, i diritti di utilizzare il tuo contributo. Per dettagli, visita https://cla.opensource.microsoft.com.
Quando invii una pull request, un bot CLA determinerà automaticamente se devi fornire un CLA e decorerà la PR in modo appropriato (ad esempio, controllo dello stato, commento). Segui semplicemente le istruzioni fornite dal bot. Dovrai farlo solo una volta in tutti i repository che utilizzano il nostro CLA.
Questo progetto ha adottato il Microsoft Open Source Code of Conduct. Per maggiori informazioni consulta le Domande frequenti sul Codice di Condotta o contatta [email protected] per qualsiasi domanda o commento aggiuntivo.