
Ferramenta de Red Team para Azure que cria gráficos de objetos do Azure e do Azure Active Directory

O Stormspotter cria um "grafo de ataque" dos recursos em uma assinatura do Azure. Ele permite que equipes vermelhas e testadores de penetração visualizem a superfície de ataque e as oportunidades de pivô dentro de um inquilino, e potencializa seus defensores para orientar e priorizar rapidamente o trabalho de resposta a incidentes.
A maioria dos usuários pode achar mais fácil instalar o Stormspotter via Docker. Este é o método recomendado.
git clone https://github.com/Azure/Stormspotter
docker-compose up
O arquivo docker-compose criará três contêineres:
Por padrão, o contêiner Stormspotter exporá a UI na porta 9091. O contêiner neo4j exporá o neo4j nas portas 7474 (HTTP) e 7687 (Bolt). A configuração padrão do Neo4j não possui SSL habilitado, portanto você pode inicialmente interagir diretamente com a interface neo4j na porta 7474.
Nota: Atualmente, o Stormspotter só suporta a execução desses contêineres localmente. Tentar fazer upload para o frontend hospedado remotamente não terá sucesso, mas esse comportamento deve mudar no futuro.
As credenciais padrão para o neo4j são: neo4j/password. Você pode alterá-las no arquivo docker-compose através da variável de ambiente NEO4JAUTH.
Se optar por executar o Stormspotter sem Docker, você deve ter Python 3.8, NodeJS/npm e Neo4j instalados. Você também pode obter as versões mais recentes do Stormspotter aqui.
O backend que lida com a análise de dados para o Neo4j é construído com FastAPI. Se você não planeja enviar novo conteúdo para o banco de dados, talvez não precise executar o backend. O backend está configurado para executar na porta 9090. Você pode alterar isso mudando o número da porta na linha 5 do app.py. Se fizer isso, também deve alterar a porta no componente Q-Uploader no DatabaseView Component para que os uploads do frontend sejam enviados para a porta correta onde o backend reside.
cd backend
python3 ssbackend.pyz
O aplicativo web é desenvolvido usando Vue e o Quasar Framework. O aplicativo de página única (SPA) foi construído para você e reside em frontend/dist/spa. Para servir este diretório:
npm install -g @quasar/cli
cd frontend/dist/spa
quasar serve -p 9091 --history
Você pode então visitar http://localhost:9091 no seu navegador.
Stormcollector é a parte do Stormspotter que permite enumerar as assinaturas às quais as credenciais fornecidas têm acesso. A maneira RECOMENDADA de usar o Stormcollector é executar o pacote sscollector.pyz, encontrado em o arquivo de release para seu sistema operacional. Este PYZ foi criado com Shiv e já vem com todos os pacotes compactados! As dependências serão extraídas para uma pasta .shiv no diretório inicial do usuário.
cd stormcollector
python3 sscollector.pyz -h
Se por algum motivo você não quiser usar o pacote fornecido, pode instalar os pacotes necessários com pip ou pipenv. Com esta abordagem, é altamente recomendável instalar o Stormcollector em um ambiente virtual para evitar conflitos de pacotes. Se você tiver problemas para gerenciar seus ambientes virtuais, deve usar o método recomendado acima.
cd stormcollector
python3 -m pip install pipenv
pipenv install .
python3 ./sscollector.py
Tipos de login atualmente suportados:
az login primeiro)Você pode ver todas as opções que o Stormcollector oferece usando a opção -h conforme mostrado acima. Os usos mais básicos do Stormcollector são:
python3 sscollector.pyz cli
python3 sscollector.pyz spn -t <tenant> -c <clientID> -s <clientSecret>
Opções comuns para todos os tipos de autenticação
Enviando Resultados
Assim que você iniciar a UI, verá uma seção na aba de banco de dados chamada "Stormcollector Upload". Adicione seu arquivo a este uploader e o processamento começará. Conforme os resultados são processados, você pode verificar os logs do backend para acompanhar o progresso, e os resultados também devem ser refletidos na mesma aba Database View.
Visualizar Permissões em um KeyVault

Mostrar Membros de uma Função do Azure AD

Mostrar Relacionamentos de Entrada e Saída

Este projeto aceita contribuições e sugestões. A maioria das contribuições exige que você concorde com um Contrato de Licença de Contribuidor (CLA) declarando que você tem o direito de, e de fato, nos concede os direitos de usar sua contribuição. Para mais detalhes, visite https://cla.opensource.microsoft.com.
Quando você enviar um pull request, um bot do CLA determinará automaticamente se você precisa fornecer um CLA e decorará o PR apropriadamente (por exemplo, verificação de status, comentário). Simplesmente siga as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios que usam nosso CLA.
Este projeto adotou o Código de Conduta de Código Aberto da Microsoft. Para mais informações, consulte as Perguntas Frequentes sobre o Código de Conduta ou entre em contato com [email protected] para quaisquer perguntas ou comentários adicionais.