
Herramienta de Red Team de Azure para graficar objetos de Azure y Azure Active Directory

Stormspotter crea un “grafo de ataque” de los recursos en una suscripción de Azure. Permite a los equipos rojos y pentesters visualizar la superficie de ataque y las oportunidades de pivote dentro de un inquilino, y potencia a sus defensores para orientarse rápidamente y priorizar el trabajo de respuesta a incidentes.
La mayoría de los usuarios puede encontrar más fácil instalar Stormspotter mediante Docker. Este es el método recomendado.
git clone https://github.com/Azure/Stormspotter
docker-compose up
El archivo docker-compose creará tres contenedores:
Por defecto, el contenedor de Stormspotter expondrá la interfaz de usuario en el puerto 9091. El contenedor de neo4j expondrá neo4j en los puertos 7474 (HTTP) y 7687 (Bolt). La configuración predeterminada de Neo4j no tiene SSL habilitado, por lo que puede interactuar inicialmente directamente con la interfaz de neo4j en el puerto 7474.
Nota: Actualmente, Stormspotter solo admite la ejecución de estos contenedores localmente. Intentar cargar en el frontend alojado de forma remota no tendrá éxito, pero se espera que este comportamiento cambie en el futuro.
Las credenciales predeterminadas para neo4j son: neo4j/password. Puede cambiarlas en el archivo docker-compose mediante la variable de entorno NEO4J_AUTH.
Si elige ejecutar Stormspotter sin Docker, debe tener instalados Python 3.8, NodeJS/npm y Neo4j. También puede obtener las últimas versiones de Stormspotter desde aquí.
El backend que maneja el análisis de datos en Neo4j está construido con FastAPI. Si no planea cargar nuevo contenido para la base de datos, es posible que no necesite ejecutar el backend en absoluto. El backend está configurado para ejecutarse en el puerto 9090. Puede cambiarlo modificando el número de puerto en la línea 5 de app.py. Si lo hace, también debe cambiar el puerto en el componente Q-Uploader en el DatabaseView Component para que las cargas del frontend se envíen al puerto correcto donde reside el backend.
cd backend
python3 ssbackend.pyz
La aplicación web está desarrollada con Vue y Quasar Framework. La aplicación de una sola página (SPA) ya ha sido compilada para usted y se encuentra en frontend/dist/spa. Para servir este directorio:
npm install -g @quasar/cli
cd frontend/dist/spa
quasar serve -p 9091 --history
Luego puede visitar http://localhost:9091 en su navegador.
Stormcollector es la parte de Stormspotter que le permite enumerar las suscripciones a las que tienen acceso las credenciales proporcionadas. La forma RECOMENDADA de usar Stormcollector es ejecutar el paquete sscollector.pyz, que se encuentra en el archivo de lanzamiento para su sistema operativo. Este PYZ ha sido creado con Shiv y viene con todos los paquetes ya comprimidos. Las dependencias se extraerán a una carpeta .shiv en el directorio personal del usuario.
cd stormcollector
python3 sscollector.pyz -h
Si por alguna razón no desea usar el paquete proporcionado, puede instalar los paquetes necesarios con pip o pipenv. Con este enfoque, se recomienda enfáticamente instalar Stormcollector en un entorno virtual para evitar conflictos de paquetes. Si tiene problemas para administrar sus entornos virtuales, debe usar el método recomendado anteriormente.
cd stormcollector
python3 -m pip install pipenv
pipenv install .
python3 ./sscollector.py
Tipos de inicio de sesión admitidos actualmente:
az login primero)Puede ver todas las opciones que ofrece Stormcollector usando el interruptor -h como se muestra arriba. Los usos más básicos de Stormcollector son:
python3 sscollector.pyz cli
python3 sscollector.pyz spn -t <inquilino> -c <clientID> -s <clientSecret>
Opciones comunes para todos los tipos de autenticación
Cargar resultados
Una vez que haya iniciado la interfaz de usuario, verá una sección en la pestaña de base de datos etiquetada como "Stormcollector Upload". Agregue su archivo a este cargador y comenzará el procesamiento. A medida que se procesen los resultados, puede verificar los registros del backend para ver el progreso, y los resultados también deberían reflejarse en la misma pestaña de vista de base de datos.
Ver permisos en un KeyVault

Mostrar miembros de un rol de Azure AD

Mostrar relaciones entrantes y salientes

Este proyecto acepta contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Acuerdo de Licencia de Contribuyente (CLA) que declara que tiene el derecho de, y de hecho lo hace, otorgarnos los derechos para usar su contribución. Para más detalles, visite https://cla.opensource.microsoft.com.
Cuando envíe una solicitud de extracción, un bot de CLA determinará automáticamente si necesita proporcionar un CLA y decorará el PR de manera apropiada (por ejemplo, verificación de estado, comentario). Simplemente siga las instrucciones proporcionadas por el bot. Solo necesitará hacer esto una vez en todos los repositorios que usen nuestro CLA.
Este proyecto ha adoptado el Código de Conducta de Código Abierto de Microsoft. Para obtener más información, consulte las Preguntas frecuentes sobre el Código de Conducta o póngase en contacto con [email protected] si tiene preguntas o comentarios adicionales.