Eine Sammlung von Bash- und PowerShell-Skripten für Azure-Sicherheitsbewertungen, die IAM-Privilege-Escalation, Containersicherheit, Key-Vault-Exposition, Entra-ID-Konfiguration und mehr abdecken. Entwickelt für die Ausführung in Azure Cloud Shell oder in jedem authentifizierten Terminal.
Skripte
IAM / Identität
| Skript | Shell | Beschreibung |
|---|
IAMPrivz.sh | Bash | Prüft alle RBAC-Rollendefinitionen und -zuweisungen im gesamten Mandanten auf gefährliche Privilege-Escalation-Berechtigungen: roleAssignments/write, roleDefinitions/write und federatedIdentityCredentials/write. Löst für jede markierte Zuweisung die Principal-Identitäten (Benutzer, Dienstprinzipale, Gruppen) auf. Gibt JSON- und Textberichte aus. |
EntraUserSettings.sh | Bash | Meldet mandantenweite Benutzereinstellungen der Entra ID über Microsoft Graph – App-Registrierungsberechtigungen, Mandantenerstellung, Erstellung von Sicherheitsgruppen, Einschränkungsstufe für Gastzugriff und Einschränkungen im Admin Center. |
EntraUserSettings.ps1 | PowerShell | PowerShell-Äquivalent zu EntraUserSettings.sh. |
GlobalAdmins.sh | Bash | Extrahiert alle Mitglieder der Verzeichnisrolle „Globaler Administrator“. Sammelt Anzeigenamen, UPN, Objekttyp, Kontostatus und Objekt-ID. Aktiviert die Rolle, falls sie im Verzeichnis noch nicht aktiviert ist. Gibt eine formatierte Tabelle plus CSV mit Zeitstempel aus. |
GlobalAdmin.ps1 | PowerShell | PowerShell-Äquivalent zu GlobalAdmins.sh. |
GuestInvite.sh | Bash | Prüft Richtlinien für Gasteinladungen und Einstellungen für die externe Zusammenarbeit – wer Gäste einladen darf, Einschränkungsstufen für den Gastzugriff, Berechtigungen für die Anmeldung per E-Mail. Markiert Konfigurationen mit hohem Risiko (z. B. „Jeder kann einladen“). Gibt einen Bericht mit Zeitstempel aus. |
GuestInvite.ps1 | PowerShell | PowerShell-Äquivalent zu GuestInvite.sh. |
JoinableGroups.sh | Bash | Ermittelt öffentlich beitrittsfähige Entra-ID-Gruppen (öffentliche Sichtbarkeit, nicht-dynamische Mitgliedschaft). Sammelt Metadaten, Mitgliederzahlen und zugewiesene Verzeichnisrollen. Bietet ein interaktives Menü zur Auswahl und zum Beitritt von Gruppen. Gibt CSV aus. |
JoinableGroups.ps1 | PowerShell | PowerShell-Äquivalent zu JoinableGroups.sh. |
Containersicherheit
| Skript | Shell | Beschreibung |
|---|
Conreg.sh | Bash | Listet Rollenzuweisungen über alle Abonnements und ACRs hinweg auf und gleicht sie mit 14 gefährlichen ACR-Berechtigungen ab (Zugriff auf Admin-Anmeldeinformationen, Token-Erzeugung, Aufgabenerstellung mit verwalteten Identitäten, Änderungen an der Registrierungskonfiguration). Führt Live-Fähigkeitstests durch – führt Operationen tatsächlich aus, um die Ausnutzbarkeit zu bestätigen, und bereinigt anschließend die Testressourcen. Gibt einen Bericht mit Zeitstempel aus. |
ContainerPermz.sh | Bash | Prüft Containerressourcen (ACR, Container Apps, Container Instances) über alle Abonnements hinweg. Listet Rollenzuweisungen auf, die auf Containerdienste ausgerichtet sind, identifiziert Prinzipale mit Schreib-/Besitzer-/Mitwirkender-Berechtigung und prüft, welche Container Apps und Instances verwaltete Identitäten aktiviert haben. Gibt zwei CSVs aus. |
ContainerPermz.ps1 | PowerShell | PowerShell-Äquivalent zu ContainerPermz.sh. |
Key Vault
| Skript | Shell | Beschreibung |
|---|
KV-Access.sh | Bash | Testet, ob der aktuelle Benutzer tatsächlichen Datenebenen-Zugriff auf Key Vaults in ausgewählten Abonnements hat. Versucht, Geheimnisse, Schlüssel und Zertifikate in jedem Tresor aufzulisten. Unterstützt interaktive, spezifische (-s) oder vollständige (-a) Abonnementauswahl. Gibt einen Bericht mit Zeitstempel aus. |
KV-Access.ps1 | PowerShell | PowerShell-Äquivalent zu KV-Access.sh. Verwendet die Flags -SubscriptionIds und -All. |
KV-PublicAccess.sh | Bash | Prüft die Netzwerkkonfiguration jedes Key Vaults über alle Abonnements hinweg. Klassifiziert jeden Tresor als öffentlich zugänglich, firewall-eingeschränkt, nur privat oder eingeschränkt. Prüft öffentlichen Netzwerkzugriff, Standard-ACL-Aktion, IP-/VNet-Regeln und private Endpunkte. Gibt CSV aus. |
KV-PublicAccess.ps1 | PowerShell | PowerShell-Äquivalent zu KV-PublicAccess.sh. |
Automatisierung
| Skript | Shell | Beschreibung |
|---|
RunbookGrabz.sh | Bash | Umfassende Prüfung aller Azure Automation-Konten über alle Abonnements hinweg. Extrahiert Runbook-Quellcode, Webhook-Konfigurationen, Zeitpläne, Auftragsverlauf (letzte 30 Tage) und Details zu Hybrid Workern. Gibt eine hierarchische Verzeichnisstruktur mit Detaildateien pro Konto und eigenen Ordnern für Runbook-Inhalte aus. |
RunbookGrabz.ps1 | PowerShell | PowerShell-Äquivalent zu RunbookGrabz.sh. |
SQL
| Skript | Shell | Beschreibung |
|---|
SQLAuditing.sh | Bash | Prüft den Überwachungsstatus aller Azure SQL Server und Datenbanken über alle Abonnements hinweg. Prüft Blob-, Log-Analytics- und Event-Hub-Ziele. Intelligente Logik: Überspringt Prüfungen auf Datenbankebene, wenn die Überwachung auf Serverebene bereits aktiviert ist. Markiert nicht abgedeckte Datenbanken. Gibt CSV aus. |
SQLAuditing.ps1 | PowerShell | PowerShell-Äquivalent zu SQLAuditing.sh. |
Voraussetzungen
- Azure CLI-Sitzung (
az login) oder Azure Cloud Shell
jq – für alle Bash-Skripte erforderlich
- Az PowerShell-Module – für
.ps1-Skripte erforderlich (Az.Accounts, Az.KeyVault, Az.Sql, usw.)
- Entsprechende Leseberechtigungen für die zu prüfenden Ressourcen (mindestens Leser; einige Skripte wie
Conreg.sh testen Schreiboperationen)
Verwendung
# Run from Azure Cloud Shell or any authenticated terminal
az login
# IAM privilege escalation audit
bash Cloudshell/IAMPrivz.sh
# Container registry permission check with live tests
bash Cloudshell/Conreg.sh
# Key Vault access test (all subscriptions)
bash Cloudshell/KV-Access.sh -a
# Key Vault public exposure audit
bash Cloudshell/KV-PublicAccess.sh
# PowerShell equivalents
pwsh Cloudshell/KV-Access.ps1 -All
pwsh Cloudshell/ContainerPermz.ps1
Dateistruktur
Azure/
├── README.md
└── Cloudshell/
├── IAMPrivz.sh
├── Conreg.sh
├── ContainerPermz.sh
├── ContainerPermz.ps1
├── EntraUserSettings.sh
├── EntraUserSettings.ps1
├── GlobalAdmins.sh
├── GlobalAdmin.ps1
├── GuestInvite.sh
├── GuestInvite.ps1
├── JoinableGroups.sh
├── JoinableGroups.ps1
├── KV-Access.sh
├── KV-Access.ps1
├── KV-PublicAccess.sh
├── KV-PublicAccess.ps1
├── RunbookGrabz.sh
├── RunbookGrabz.ps1
├── SQLAuditing.sh
└── SQLAuditing.ps1
Haftungsausschluss
Diese Werkzeuge sind ausschließlich für autorisierte Sicherheitsbewertungen und zu Bildungszwecken bestimmt. Holen Sie stets die entsprechende Genehmigung ein, bevor Sie diese Skripte gegen eine Azure-Umgebung ausführen.