
Toolkit Go per valutazioni di sicurezza Azure autorizzate: enumera sottoscrizioni e risorse, verifica configurazioni errate e attacca l'archiviazione Blob pubblica in modo anonimo.
azpt)🚧 Beta pubblica.
azptè in fase di sviluppo attivo — comandi, flag e formati di output possono ancora cambiare tra le release. Segnalazioni di bug e feedback sono benvenuti tramite le issue su GitHub.
azpt è un toolkit Go per valutazioni di sicurezza Azure autorizzate. Funziona
da due prospettive:
⚠️ Solo uso autorizzato. Esegui questo strumento solo contro tenant, sottoscrizioni e account di archiviazione per cui hai esplicito permesso scritto di testare. I comandi anonimi
blobtoccano infrastrutture di terze parti su Internet — delimita il loro ambito al tuo incarico.
Tutti gli esempi seguenti hanno come target una fittizia Acme Corp il cui sito
marketing statico è ospitato da un account di archiviazione Azure chiamato acmewebsite
(https://acmewebsite.blob.core.windows.net).
La documentazione completa si trova in docs/:
docs/guides/) — per funzionalità: come
funziona la tecnica, l'esatta autorizzazione Azure RBAC / Microsoft Graph necessaria,
i flag chiave spiegati, esempi e note OPSEC / rilevamento — organizzate per
fase dell'incarico.docs/guides/scenarios/)
— narrazioni di attacco end-to-end che concatenano comandi attraverso le fasi (token →
Global Admin, takeover Golden SAML, furto PRT, consent phishing → M365,
movimento laterale con managed identity, caccia offline alla directory, phishing
con device code), ciascuna con OPSEC e pulizia.docs/reference/) — una pagina
auto-generata per comando con ogni flag (nome, abbreviazione, tipo, default,
descrizione). Rigenera con azpt gen-docs docs/reference; le stesse informazioni
vengono stampate da azpt <command> --help.Scarica l'archivio per la tua piattaforma dalla ultima release, verificalo ed estrailo:```bash
tar -xzf azpt_.tar.gz sha256sum -c --ignore-missing SHA256SUMS
I binari sono statici (`CGO_ENABLED=0`) e non richiedono dipendenze di runtime.
Le build sono pubblicate per linux e darwin su amd64 e arm64.
I binari per Windows non sono pubblicati. Gli helper specifici per Windows (`prt extract`,
`adconnect sync-creds`, DPAPI) si compilano comunque dal sorgente con `go build -o
azpt.exe .` su un host Windows.
### Dal sorgente
Richiede Go 1.26+.```bash
git clone https://github.com/hac01/azure-pentesting-suite.git
cd azure-pentesting-suite
go build -o azpt .
Questo produce un binario azpt autonomo nella root del repository. Puoi anche eseguirlo
senza compilarlo tramite go run . <command> dalla directory del repository.
Non è necessario effettuare l'accesso ad Azure per i comandi blob anonimi:```bash
./azpt blob hunt --account acmewebsite
Con credenziali Azure (`az login`), valuta dall'interno — sia il piano
delle risorse (ARM) sia la directory (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)
Una catena comune: recuperare una credenziale in modo anonimo con blob hunt, accedere come quell'utente (az login), verificare cosa può fare con enum access, poi saccheggiare tutti i Key Vault raggiungibili:```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)
---
## Autenticazione
I comandi anonimi `blob` **non** richiedono autenticazione. Tutto il resto utilizza
la **catena di credenziali predefinita** di Azure, che prova, in ordine: variabili
d'ambiente, identità del workload, identità gestita e la CLI di Azure (`az login`).```bash
az login
./azpt enum subscriptions
Forza l'autenticazione esplicita tramite service-principal (utile per un'identità di assessment con ambito limitato) con flag o variabili d'ambiente. Non ne hai ancora uno? az ad sp create-for-rbac --name azpt-assessment --role Reader --scopes /subscriptions/<subscription-id> ne crea uno — consulta Getting
started per la
procedura completa, incluse le autorizzazioni Graph che il solo RBAC non ti concede:```bash
./azpt --tenant --client-id --client-secret
enum subscriptions
export AZURE_TENANT_ID=... AZURE_CLIENT_ID=... AZURE_CLIENT_SECRET=... ./azpt enum subscriptions
**Autenticazione basata su certificato** (PFX o PEM):```bash
./azpt --tenant <tenant-id> --client-id <app-id> \
--certificate ./cert.pfx --cert-password 'P@ss' \
enum subscriptions
Limita le esecuzioni autenticate a sottoscrizioni specifiche con --subscription
(ripetibile); il valore predefinito è ogni sottoscrizione raggiungibile dal principal:```bash
./azpt --subscription 00000000-1111-2222-3333-444444444444 audit storage
---
## Riferimento dei comandi
🧪 indica un comando ancora in **beta**: implementato e utilizzabile, ma meno
collaudato rispetto al resto della suite — aspettati spigoli più ruvidi e
segnala i problemi che incontri.