
Boîte à outils Go pour les évaluations de sécurité Azure autorisées : énumère les abonnements et les ressources, audite les erreurs de configuration et attaque anonymement le stockage Blob public.
azpt)🚧 Bêta publique.
azptest en cours de développement actif — les commandes, les options et les formats de sortie peuvent encore changer entre les versions. Les rapports de bugs et les retours sont les bienvenus via les issues GitHub.
azpt est une boîte à outils Go pour les évaluations de sécurité Azure autorisées. Il fonctionne
selon deux perspectives :
⚠️ Usage autorisé uniquement. N'exécutez ceci que contre des tenants, des abonnements et des comptes de stockage pour lesquels vous disposez d'une autorisation écrite explicite de test. Les commandes
blobanonymes touchent une infrastructure tierce via Internet — limitez-les à votre périmètre d'intervention.
Tous les exemples ci-dessous ciblent une société fictive Acme Corp dont le site marketing statique
est hébergé depuis un compte de stockage Azure nommé acmewebsite
(https://acmewebsite.blob.core.windows.net).
La documentation complète se trouve dans docs/ :
docs/guides/) — par fonctionnalité : comment la
technique fonctionne, la permission Azure RBAC / Microsoft Graph exacte qu'elle nécessite,
les options clés expliquées, des exemples, et des notes OPSEC / détection — organisés par
phase d'intervention.docs/guides/scenarios/)
— des récits d'attaque de bout en bout qui enchaînent les commandes à travers les phases (token →
Global Admin, prise de contrôle Golden SAML, vol de PRT, consent phishing → M365,
mouvement latéral par identité managée, chasse annuaire hors ligne, phishing par device-code),
chacun avec OPSEC et nettoyage.docs/reference/) — une page auto-générée
par commande avec chaque option (nom, raccourci, type, valeur par défaut,
description). Régénérez avec azpt gen-docs docs/reference ; les mêmes informations
s'affichent avec azpt <command> --help.Téléchargez l'archive correspondant à votre plateforme depuis la dernière version, vérifiez-la, puis extrayez :```bash
tar -xzf azpt_.tar.gz sha256sum -c --ignore-missing SHA256SUMS
Les binaires sont statiques (`CGO_ENABLED=0`) et ne nécessitent aucune dépendance à l'exécution.
Les builds sont publiés pour linux et darwin sur amd64 et arm64.
Les binaires Windows ne sont pas publiés. Les helpers spécifiques à Windows (`prt extract`,
`adconnect sync-creds`, DPAPI) se compilent toujours depuis les sources avec `go build -o
azpt.exe .` sur un hôte Windows.
### Depuis les sources
Nécessite Go 1.26+.```bash
git clone https://github.com/hac01/azure-pentesting-suite.git
cd azure-pentesting-suite
go build -o azpt .
Cela produit un binaire azpt autonome à la racine du dépôt. Vous pouvez également exécuter
sans compiler via go run . <command> depuis le répertoire du dépôt.
Aucune connexion Azure n'est nécessaire pour les commandes anonymes blob :```bash
./azpt blob hunt --account acmewebsite
Avec des identifiants Azure (`az login`), évaluez depuis l'intérieur — à la fois le plan de gestion des ressources (ARM) et l'annuaire (Entra ID / Graph) :```bash
./azpt enum whoami # who am I authenticated as?
./azpt enum subscriptions # what subscriptions can this principal see?
./azpt audit storage # misconfigured storage accounts
./azpt enum users # dump the Entra ID directory (Graph)
Une chaîne courante : récupérer un identifiant de manière anonyme avec blob hunt, se connecter en tant que cet utilisateur (az login), vérifier ce qu'il peut faire avec enum access, puis piller tous les Key Vaults accessibles :```bash
./azpt enum access # token scopes, directory roles, groups, RBAC roles
./azpt enum resources # find Key Vaults (type: vaults)
./azpt vault list --vault ext-contractors # secrets, keys, certs in that vault
./azpt vault dump --vault ext-contractors # read every secret value (the loot)
---
## Authentification
Les commandes `blob` anonymes ne nécessitent **aucune** authentification. Tout le reste utilise
la **chaîne d'informations d'identification par défaut** Azure, qui essaie, dans l'ordre : les variables
d'environnement, l'identité de charge de travail, l'identité managée et l'Azure CLI (`az login`).```bash
az login
./azpt enum subscriptions
Forcer une authentification explicite par service-principal (utile pour une identité d'évaluation à portée limitée) avec des flags ou des variables d'environnement. Vous n'en avez pas encore ? az ad sp create-for-rbac --name azpt-assessment --role Reader --scopes /subscriptions/<subscription-id> en génère un — consultez Getting
started pour la
procédure complète, y compris les permissions Graph que le RBAC seul ne vous accorde pas :```bash
./azpt --tenant --client-id --client-secret
enum subscriptions
export AZURE_TENANT_ID=... AZURE_CLIENT_ID=... AZURE_CLIENT_SECRET=... ./azpt enum subscriptions
**Authentification par certificat** (PFX ou PEM) :```bash
./azpt --tenant <tenant-id> --client-id <app-id> \
--certificate ./cert.pfx --cert-password 'P@ss' \
enum subscriptions
Limitez les exécutions authentifiées à des abonnements spécifiques avec --subscription
(répétable) ; la valeur par défaut est chaque abonnement accessible par le principal :```bash
./azpt --subscription 00000000-1111-2222-3333-444444444444 audit storage
---
## Référence des commandes
🧪 indique une commande encore en **bêta** : implémentée et utilisable, mais moins
éprouvée que le reste de la suite — attendez-vous à des aspérités, et merci de
signaler les problèmes rencontrés.