
Go-Toolkit für autorisierte Azure-Sicherheitsbewertungen: zählt Abonnements und Ressourcen auf, prüft Fehlkonfigurationen und greift anonym auf öffentlichen Blob-Speicher zu.
azpt)🚧 Öffentliche Beta.
azptbefindet sich in aktiver Entwicklung — Befehle, Flags und Ausgabeformate können sich zwischen Releases noch ändern. Fehlerberichte und Feedback sind über GitHub-Issues willkommen.
azpt ist ein Go-Toolkit für autorisierte Azure-Sicherheitsbewertungen. Es
arbeitet aus zwei Perspektiven:
⚠️ Nur autorisierte Nutzung. Führe dies nur gegen Tenants, Subscriptions und Speicherkonten aus, für deren Test du ausdrücklich schriftliche Genehmigung hast. Die anonymen
blob-Befehle berühren Infrastruktur Dritter über das Internet — grenze sie auf dein Engagement ein.
Alle Beispiele unten beziehen sich auf eine fiktive Acme Corp, deren statische
Marketing-Website in einem Azure-Speicherkonto namens acmewebsite
(https://acmewebsite.blob.core.windows.net) gehostet wird.
Die vollständige Dokumentation befindet sich in docs/:
docs/guides/) — pro Feature: wie die
Technik funktioniert, die exakt benötigte Azure RBAC- / Microsoft Graph-Berechtigung,
die wichtigsten Flags erklärt, Beispiele sowie OPSEC- / Detection-Hinweise — gegliedert
nach Engagement-Phase.docs/guides/scenarios/)
— End-to-End-Angriffsnarrative, die Befehle über Phasen hinweg verketten (Token →
Global Admin, Golden SAML-Übernahme, PRT-Diebstahl, Consent-Phishing → M365,
Lateral Movement über Managed Identity, Offline-Verzeichnisjagd, Device-Code-
Phishing), jeweils mit OPSEC und Bereinigung.docs/reference/) — eine automatisch generierte
Seite pro Befehl mit jedem Flag (Name, Kurzform, Typ, Standardwert,
Beschreibung). Neu generieren mit azpt gen-docs docs/reference; dieselben
Informationen werden auch von azpt <command> --help ausgegeben.Lade das Archiv für deine Plattform vom neuesten Release herunter, verifiziere es und entpacke es:```bash
tar -xzf azpt_.tar.gz sha256sum -c --ignore-missing SHA256SUMS
Binaries sind statisch (`CGO_ENABLED=0`) und benötigen keine Laufzeitabhängigkeiten.
Builds werden für linux und darwin auf amd64 und arm64 veröffentlicht.
Windows-Binaries werden nicht veröffentlicht. Die Windows-spezifischen Helfer (`prt extract`,
`adconnect sync-creds`, DPAPI) lassen sich weiterhin aus dem Quellcode mit `go build -o
azpt.exe .` auf einem Windows-Host bauen.
### Aus dem Quellcode
Erfordert Go 1.26+.```bash
git clone https://github.com/hac01/azure-pentesting-suite.git
cd azure-pentesting-suite
go build -o azpt .
Dies erzeugt eine eigenständige azpt-Binärdatei im Repo-Stammverzeichnis. Du kannst auch
ohne Build über go run . <command> aus dem Repo-Verzeichnis ausführen.
Für die anonymen blob-Befehle ist keine Azure-Anmeldung erforderlich:```bash
./azpt blob hunt --account acmewebsite
Mit Azure-Anmeldeinformationen (`az login`) von innen bewerten — sowohl die Ressourcenebene (ARM) als auch das Verzeichnis (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)
Eine häufige Kette: eine Anmeldeinformation anonym mit blob hunt wiederherstellen, sich als dieser Benutzer anmelden (az login), mit enum access prüfen, was er tun kann, und dann alle Key Vaults plündern, die erreichbar sind:```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)
---
## Authentifizierung
Die anonymen `blob`-Befehle benötigen **keine** Authentifizierung. Alles andere verwendet
die Azure-**Standard-Anmeldeinformationskette**, die in dieser Reihenfolge versucht: Umgebungs-
variablen, Workload-Identität, Managed Identity und die Azure CLI (`az login`).```bash
az login
./azpt enum subscriptions
Erzwinge explizite Service-Principal-Authentifizierung (nützlich für eine
bereichsbezogene Assessment-Identität) mit Flags oder Umgebungsvariablen. Noch
keine vorhanden? az ad sp create-for-rbac --name azpt-assessment --role Reader --scopes /subscriptions/<subscription-id> erstellt eine — siehe Erste
Schritte für die
vollständige Anleitung, einschließlich der Graph-Berechtigungen, die RBAC allein
dir nicht gewährt:```bash
./azpt --tenant --client-id --client-secret
enum subscriptions
export AZURE_TENANT_ID=... AZURE_CLIENT_ID=... AZURE_CLIENT_SECRET=... ./azpt enum subscriptions
**Zertifikatsbasierte** Authentifizierung (PFX oder PEM):```bash
./azpt --tenant <tenant-id> --client-id <app-id> \
--certificate ./cert.pfx --cert-password 'P@ss' \
enum subscriptions
Begrenzen Sie authentifizierte Ausführungen auf bestimmte Abonnements mit --subscription
(wiederholbar); der Standard ist jedes Abonnement, das der Prinzipal erreichen kann:```bash
./azpt --subscription 00000000-1111-2222-3333-444444444444 audit storage
---
## Befehlsreferenz
🧪 markiert einen Befehl, der sich noch in der **Beta** befindet: implementiert und nutzbar, aber weniger
erprobt als der Rest der Suite — erwarten Sie rauere Kanten, und bitte
melden Sie Probleme, auf die Sie stoßen.