
Ferramenta de reconhecimento em Python para descobrir serviços do Azure e atribuir propriedade de locatário por meio de validação DNS, sondagem multi-serviço e análise de resposta. Suporta escaneamento concorrente, geração de permutações e múltiplos formatos de exportação.
Uma ferramenta de reconhecimento em Python projetada para descobrir serviços do Azure e atribuir informações de propriedade de inquilinos com base em suas respostas.
Esta ferramenta ajuda pesquisadores de segurança, testadores de penetração e administradores do Azure a descobrir recursos do Azure associados a IDs de inquilinos específicos.
Testa nomes de recursos contra 6 serviços diferentes do Azure e seus subdomínios:
.azurewebsites.net e .scm.azurewebsites.net)dev.azure.com).vault.azure.net).blob.core.windows.net).sharepoint.com).azuredatabricks.net)Clone ou baixe a ferramenta:
git clone https://github.com/NetSPI/ATEAM.git
cd ATEAM
Instale as dependências necessárias:
pip install -r requirements.txt
Ou instale manualmente:
pip install requests dnspython urllib3
Verifique a instalação:
python ateam.py --help
Escanear um único recurso:
python ateam.py -r "myapp"
Escanear múltiplos recursos:
python ateam.py -r "app1" "app2" "app3"
Escanear a partir de um arquivo de texto com lista de recursos:
python ateam.py -f resources.txt
Saída detalhada com (20) workers:
python ateam.py -f resources.txt -v -w 20
Gerar permutações e escanear:
python ateam.py -f resources.txt -p
Gerar permutações com tamanho de lote menor (recomendado para varreduras grandes):
python ateam.py -f resources.txt -p -b 100
Exportar resultados para HTML:
python ateam.py -e html
Limpar banco de dados e começar do zero:
python ateam.py -f resources.txt --clear
ATEAM/
├── ateam.py # Script principal
├── requirements.txt # Dependências Python
├── permutations.txt # Permutações de nomes de recursos
└── README.md # Este arquivo
O arquivo permutations.txt contém prefixos e sufixos comuns para gerar variações de nomes de recursos:
dev
prod
test
staging
api
web
...
Isso gerará combinações como:
devmyappmyappdevprodmyappmyapp-prodOs resultados são armazenados em azure_tenants.db (SQLite) com o seguinte esquema:
resource_uri: A URL do recurso descobertoresource_type: Tipo de serviço do Azuretenant_id: ID do inquilino extraídodiscovered_at: Carimbo de data/hora da descoberta2025-06-27 14:37:39 - INFO - Found Storage Account tenant ID 72f988bf-86f1-41af-91ab-2d7cd011db47 for mars
2025-06-27 14:37:40 - INFO - Found App Service SCM tenant ID 'common' for notarealapplication
2025-06-27 14:37:47 - INFO - Found Key Vault tenant ID 72f988bf-86f1-41af-91ab-2d7cd011db47 for mdo
Resource URI Type Tenant ID Discovered At
-----------------------------------------------------------------------------------------------------------------
hanover.scm.azurewebsites.net AppServices-SCM 72f988bf-86f1-41af-91ab-2d7cd011db47 2025-06-27 21:37:41
dev.azure.com/microsoft DevOps 72f988bf-86f1-41af-91ab-2d7cd011db47 2025-06-27 21:37:12
mdo.vault.azure.net KeyVault 72f988bf-86f1-41af-91ab-2d7cd011db47 2025-06-27 21:37:47
mars.blob.core.windows.net StorageAccount 72f988bf-86f1-41af-91ab-2d7cd011db47 2025-06-27 21:37:46
⚠️ Importante: Sempre garanta que você tenha autorização adequada antes de escanear qualquer recurso. Escaneamento não autorizado pode violar termos de serviço ou leis aplicáveis.
Você pode habilitar o registro detalhado para informações detalhadas, mas pode ser um pouco excessivo:
python ateam.py -f resources.txt -v
Se você receber mensagens 'killed' ao usar permutações, tente reduzir o tamanho do lote:
python ateam.py -f resources.txt -p -b 100 -w 5
Isso processa recursos em lotes menores com menos workers simultâneos para evitar esgotamento de memória.
Contribuições são bem-vindas! Sinta-se à vontade para enviar:
| Opção | Descrição | Exemplo |
|---|
-f, --file | Arquivo contendo recursos (um por linha) | -f resources.txt |
-r, --resources | Lista separada por espaços de recursos | -r "app1" "app2" |
-w, --workers | Número de workers simultâneos (padrão: 10) | -w 20 |
-b, --batch-size | Recursos por lote (padrão: 1000) | -b 100 |
-v, --verbose | Habilitar registro detalhado | -v |
-l, --list | Listar todas as entradas do banco de dados | -l |
-e, --export | Exportar resultados (csv, json, html) | -e html |
--clear | Limpar banco de dados antes de escanear | --clear |
-t, --tenant | Filtrar resultados por ID do inquilino | -t "tenant-id" |
-p, --permutations | Gerar permutações de nomes de recursos | -p |