Communitygithub.com

Auditing von Microsoft Entra ID (Azure Active Directory) Konfig…

Prüfung der Microsoft Entra ID (Azure Active Directory)-Konfiguration auf Sicherheitslücken, Fehlkonfigurationen und Compliance-Verstöße.

Was ist Auditing von Microsoft Entra ID (Azure Active Directory) Konfig…?

Dieses Skill dient der umfassenden Sicherheitsbewertung eines Azure-Mandanten mit Fokus auf Identitätskonfiguration, Authentifizierungsrichtlinien, MFA-Erzwingung und Rollenzuweisungen. Es unterstützt Entwickler und SecOps-Teams bei Compliance-Audits, Post-Merger-Bewertungen, der Untersuchung verdächtiger Anmeldeaktivitäten und der Validierung von Conditional Access-Richtlinien. Der Arbeitsablauf umfasst sechs Schritte: Aufzählung der Mandantenkonfiguration und Security Defaults, Prüfung privilegierter Rollenzuweisungen, Überprüfung von Conditional Access-Richtlinien, Identifizierung inaktiver Konten und Gastbenutzer, Analyse von Anmeldeprotokollen auf riskante Aktivitäten und Durchführung automatisierter Prüfungen mit ScoutSuite. Erforderliche Tools sind Microsoft Graph PowerShell SDK, Azure CLI und ScoutSuite. Das Skill erzeugt einen strukturierten Bericht mit kritischen Ergebnissen wie permanenten Global-Administratoren, fehlender MFA-Registrierung und Legacy-Authentifizierungsnutzung. Es eignet sich nicht für lokale Active-Directory-Audits oder Echtzeit-Bedrohungserkennung.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/auditing-azure-active-directory-configuration

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Auditing der Azure Active Directory-Konfiguration

Wann verwenden

  • Bei der Durchführung einer Sicherheitsbewertung der Identitätskonfiguration eines Azure-Mandanten
  • Wenn Compliance-Audits die Überprüfung von Authentifizierungsrichtlinien, MFA-Erzwingung und Rollenzuweisungen erfordern
  • Beim Onboarding eines neuen Azure-Mandanten nach Fusion oder Übernahme
  • Bei der Untersuchung verdächtiger Anmeldeaktivitäten oder kompromittierter Konten
  • Bei der Validierung, dass Conditional Access-Richtlinien ausreichend vor identitätsbasierten Angriffen schützen

Nicht verwenden für lokale Active Directory-Audits (PingCastle oder BloodHound AD verwenden), für Azure-Ressourcen-RBAC-Audits ohne Identitätskontext oder für Echtzeit-Bedrohungserkennung (Microsoft Defender for Identity verwenden).

Voraussetzungen

  • Rolle „Globaler Leser“ oder „Sicherheitsleser“ im Ziel-Microsoft-Entra-ID-Mandanten
  • Microsoft Graph PowerShell SDK installiert (Install-Module Microsoft.Graph)
  • Az CLI im Ziel-Mandanten authentifiziert (az login --tenant TENANT_ID)
  • ScoutSuite mit konfiguriertem Azure-Anbieter für automatisierte Bewertung
  • Zugriff auf Azure AD-Überwachungsprotokolle und Anmeldeprotokolle (erfordert Azure AD Premium P1/P2)

Arbeitsablauf

Schritt 1: Aufzählung der Mandantenkonfiguration und Security Defaults

Bewertung der grundlegenden Identitätssicherheitseinstellungen des Mandanten, einschließlich Security Defaults und Legacy-Authentifizierungsstatus.

# Mit Microsoft Graph verbinden
Connect-MgGraph -Scopes "Directory.Read.All","Policy.Read.All","AuditLog.Read.All"

# Mandantendetails abrufen
Get-MgOrganization | Select-Object DisplayName, Id, VerifiedDomains

# Prüfen, ob Security Defaults aktiviert sind
Get-MgPolicyIdentitySecurityDefaultEnforcementPolicy | Select-Object IsEnabled

# Authentifizierungsmethoden-Richtlinien auflisten
Get-MgPolicyAuthenticationMethodPolicy | ConvertTo-Json -Depth 5

# Legacy-Authentifizierungsstatus via Conditional Access prüfen
Get-MgIdentityConditionalAccessPolicy | Where-Object {
    $_.Conditions.ClientAppTypes -contains "exchangeActiveSync" -or
    $_.Conditions.ClientAppTypes -contains "other"
} | Select-Object DisplayName, State

Schritt 2: Prüfung privilegierter Rollenzuweisungen

Überprüfung der Verzeichnisrollenzuweisungen, um überprivilegierte Benutzer, permanente Administratorkonten und riskante Rollenkonfigurationen zu identifizieren.

# Alle Zuweisungen der Rolle „Globaler Administrator" auflisten
az rest --method GET \
  --url "https://graph.microsoft.com/v1.0/directoryRoles/filterByIds" \
  --body '{"ids":["62e90394-69f5-4237-9190-012177145e10"]}' | \
  az rest --method GET \
  --url "https://graph.microsoft.com/v1.0/directoryRoles?filter=displayName eq 'Globaler Administrator'" \
  --query "value[0].id" -o tsv

# Alle privilegierten Rollenzuweisungen über die Graph-API auflisten
az rest --method GET \
  --url "https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?$expand=principal" \
  --query "value[*].{Rolle:roleDefinitionId, Principal:principal.displayName, PrincipalTyp:[email protected]}" \
  -o table

# Prüfen auf Benutzer mit mehreren Admin-Rollen
az ad user list --query "[].{UPN:userPrincipalName, Anzeigename:displayName}" -o table

# Dienstprinzipale mit Admin-Rollenzuweisungen auflisten
az rest --method GET \
  --url "https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?$filter=principalOrganizationId eq 'TENANT_ID'" \
  -o json

Schritt 3: Überprüfung der Conditional Access-Richtlinien

Audit der Conditional Access-Richtlinien auf Abdeckungslücken, insbesondere in Bezug auf MFA-Erzwingung, Geräte-Compliance und standortbasierte Einschränkungen.

# Alle Conditional Access-Richtlinien auflisten
Get-MgIdentityConditionalAccessPolicy | Select-Object DisplayName, State, @{
    N='GrantSteuerelemente'; E={$_.GrantControls.BuiltInControls -join ', '}
} | Format-Table -AutoSize

# Richtlinien im Nur-Bericht-Modus identifizieren (nicht erzwungen)
Get-MgIdentityConditionalAccessPolicy | Where-Object {$_.State -eq "enabledForReportingButNotEnforced"} |
    Select-Object DisplayName

# MFA-Erzwingungsabdeckung prüfen
Get-MgIdentityConditionalAccessPolicy | Where-Object {
    $_.GrantControls.BuiltInControls -contains "mfa"
} | Select-Object DisplayName, State, @{
    N='Benutzer'; E={$_.Conditions.Users.IncludeUsers -join ', '}
}

# Richtlinien finden, die Gruppen ausschließen (potenzielle Umgehung)
Get-MgIdentityConditionalAccessPolicy | Where-Object {
    $_.Conditions.Users.ExcludeGroups.Count -gt 0
} | Select-Object DisplayName, @{
    N='AusgeschlosseneGruppen'; E={$_.Conditions.Users.ExcludeGroups -join ', '}
}

Schritt 4: Identifizierung inaktiver Konten und Gastbenutzer

Finden von Konten, die sich in letzter Zeit nicht angemeldet haben, deaktivierten Konten mit aktiven Rollenzuweisungen und riskanten Gastbenutzerkonfigurationen.

# Benutzer finden, die sich seit 90+ Tagen nicht angemeldet haben
az ad user list --query "[?signInActivity.lastSignInDateTime < '2025-11-25T00:00:00Z'].{UPN:userPrincipalName, LetzteAnmeldung:signInActivity.lastSignInDateTime, Aktiviert:accountEnabled}" -o table

# Alle Gastbenutzer auflisten
az ad user list --filter "userType eq 'Gast'" \
  --query "[].{UPN:userPrincipalName, Anzeigename:displayName, Erstellungsdatum:createdDateTime}" \
  -o table

# Gastbenutzer mit privilegierten Rollen finden
az rest --method GET \
  --url "https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?$expand=principal" \
  --query "value[?principal.userType=='Gast'].{Rolle:roleDefinitionId,Gast:principal.userPrincipalName}" \
  -o table

# Konten mit deaktiviertem MFA prüfen
az rest --method GET \
  --url "https://graph.microsoft.com/v1.0/reports/authenticationMethods/userRegistrationDetails" \
  --query "value[?!isMfaRegistered].{UPN:userPrincipalName,MfaRegistriert:isMfaRegistered}" \
  -o table

Schritt 5: Analyse der Anmeldeprotokolle auf riskante Aktivitäten

Überprüfung der Anmeldeprotokolle zur Identifizierung anomaler Authentifizierungsmuster, fehlgeschlagener MFA-Herausforderungen und riskanter Anmeldeerkennungen.

# Riskante Anmeldungen der letzten 7 Tage abrufen
az rest --method GET \
  --url "https://graph.microsoft.com/v1.0/auditLogs/signIns?$filter=riskLevelDuringSignIn ne 'none' and createdDateTime ge 2026-02-16T00:00:00Z" \
  --query "value[*].{Benutzer:userPrincipalName,Risiko:riskLevelDuringSignIn,IP:ipAddress,App:appDisplayName,Status:status.errorCode}" \
  -o table

# Anmeldungen von unbekannten Standorten abrufen
az rest --method GET \
  --url "https://graph.microsoft.com/v1.0/auditLogs/signIns?$filter=riskEventTypes_v2/any(r:r eq 'unfamiliarFeatures')" \
  --query "value[*].{Benutzer:userPrincipalName,Ort:location.city,IP:ipAddress}" \
  -o table

# Auf Legacy-Authentifizierungsanmeldungen prüfen
az rest --method GET \
  --url "https://graph.microsoft.com/v1.0/auditLogs/signIns?$filter=clientAppUsed ne 'Browser' and clientAppUsed ne 'Mobile Apps und Desktopclients'" \
  --query "value[*].{Benutzer:userPrincipalName,ClientApp:clientAppUsed,Status:status.errorCode}" \
  -o table

Schritt 6: Automatisierte Bewertung mit ScoutSuite durchführen

Ausführung von ScoutSuite für umfassende automatisierte Prüfungen der gesamten Azure-Mandantenkonfiguration.

# ScoutSuite gegen Azure ausführen
python3 -m ScoutSuite azure --cli \
  --report-dir ./scoutsuite-azure-report \
  --all-abo subscriptions

# Den generierten HTML-Bericht anzeigen
open ./scoutsuite-azure-report/azure-report.html

Schlüsselkonzepte

BegriffDefinition
Microsoft Entra IDMicrosofts cloudbasierter Identitäts- und Zugriffsverwaltungsdienst, ehemals Azure Active Directory, bietet Authentifizierung und Autorisierung
Conditional AccessRichtlinien-Engine, die Signale (Benutzer, Gerät, Standort, Risiko) auswertet, um Zugriffskontrollen wie MFA, Geräte-Compliance oder Zugriffssperre durchzusetzen
Security DefaultsMicrosofts grundlegende Identitätsschutzeinstellungen, die MFA-Registrierung erzwingen, Legacy-Authentifizierung blockieren und privilegierte Aktionen schützen
Privileged Identity ManagementAzure AD Premium P2-Funktion für Just-in-Time-privilegierten Zugriff mit Genehmigungsworkflows und zeitlich begrenzter Rollenaktivierung
Legacy-AuthentifizierungÄltere Authentifizierungsprotokolle (POP3, IMAP, SMTP, ActiveSync), die MFA nicht unterstützen und häufig für Credential-Angriffe ausgenutzt werden
Riskante AnmeldungErkennung von Anmeldeanomalien durch Microsoft Entra Identity Protection, einschließlich unmöglicher Reisen, unbekannter Standorte und mit Malware verknüpfter IPs

Tools & Systeme

  • Microsoft Graph API: Primäre programmatische Schnittstelle zum Abfragen der Entra ID-Konfiguration, -Richtlinien, -Rollen und -Überwachungsprotokolle
  • Microsoft Graph PowerShell SDK: PowerShell-Modul für die Verwaltung von Entra ID und Sicherheitsaudit-Aufgaben
  • ScoutSuite: Multi-Cloud-Auditing-Tool mit Azure-Anbieterunterstützung für IAM-, Speicher-, Netzwerk- und Identitätsprüfungen
  • AzureADRecon: Community-Tool für umfassende Azure AD-Aufklärung und Sicherheitsbewertungsberichte
  • Microsoft Defender for Identity: Cloudbasierte Sicherheitslösung zur Erkennung identitätsbasierter Bedrohungen und kompromittierter Anmeldeinformationen

Häufige Szenarien

Szenario: Sicherheitsbewertung eines Azure-Mandanten nach Übernahme

Kontext: Nach der Übernahme eines Unternehmens muss das Sicherheitsteam die Identitätssicherheitslage des Azure-Mandanten bewerten, bevor es in das Unternehmens-Entra ID integriert wird.

Vorgehen:

  1. Alle Globalen Administratoren auflisten und auf persönliche Konten in Admin-Rollen prüfen
  2. Conditional Access-Richtlinien überprüfen, ob MFA für alle Benutzer (nicht nur Admins) erzwungen wird
  3. Gastbenutzer mit privilegiertem Zugriff identifizieren, die auf übermäßige Berechtigungen von Drittanbietern hinweisen könnten
  4. Auf inaktive Konten (keine Anmeldung seit 90+ Tagen) prüfen, die Ziele für Credential-Angriffe sein könnten
  5. Anmeldeprotokolle auf Legacy-Authentifizierungsnutzung prüfen, die MFA umgeht
  6. Sicherstellen, dass Security Defaults oder äquivalente CA-Richtlinien Legacy-Auth-Protokolle blockieren
  7. Einen Risikobericht mit priorisierten Korrekturmaßnahmen vor der Mandantenintegration erstellen

Fallstricke: Azure AD Premium P2 ist für riskante Anmeldeerkennungen und PIM erforderlich. Wenn der erworbene Mandant eine niedrigere Lizenzstufe verwendet, sind viele Identitätsschutzfunktionen nicht verfügbar. Gastbenutzer von Partnermandanten können durch dynamische Gruppen impliziten Zugriff haben, der in Standard-Rollenzuweisungsabfragen nicht sichtbar ist.

Ausgabeformat

Sicherheitsaudit-Bericht für Azure Active Directory
=====================================================
Mandant: acme-acquired.onmicrosoft.com
Mandanten-ID: a1b2c3d4-e5f6-7890-abcd-ef1234567890
Audit-Datum: 2026-02-23
Lizenz: Azure AD Premium P2

IDENTITÄTSKONFIGURATION:
  Security Defaults: Deaktiviert (Conditional Access wird verwendet)
  Conditional Access-Richtlinien: 12 (8 erzwungen, 3 nur Bericht, 1 deaktiviert)
  Legacy-Authentifizierung blockiert: Teilweise (nur für Admins blockiert)

PRIVILEGIERTER ZUGRIFF:
  Globale Administratoren:              8 (empfohlen: <= 4)
  Permanente Admin-Zuweisungen:         6 (keine PIM-Aktivierung erforderlich)
  Dienstprinzipale mit Admin-Zugriff:   3
  Gastbenutzer mit privilegierten Rollen: 2

KONTOHYGIENE:
  Gesamtbenutzer:                        1.247
  Inaktive Konten (90+ Tage):            89
  Gastbenutzer:                          234
  Benutzer ohne MFA-Registrierung:       156

ANMELDERISIKO:
  Riskante Anmeldungen (letzte 30 Tage):  34
  Legacy-Auth-Anmeldungen (letzte 7 Tage): 67
  Erkennung unmöglicher Reisen:            5
  Anmeldungen von unbekannten Standorten: 12

KRITISCHE ERKENNTNISSE:
  1. 8 Globale Administratoren mit permanenten Zuweisungen (PIM verwenden)
  2. Legacy-Authentifizierung für Nicht-Admin-Benutzer nicht blockiert
  3. 156 Benutzer ohne MFA-Registrierung
  4. 2 Gastbenutzer mit der Rolle „Privilegierter Rollenadministrator"

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

abusing-dpapi-for-credential-access

Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys) online or offline using SharpDPAPI, SharpChrome, Mimikatz, or Impacket

abusing-shadow-credentials-for-privesc

Take over Active Directory accounts by writing attacker-controlled public keys to msDS-KeyCredentialLink (Shadow Credentials) with pyWhisker, Whisker, or Certipy, then authenticate via PKINIT to recover the target

achieving-cmmc-level-2-compliance

>-

acquiring-disk-image-with-dd-and-dcfldd

Create forensically sound bit-for-bit disk images with dd or dcfldd on a Linux forensic workstation, preserving evidence integrity through hash verification (MD5/SHA) during acquisition. Use when imaging a suspect drive, USB device, or memory card for investigation, preserving volatile disk evidence during incident response, or producing a verified copy for legal or law-enforcement proceedings before any destructive analysis.

analyzing-active-directory-acl-abuse

Detect dangerous ACL misconfigurations in Active Directory using ldap3

analyzing-android-malware-with-apktool

Perform static analysis of Android APK malware using apktool for resource decompilation, jadx for Java source recovery, and androguard for manifest inspection, dangerous permission-combination detection, and identification of obfuscated code, dynamic code loading, and reflection-based API calls. Use to statically triage a suspicious APK without executing it or to build mobile malware detection rules.

analyzing-api-gateway-access-logs

Parses API Gateway access logs (AWS API Gateway, Kong, Nginx) to detect

analyzing-apt-group-with-mitre-navigator

Query ATT&CK data with attackcti, mitreattack-python, and stix2, then build MITRE ATT&CK Navigator layers and multi-layer heatmap overlays mapping one or more APT groups

analyzing-azure-activity-logs-for-threats

Queries Azure Monitor activity logs and sign-in logs via azure-monitor-query

analyzing-bootkit-and-rootkit-samples

Analyzes bootkit and advanced rootkit malware infecting the Master

analyzing-browser-forensics-with-hindsight

Parse Chromium-based browser databases with Hindsight to extract and correlate browsing history, downloads, cookies, cached content, autofill data, saved passwords, and extensions from Chrome, Edge, Brave, Opera, and Vivaldi into a unified timeline (XLSX, JSON, or SQLite output). Use during incident response, insider-threat investigations, or criminal cases when you need to reconstruct a user

analyzing-campaign-attribution-evidence

Systematically evaluate cyber-campaign evidence to attribute an operation to a threat actor, using the Diamond Model and Analysis of Competing Hypotheses (ACH) to weigh infrastructure overlaps, TTP consistency, malware code similarity, and timing/language artifacts into confidence-weighted attribution assessments. Use when an incident investigation needs a defensible attribution confidence level.

analyzing-certificate-transparency-for-phishing

Monitor Certificate Transparency logs using crt.sh and Certstream to

analyzing-cloud-storage-access-patterns

Detect abnormal access in AWS S3, GCS, and Azure Blob Storage by analyzing CloudTrail Data Events, GCS audit logs, and Azure Storage Analytics for after-hours bulk downloads, new-IP access, and API-call spikes (e.g. GetObject) via statistical baselines and time-series anomaly detection. Use when investigating suspected cloud data exfiltration or building related detection rules.

analyzing-cobalt-strike-beacon-configuration

Extract and analyze Cobalt Strike beacon configuration from PE files

analyzing-cobaltstrike-malleable-c2-profiles

Parse and analyze Cobalt Strike Malleable C2 profiles with dissect.cobaltstrike (profiles and beacon-payload configs) and pyMalleableC2 (AST parsing) to extract HTTP/DNS transforms, URIs, headers, sleep/jitter, and injection behavior, then generate network detection signatures. Use when reverse-engineering a captured malleable profile or building detections against Cobalt Strike Beacon traffic.

analyzing-command-and-control-communication

Analyzes malware C2 communication over HTTP, HTTPS, DNS, and custom

analyzing-cyber-kill-chain

Analyzes intrusion activity against the Lockheed Martin Cyber Kill Chain

analyzing-disk-image-with-autopsy

Perform comprehensive forensic analysis of raw (dd), E01, or AFF disk images with Autopsy and The Sleuth Kit, recovering deleted files, examining metadata and embedded artifacts, keyword searching, and building investigation timelines with visual reports. Use for structured analysis of a forensic disk image or when stakeholders need visual reports from evidence.

analyzing-dns-logs-for-exfiltration

Analyzes DNS query logs to detect data exfiltration via DNS tunneling,

Verwandte Skills