
Outil de reconnaissance Python pour découvrir les services Azure et attribuer la propriété des locataires via la validation DNS, le sondage multi-services et l'analyse des réponses. Prend en charge l'analyse concurrente, la génération de permutations et plusieurs formats d'exportation.
Un outil de reconnaissance en Python conçu pour découvrir des services Azure et attribuer des informations de propriété de locataire en fonction de leurs réponses.
Cet outil aide les chercheurs en sécurité, les testeurs d'intrusion et les administrateurs Azure à découvrir des ressources Azure associées à des identifiants de locataire spécifiques.
Teste des noms de ressources sur 6 services Azure différents et leurs sous-domaines :
.azurewebsites.net et .scm.azurewebsites.net)dev.azure.com).vault.azure.net).blob.core.windows.net).sharepoint.com).azuredatabricks.net)Clonez ou téléchargez l'outil :
git clone https://github.com/NetSPI/ATEAM.git
cd ATEAM
Installez les dépendances requises :
pip install -r requirements.txt
Ou installez manuellement :
pip install requests dnspython urllib3
Vérifiez l'installation :
python ateam.py --help
Analyser une seule ressource :
python ateam.py -r "myapp"
Analyser plusieurs ressources :
python ateam.py -r "app1" "app2" "app3"
Analyser à partir d'un fichier texte contenant la liste des ressources :
python ateam.py -f resources.txt
Sortie détaillée avec 20 workers :
python ateam.py -f resources.txt -v -w 20
Générer des permutations et analyser :
python ateam.py -f resources.txt -p
Générer des permutations avec une taille de lot réduite (recommandé pour les grandes analyses) :
python ateam.py -f resources.txt -p -b 100
Exporter les résultats en HTML :
python ateam.py -e html
Vider la base de données et repartir de zéro :
python ateam.py -f resources.txt --clear
ATEAM/
├── ateam.py # Script principal
├── requirements.txt # Dépendances Python
├── permutations.txt # Permutations de noms de ressources
└── README.md # Ce fichier
Le fichier permutations.txt contient des préfixes et suffixes courants pour générer des variations de noms de ressources :
dev
prod
test
staging
api
web
...
Cela générera des combinaisons comme :
devmyappmyappdevprodmyappmyapp-prodLes résultats sont stockés dans azure_tenants.db (SQLite) avec le schéma suivant :
resource_uri : URL de la ressource découverteresource_type : Type de service Azuretenant_id : ID de locataire extraitdiscovered_at : Horodatage de la découverte2025-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
⚠️ Important : assurez-vous toujours d'avoir une autorisation appropriée avant d'analyser des ressources. Une analyse non autorisée peut violer les conditions d'utilisation ou les lois applicables.
Vous pouvez activer la journalisation détaillée pour obtenir des informations détaillées, mais cela peut être un peu excessif :
python ateam.py -f resources.txt -v
Si vous rencontrez des messages "killed" lors de l'utilisation des permutations, essayez de réduire la taille du lot :
python ateam.py -f resources.txt -p -b 100 -w 5
Cela traite les ressources en lots plus petits avec moins de workers simultanés pour éviter l'épuisement de la mémoire.
Les contributions sont les bienvenues ! N'hésitez pas à soumettre :
| Option | Description | Exemple |
|---|
-f, --file | Fichier contenant les ressources (une par ligne) | -f resources.txt |
-r, --resources | Liste des ressources séparées par des espaces | -r "app1" "app2" |
-w, --workers | Nombre de workers simultanés (par défaut : 10) | -w 20 |
-b, --batch-size | Ressources par lot (par défaut : 1000) | -b 100 |
-v, --verbose | Activer la journalisation détaillée | -v |
-l, --list | Lister toutes les entrées de la base de données | -l |
-e, --export | Exporter les résultats (csv, json, html) | -e html |
--clear | Vider la base de données avant l'analyse | --clear |
-t, --tenant | Filtrer les résultats par ID de locataire | -t "tenant-id" |
-p, --permutations | Générer des permutations de noms de ressources | -p |