Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!
EntraFalcon — Ein leichtgewichtiges PowerShell-Tool zur Bewertung der Sicherheitslage von Microsoft Entra ID-Umgebungen. Es hilft, privilegierte Objekte, riskante Zuweisungen und potenzielle Fehlkonfigurationen zu identifizieren. | Kitploit
Ein leichtgewichtiges PowerShell-Tool zur Bewertung der Sicherheitslage von Microsoft Entra ID-Umgebungen. Es hilft, privilegierte Objekte, riskante Zuweisungen und potenzielle Fehlkonfigurationen zu identifizieren.
EntraFalcon ist ein auf PowerShell basierendes Bewertungstool für Pentester, Sicherheitsanalysten und Systemadministratoren, um die Sicherheitslage einer Microsoft-Entra-ID-Umgebung zu bewerten.
EntraFalcon ist auf Benutzerfreundlichkeit ausgelegt, läuft unter PowerShell 5.1 und 7, unterstützt sowohl Windows als auch Linux und erfordert keine zusätzlichen PowerShell-Module, keine weiteren Installationen und keine Zustimmung zur Microsoft-Graph-API.
Das Tool hilft dabei, privilegierte Objekte, potenziell riskante Zuweisungen und Fehlkonfigurationen von Conditional Access aufzudecken, die oft übersehen werden, wie zum Beispiel:
Benutzer mit Kontrolle über Gruppen oder Anwendungen mit hohen Privilegien
Externe oder interne Unternehmensanwendungen mit übermäßigen Berechtigungen (z. B. Microsoft-Graph-API, Azure-Rollen)
Benutzer mit direkten Azure-IAM-Rollenzuweisungen auf Ressourcen
Privilegierte Konten, die aus der lokalen Umgebung synchronisiert wurden
Inaktive Benutzer oder Benutzer ohne MFA-Fähigkeit
Ungeschützte Gruppen, die in sensiblen Zuweisungen verwendet werden (z. B. Conditional-Access-Ausschlüsse, Abonnementbesitzer oder berechtigte Mitglieder einer privilegierten Gruppe)
Die Ergebnisse werden in interaktiven HTML-Berichten präsentiert, um eine effiziente Erkundung und Analyse zu unterstützen.
🚀 Funktionen
Einfaches PowerShell-Skript, kompatibel mit PowerShell 5.1 und 7. Funktioniert unter Windows und Linux
Integrierte Authentifizierung mit Unterstützung mehrerer Methoden
Verwendet Microsoft-Erstanbieteranwendungen mit vorab genehmigten Bereichen, um Graph-API-Zustimmungsaufforderungen zu umgehen
Erzeugt navigierbare HTML-Berichte, die Filtern, Sortieren, Datenexport usw. unterstützen
Führt mehr als 90 automatisierte Prüfungen durch und fasst die Ergebnisse in einem Sicherheitsbefundbericht zusammen
Enthält Prüfungen auf schwache Mandantenkonfigurationen und riskante Objekteigenschaften oder -berechtigungen
Bietet Schweregrade sowie Beschreibungen des Problems, potenzielle Bedrohungen und Anleitungen zur Behebung
Listet betroffene Objekte auf und verlinkt direkt auf deren detaillierte Berichte für weitere Untersuchungen
Führt eine grundlegende Bewertung von Auswirkung, Wahrscheinlichkeit und Risiko durch, um schwach geschützte Objekte mit hohen Privilegien hervorzuheben und die Daten zu sortieren
Zeigt Warnungen für riskante Konfigurationen und erhöhte Privilegien an
Listet Entra-ID-Objekte auf, einschließlich:
Benutzer (einschließlich Agent-Benutzer)
Gruppen
Unternehmensanwendungen
App-Registrierungen
Verwaltete Identitäten
Agent-Identitäten
Blueprint-Prinzipale der Agent-Identität
Blueprints der Agent-Identität
PIM-Zuweisungen:
PIM für Entra-Rollen
PIM für Gruppen
PIM für Azure-Rollen
Entra-Rollenzuweisungen
Azure-Rollenzuweisungen
Intune-RBAC-Zuweisungen
Zugriffspakete
Kataloge für Berechtigungsverwaltung
Katalog-RBAC
Conditional-Access-Richtlinien
Administrative Einheiten
PIM-Einstellungen:
PIM für Entra-Rollen
PIM für Gruppen (nur BroCi-Authentifizierung)
✅ Anforderungen
Typ
Berechtigung
Erforderlich
Auswirkung, wenn fehlend
Entra-ID-Rolle
Globaler Leser
Ja
Skripte können nicht ausgeführt werden
Azure-Rolle
Leser: Für jede Verwaltungsgruppe oder jedes Abonnement
Nein
Azure-IAM-Zuweisungen können nicht bewertet werden
Darüber hinaus müssen Sie in der Lage sein, sich von dem Gerät, auf dem Sie das Tool ausführen, bei der Microsoft-Graph-API und optional bei der Azure-ARM-API zu authentifizieren.
Stellen Sie sicher, dass Conditional-Access-Richtlinien Ihre Authentifizierung nicht blockieren.
Hinweis: Möglicherweise müssen Sie die PowerShell-Ausführungsrichtlinie vorübergehend ändern, um das Skript auszuführen.
Tun Sie dies nur für vertrauenswürdige Skripte!```
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process
EntraFalcon ausführen
EntraFalcon bietet integrierte Unterstützung für die Entra-ID-Authentifizierung. Verwenden Sie -AuthFlow, um den Authentifizierungsablauf auszuwählen.
Für normale Bewertungen verwenden Sie einen der Abläufe mit vollständiger Abdeckung:
Empfohlener Ablauf
Am besten geeignet für
Plattform
Abdeckung
BroCi(Standard)
Interaktive Windows-Ausführungen
Windows
Vollständig
BroCiManualCode
Authentifizierung in einem anderen Browser
Windows, Linux, macOS
Vollständig
BroCiToken
Vorhandenes Azure-Portal-Refresh-Token
Windows, Linux, macOS
Vollständig
ServicePrincipal
Automatisierung / CI
Windows, Linux, macOS
Vollständig
BroCi verwendet eine interaktive Anmeldung. BroCiToken und ServicePrincipal verwenden keine. Fallback-Benutzerabläufe können mehrere interaktive Anmeldungen erfordern, da separate Ressourcentokens angefordert werden.
Fallback-Authentifizierungsabläufe
Aufgrund des Fehlens vorab genehmigter First-Party-Anwendungen können die Fallback-Abläufe die vollständige Enumeration (PIM for Groups, Access Packages, Catalogs) nicht durchführen. Daher bleiben sie derzeit nur Fallback-Optionen.
Ablauf
Nur verwenden, wenn
Plattform
Einschränkungen
AuthCode
Legacy-Kompatibilität erforderlich ist
Windows
Teilweise Abdeckung. Kein eigenständiger Bericht für PIM for Groups, Access Packages oder Catalogs.
DeviceCode
Browserbasierte Authentifizierung nicht möglich ist
Windows, Linux, macOS
Teilweise Abdeckung. Kein eigenständiger Bericht für PIM for Groups, Access Packages oder Catalogs. Einige Security-Findings-Prüfungen laufen mit reduzierter Tiefe.
ManualCode
Die Authentifizierung muss über eine separate Browsersitzung abgeschlossen werden
Windows, Linux, macOS
Teilweise Abdeckung. Kein eigenständiger Bericht für PIM for Groups, Access Packages oder Catalogs.
Empfohlen: BroCi-Ablauf (Standard / nur Windows)
BroCi verwendet alternative First-Party-Anwendungen und erfordert nur eine interaktive Anmeldung.
Er ist nützlich, wenn der Azure Active Directory PowerShell-Client eine Zuweisung erfordert und vermieden werden muss.```powershell
.\run_EntraFalcon.ps1
1. Das Skript kopiert die Authentifizierungs-URL in die Zwischenablage.
2. Fügen Sie die URL in einen Browser ein (optional auf einem anderen Gerät für SSO-Unterstützung).
3. Öffnen Sie die Entwicklertools des Browsers und aktivieren Sie im Netzwerk-Tab `Protokoll beibehalten`.
4. Schließen Sie die Authentifizierung ab.
5. Durchsuchen Sie das Netzwerkprotokoll nach `code=1.` und kopieren Sie die Anforderungs-URL mit dem Code in die Zwischenablage.
6. Drücken Sie die Eingabetaste, um fortzufahren; das Skript liest den Code aus der Zwischenablage und schließt den Token-Abruf ab.
#### Empfohlen: BroCi mit Token
Wenn bereits ein gültiges Azure-Portal-Refresh-Token verfügbar ist (Client c44b4083-3bb0-49c1-b47d-974e53cbdf3c), kann es direkt verwendet werden.
Beispiel: Abrufen des Refresh-Tokens aus dem Browser
1. Öffnen Sie die Entwicklertools des Browsers und aktivieren Sie im Netzwerk-Tab die Option Protokoll beibehalten.
2. Authentifizieren Sie sich unter https://entra.microsoft.com.
3. Durchsuchen Sie das Netzwerkprotokoll nach `brk_client_id=c44b4083-3bb0-49c1-b47d-974e53cbdf3c` und extrahieren Sie das Refresh-Token aus der Antwort.```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCiToken -BroCiToken "1.XXXXXXXXXXX"
Empfohlen: Dienstprinzipal
Authentifiziert sich als registrierte Anwendung über den OAuth2-Client-Credentials-Grant – keine Benutzerinteraktion erforderlich.
Nützlich für wiederholte automatisierte Ausführungen.
Erfordert eine benutzerdefinierte Entra-App-Registrierung mit Graph-API-Berechtigungen vom Typ Application (siehe unten).
Für einen verschlüsselten privaten Schlüssel fügen Sie `-SPPrivateKeyPemPassword (Read-Host -Prompt "Private key password" -AsSecureString)` hinzu.
##### Erforderliche App-Registrierungsberechtigungen
Gewähren Sie die folgenden **Anwendungs**-Berechtigungen (nicht delegierte) auf der App-Registrierung und stimmen Sie ihnen als Administrator zu:
| Berechtigung | Typ |
|---|---|
| `AdministrativeUnit.Read.All` | Anwendung |
| `AgentIdentity.Read.All` | Anwendung |
| `AgentIdentityBlueprint.Read.All` | Anwendung |
| `AgentIdentityBlueprintPrincipal.Read.All` | Anwendung |
| `Application.Read.All` | Anwendung |
| `AuditLog.Read.All` | Anwendung |
| `Device.Read.All` | Anwendung |
| `EntitlementManagement.Read.All` | Anwendung |
| `Group.Read.All` | Anwendung |
| `Organization.Read.All` | Anwendung |
| `Policy.Read.All` | Anwendung |
| `PrivilegedAccess.Read.AzureADGroup` | Anwendung |
| `RoleManagement.Read.Directory` | Anwendung |
| `RoleManagementPolicy.Read.AzureADGroup` | Anwendung |
| `User.Read.All` | Anwendung |
| `DeviceManagementRBAC.Read.All` | Anwendung |
Zusätzlich weisen Sie dem Dienstprinzipal in Entra ID die Rolle **Azure Reader** auf der Stammverwaltungsgruppe (oder jedem relevanten Abonnement) und optional die Rolle **Global Reader** zu (erforderlich für den MFA-Status pro Benutzer).
#### Fallback: Auth-Code-Flow (nur Windows)```powershell
.\run_EntraFalcon.ps1 -AuthFlow AuthCode
Fallback: Device Code Flow
In gehärteten Umgebungen wird dies häufig durch Conditional Access eingeschränkt.
Mit DeviceCode laufen zwei Security-Findings-Prüfungen mit reduzierter Tiefe (CAP-004 und CAP-005).```powershell
.\run_EntraFalcon.ps1 -AuthFlow DeviceCode
Das Skript kopiert die Authentifizierungs-URL in die Zwischenablage.
Fügen Sie die URL in einen Browser ein (optional auf einem anderen Gerät für SSO-Unterstützung).
Schließen Sie die Authentifizierung ab.
Kopieren Sie die endgültige Weiterleitungs-URL aus der Browser-Adressleiste (die den Autorisierungscode enthält) in die Zwischenablage.
Drücken Sie die Eingabetaste, um fortzufahren; das Skript liest den Code aus der Zwischenablage und schließt den Token-Abruf ab.
Weitere Parameter
Microsoft-eigene Enterprise-Apps einbeziehen
Standardmäßig werden offizielle Microsoft-Enterprise-Anwendungen von der Bewertung ausgeschlossen, um Rauschen zu reduzieren. Um sie in die Aufzählung und Analyse einzubeziehen, verwenden Sie den Schalter -IncludeMsApps:```powershell
.\run_EntraFalcon.ps1 -IncludeMsApps
root@kitploit:~
#### Bewertung von PIM für Gruppen überspringen
Verwenden Sie den Schalter `-SkipPimForGroups`, um die Vorab-Erfassung und Anreicherung von PIM für Gruppen zu überspringen.
Dadurch wird auch der eigenständige Bericht zu den Einstellungen von `PIM für Gruppen` übersprungen.```powershell
.\run_EntraFalcon.ps1 -SkipPimForGroups
Weitere optionale Parameter
Parameter
Beschreibung
Standardwert
UserAgent
User-Agent, der für die Anfragen an den Token-Endpunkt und API-Aufrufe verwendet wird.
EntraFalcon
DisableCAE
Deaktiviert die Anforderung von Continuous Access Evaluation (CAE)-Tokens.
false
Tenant
Gibt den Mandanten (ID oder Domäne) an, gegen den die Authentifizierung erfolgt. Nützlich bei der Bewertung eines anderen Mandanten als des Heim-Mandanten des Kontos.
Heim-Mandant des Kontos
OutputFolder
Ausgabeordner, in dem die Berichte gespeichert werden.
Results_%TenantName%_YYYYMMDD_HHMM
LimitResults
Begrenzt die Anzahl der Gruppen und Benutzer im Bericht (nach Sortierung nach Risiko). Nützlich für große Mandanten.
-
LogLevel
Steuert die Ausführlichkeit der CLI-Protokollierung zur Laufzeit. Unterstützte Werte: Off (Standard), Verbose, Debug, Trace.
Off
ApiTop
Legt die maximale Anzahl der von der API zurückgegebenen Objekte fest. Niedrigere Werte verringern das Timeout-Risiko (HTTP 504), erhöhen jedoch die Anzahl der Anfragen.
999 (Gültiger Bereich: 5–999)
AuthFlow
Bevorzugter Auswahlschalter für den Authentifizierungsablauf. Werte: BroCi (Standard), AuthCode, DeviceCode, ManualCode, BroCiManualCode, BroCiToken, ServicePrincipal.
BroCi
BroCiToken
Aktualisierungstoken des Azure-Portals für AuthFlow BroCiToken.
-
SPClientId
Anwendungs- (Client-) ID des Dienstprinzipals. Erforderlich für -AuthFlow ServicePrincipal.
-
SPClientSecret
📊 Einige Beispielberichte
Security Finding Report
Benutzer
Benutzer (Detailbereich)
Entra-ID-Rollen
Azure-Rollen
Unternehmensanwendung (Detailbereich)
Conditional-Access-Richtlinien
Conditional-Access-Richtlinien (Detailbereich)
PIM-Rolleneinstellungen (Entra)
Agent-Identitäten
Aufzählungsübersicht
📑 HTML-Bericht
Allgemein
Klicken Sie auf die Schaltfläche ⚙️ Spalten, um bestimmte Spalten ein- oder auszublenden.
Klicken Sie auf 💾 Export, um CSV/JSON der aktuell sichtbaren Daten herunterzuladen oder CSV/TSV/JSON zu kopieren.
Klicken Sie auf 👁 Ansicht teilen, um Filter, Sortierung und Spaltenauswahl als teilbaren Link zu kopieren.
Klicken Sie auf 🧰 Voreingestellte Ansichten, um vorkonfigurierte Filter und Spaltenauswahlen anzuwenden.
Klicken Sie auf 🔄 Ansicht zurücksetzen, um die Ansicht auf den Standard zurückzusetzen.
Klicken Sie auf Objektnamen, um zu detaillierten Informationen zu springen, auch in anderen Berichten.
Wenn Sie die interne Navigation verwenden, drücken Sie die Zurück-Taste des Browsers, um zurückzukehren.
Einige Tabellenkopfzeilen zeigen Hilfetext beim Überfahren mit der Maus an.
Sortieren Sie Daten, indem Sie auf eine Tabellenkopfzeile klicken.
Alt+Klick auf eine Haupttabellen-Spaltenkopfzeile blendet diese Spalte schnell aus.
Alt+Klick auf eine Haupttabellen-Inhaltszeile blendet sie vorübergehend aus. Verwenden Sie den Chip für ausgeblendete Zeilen oder „Ansicht zurücksetzen“, um ausgeblendete Zeilen wieder anzuzeigen.
Filtern
Wenn kein Operator angegeben ist, verwendet das Filtern standardmäßig enthält.
Verwenden Sie = für eine exakte Übereinstimmung.
Verwenden Sie ^ für beginnt mit (z. B. ^Mallory).
Verwenden Sie $ für endet mit (z. B. $domain.ch).
Vergleichsoperatoren wie >, <, >=, <= werden unterstützt (nur numerische Werte).
Filter können durch Voranstellen von ! negiert werden (außer bei numerischen Vergleichen). Beispiele: !Mallory, !=Mallory, !^Mallory oder !$domain.ch.
Verwenden Sie =empty, um leere Zellen abzugleichen, oder !=empty, um nicht leere Zellen abzugleichen.
Verwenden Sie ||, um mehrere Werte in derselben Spalte abzugleichen (z. B. Admin || Guest).
Verwenden Sie &&, um mehrere Übereinstimmungen in derselben Spalte zu verlangen (z. B. !adm && !svc && !sql).
Um ODER-Logik über Spalten hinweg anzuwenden, verwenden Sie or_, group1_, group2_... direkt in einem Filterfeld. Beispiele: in Spalte 1: or_>1, in Spalte 2: or_!Mallory
Hinweis: Die Spalte DisplayName enthält auch die ID des Objekts (unsichtbar), sodass auch nach ID gefiltert werden kann.
Steuerung über GET-Parameter
Filtern: Wenden Sie Filter an, indem Sie Feldnamen als HTTP-GET-Parameter verwenden, z. B. ?EntraRoles=>1&Enabled=true.
Um ODER-Logik über Spalten hinweg anzuwenden, verwenden Sie das Präfix or_ oder group1_ (z. B. ?or_EntraRoles=>0&or_GrpMem=>0).
Spaltenauswahl: Wählen Sie aus, welche Spalten angezeigt werden sollen, mithilfe des Parameters columns. Beispiel: ?columns=DisplayName,Owner.
Sortierung: Sortieren Sie die Daten mithilfe der Parameter sort und sortDir. Beispiel: ?sort=Impact&sortDir=desc oder ?sort=OwnerCount&sortDir=asc.
Objektdetails: Springen Sie direkt zu einem bestimmten Objekt im Bericht mithilfe eines Ankers (#) und der Objekt-ID, z. B. #%ObjectID%.
Bewertung
Impact: Stellt den Umfang oder die Schwere der Berechtigungen dar, die das Objekt besitzt.
Likelihood: Stellt dar, wie leicht das Objekt beeinflusst werden kann oder wie gut es geschützt ist.
Diese Bewertung ist als grundlegende Einschätzung gedacht, um Einträge in der Tabelle zu sortieren und zu priorisieren.
Risikowerte sind nicht direkt über verschiedene Objekttypen oder Berichte hinweg vergleichbar.
Sie ist nicht als Ersatz für eine vollständige Risikobewertung gedacht.
🔧Unter der Haube
Rollenkategorisierung
Entra-ID- und Azure-Rollen werden grob in verschiedene Tier-Ebenen kategorisiert. Diese Kategorisierung beeinflusst die Impact-Werte von Objekten, denen diese Rollen zugewiesen sind.
Das Ziel ist es, Benutzern mit mächtigeren Rollen (z. B. Global Administrator) einen höheren Impact-Wert zuzuweisen als Benutzern mit weniger kritischen Rollen (z. B. Global Reader), auch wenn beide von Microsoft als privilegierte Rollen betrachtet werden.
Hinweis:
Für Azure-Rollen ist diese Kategorisierung weniger präzise, da der tatsächliche Impact stark vom Umfang der Rollenzuweisung abhängt. Beispielsweise hat eine Owner-Rolle auf einer einzelnen virtuellen Maschine deutlich weniger Impact, als wenn dieselbe Rolle auf ein gesamtes Abonnement angewendet wird. Es könnte sich auch um ein Testabonnement ohne Ressourcen handeln.
Entra-ID-Rollen
Rollenname
Tier-Ebene
GUID
Global Administrator
0
62e90394-69f5-4237-9190-012177145e10
Partner Tier2 Support
0
e00e864a-17c5-4a4b-9c06-f5b95a8d5bd8
Privileged Authentication Administrator
0
7be44c8a-adaf-4e2a-84d6-ab2649e08a13
Privileged Role Administrator
0
e8611ab8-c189-46e8-94e1-60213ab1f814
Domain Name Administrator
0
8329153b-31d0-4727-b945-745eb3bc5f31
External Identity Provider Administrator
0
be2f45a1-457d-42af-a067-6ec1fa63bc45
Hybrid Identity Administrator
0
8ac3fc64-6eca-42ea-9e69-59f4c7b60eb2
Application Administrator
0
9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3
Cloud Application Administrator
0
158c047a-c907-4556-b7ef-446551a6b5f7
Security Administrator
0
194ae4cb-b126-40b2-bd5b-6091b380977d
Agent ID Administrator
1
db506228-d27e-4b7d-95e5-295956d6615f
AI Administrator
1
d2562ede-74db-457e-a7b6-544e236ebb61
Conditional Access Administrator
1
b1be1c3e-b65d-4f19-8427-f6fa0d97feb9
Authentication Administrator
1
c4e39bd9-1100-46d3-8c65-fb160da0071f
Azure DevOps Administrator
1
e3973bdf-4987-49ae-837a-ba8e231c7286
Directory Writers
1
9360feb5-f418-4baa-8175-e2a00bac4301
Entra SOC Identity Responder
1
58f930cc-fcf4-4152-852c-1d7dbf502139
Exchange Administrator
1
29232cdf-9323-42fd-ade2-1d097af3e4de
Groups Administrator
1
fdd7a751-b60b-444a-984c-02652fe8fa1c
Helpdesk Administrator
1
729827e3-9c14-49f7-bb1b-9608f156bbb8
Identity Governance Administrator
1
45d8d3c5-c802-45c6-b32a-1d70b5e1e86e
Intune Administrator
1
3a2c62db-5318-420d-8d74-23affee5d9d5
Knowledge Administrator
1
b5a8dcf3-09d5-43a9-a639-8e29ef291470
Azure-Rollen
Rollenname
Tier-Ebene
GUID
Owner
0
8e3af657-a8ff-443c-a75c-2fe8c4bcb635
User Access Administrator
0
18d7d88d-d35e-4fb5-a5c3-7773c20a72d9
Contributor
0
b24988ac-6180-42a0-ab88-20f7382dd24c
Role Based Access Control Administrator
0
f58310d9-a9f6-439a-9e8d-f62e7b41a168
Reservations Administrator
0
a8889054-8d42-49c9-bc1c-52486c10e7cd
Security Admin
1
fb1c8493-542b-48eb-b624-b4c8fea62acd
Virtual Machine Contributor
1
9980e02c-c2be-4d73-94e8-173b1dc7cf3c
Virtual Machine Data Access Administrator
1
66f75aeb-eabe-4b70-9f1e-c350c4c9ad04
Virtual Machine Administrator Login
1
1c0163c0-47e6-4577-8991-ea5c82e286e4
Windows Admin Center Administrator Login
1
a6333a3e-0164-44c3-b281-7a577aff287f
Container Registry Contributor and Data Access Configuration Administrator
1
3bc748fc-213d-45c1-8d91-9da5725539b9
Key Vault Administrator
1
00482a5a-887f-4fb3-b363-3b7fe8e74483
Key Vault Data Access Administrator
1
8b54135c-b56d-4d72-a534-26097cfdc8d8
Key Vault Secrets Officer
1
b86a8fe4-44ce-4948-aee5-eccb2c155cd7
Key Vault Secrets User
1
4633458b-17de-408a-b874-0445c86b69e6
Azure Kubernetes Service RBAC Admin
1
3498e952-d568-435e-9b2c-8d77e338d7f7
Azure Kubernetes Service RBAC Cluster Admin
1
b1ff04bb-8a4e-4dc4-8eb5-8693973ce19b
Azure Arc Kubernetes Admin
1
dffb1e0c-446f-4dde-a09f-99eb5cc68b96
Azure Arc Kubernetes Cluster Admin
1
8393591c-06b9-48a2-a542-1bd6b377f6a2
Azure Arc VMware VM Contributor
1
b748a06d-6150-4f8a-aaa9-ce3940cd96cb
Storage Account Contributor
1
17d1049b-9a84-46fb-8f53-869881c3d3ab
Reader
2
acdd72a7-3385-48ef-bd42-f606fba81ae7
SecurityReader
API-Berechtigungskategorisierung
Bestimmte API-Berechtigungen ermöglichen es einer Anwendung, direkt auf Global-Administrator-Rechte zu eskalieren. Daher werden mehrere API-Berechtigungen in verschiedene Schweregrade kategorisiert. Diese Kategorisierung beeinflusst den Impact-Wert von Anwendungen, denen diese Berechtigungen zugewiesen sind – entweder als Anwendungsberechtigungen oder als delegierte Berechtigungen für Benutzer.
Standardmäßig werden Microsoft-Anwendungen herausgefiltert, um die Überprüfung der Unternehmensanwendungen zu vereinfachen. Verwenden Sie den Schalter -IncludeMsApps, um sie einzuschließen. Anwendungen aus den folgenden Mandanten werden als Microsoft-eigen behandelt:
f8cdef31-a31e-4b4a-93e4-5f571e91255a
72f988bf-86f1-41af-91ab-2d7cd011db47
33e01921-4d64-4f8c-a055-5bdaffd5e33d
cdc5aeea-15c5-4db6-b079-fcadd2505dc2
Durchgeführte Prüfungen
Die folgende Tabelle fasst die durchgeführten Prüfungen grob zusammen, einschließlich ihrer Auswirkung auf die Bewertung und ob eine Warnung angezeigt wird.
Durchgeführte Prüfungen|Bereich|Prüfung|Beeinflusst Bewertung|Warnung angezeigt|
|-|-|-|-|
|Gruppen|Ist eine öffentliche M365-Gruppe|Ja|Ja|
|Gruppen|Ist dynamisch / Ist dynamisch und potenziell gefährliche Abfrage|Ja|Ja|
|Gruppen|Entra-Rollen (Aktiv und berechtigt)|Ja|Ja|
|Gruppen|Azure-Rollen (Aktiv und berechtigt)|Ja|Ja|
|Gruppen|Für AppRole verwendet|Ja|Ja|
|Gruppen|Interner/Fremder SP als Besitzer|Ja|Ja|
|Gruppen|In eingeschränkter AU|Ja|Ja|
|Gruppen|Verschachtelt in privilegierter Gruppe|Ja|Ja|
|Gruppen|In CAP verwendet|Ja|Ja|
|Gruppen|Gruppentyp|Ja|Nein|
|Gruppen|Sicherheit aktiviert|Ja|Nein|
|Gruppen|Verschachteltes Mitglied aktiv|Ja|Nein|
|Gruppen|Besitzer|Ja|Nein|
|Gruppen|Verschachtelte Besitzer|Ja|Nein|
|Gruppen|Gast als Besitzer|Ja|Ja|
|Gruppen|On-Prem-Synchronisierung|Ja|Nein|
|Gruppen|Mitglieder (transitiv)|Ja|Nein|
|Gruppen|Rollen-zugewiesen|Ja|Nein|
|Gruppen|PIM für Gruppen: Onboarded|Nein|Nein|
|Gruppen|PIM für Gruppen: Berechtigtes Mitglied einer privilegierten Gruppe|Ja|Ja|
|Gruppen|PIM für Gruppen: Berechtigter Besitzer einer privilegierten Gruppe|Ja|Ja|
|Gruppen|PIM für Gruppen: Ungeschützte Gruppe, verschachtelt in geschützter Gruppe|Nein|Ja|
|EnterpriseApp|Entra-Rolle|Ja|Ja|
|EnterpriseApp|Azure-Rolle|Ja|Ja|
|EnterpriseApp|Fremd|Ja|Nein|
|EnterpriseApp|Von Microsoft deaktiviert|Nein|Ja|
|EnterpriseApp|Verdächtiger Name (ähnlich aussehende Zeichen)|Ja|Ja|
|EnterpriseApp|API-Berechtigung (Anwendung)|Ja|Ja|
|EnterpriseApp|API-Berechtigung (Delegiert)|Ja|Ja|
|EnterpriseApp|Anmeldeinformationen|Ja|Ja|
|EnterpriseApp|Besitzer|Ja|Ja|
|EnterpriseApp|Besitz über App-Registrierungen|Ja|Ja|
|EnterpriseApp|Besitz anderer Dienstprinzipale|Ja|Ja|
|EnterpriseApp|AppLock|(Ja)|Nein|
|EnterpriseApp|App besitzt App-Registrierung|Ja|Ja|
|EnterpriseApp|Mitglied / Besitzer von Gruppen|Ja|(Ja)|
|EnterpriseApp|AppRoles|Ja|Nein|
|EnterpriseApp|AppRole-Anforderungen|Ja|Nein|
|EnterpriseApp|Inaktiv|Nein|Nein|
|EnterpriseApp|Letzte erfolgreiche Anmeldung (Tage)|Nein|Nein|
|AppRegistrierungen|Anmeldeinformationen|Ja|Ja|
|AppRegistrierungen|Entra Connect-App mit Anmeldeinformationen|Ja|Ja|
|AppRegistrierungen|Entra Connect-App mit mehreren Zertifikaten|Ja|Ja|
|AppRegistrierungen|AppRoles|Ja|Nein|
|AppRegistrierungen|AppRedirectURL|Nein|Nein|
|AppRegistrierungen|AppLock|Ja|Nein|
|AppRegistrierungen|Besitzer|Ja|Ja|
|AppRegistrierungen|(Cloud-)App-Administratoren eingeschränkt|Nein|Nein|
|AppRegistrierungen|Berechtigungen des entsprechenden SP|Ja|Nein|
|AppRegistrierungen|Anmeldezielgruppe|Nein|Nein|
|VerwalteteIdentität|Besitzer|Ja|Ja|
|VerwalteteIdentität|Entra-Rolle|Ja|Ja|
|VerwalteteIdentität|Azure-Rolle|Ja|Ja|
|VerwalteteIdentität|API (App)|Ja|Ja|
|VerwalteteIdentität|Besitz über App-Registrierungen|Ja|Ja|
|VerwalteteIdentität|Besitz anderer Dienstprinzipale|Ja|Ja|
|VerwalteteIdentität|Mitglied / Besitzer von Gruppen|Ja|(Ja)|
|Benutzer|Entra-Rollen (Aktiv und berechtigt)|Ja|Ja|
|Benutzer|Azure-Rollen (Aktiv und berechtigt)|Ja|Ja|
|Benutzer|Privilegierte Gruppenmitgliedschaft (Aktiv und berechtigt)|Ja|Ja|
|Benutzer|Privilegierter Gruppenbesitz (Aktiv und berechtigt)|Ja|Ja|
|Benutzer|Entra Connect-Synchronisierungsbenutzer|Ja|Ja|
|Benutzer|Entra Connect Cloud-Synchronisierungsbenutzer|Ja|Ja|
|Benutzer|App-Registrierungsbesitz|Ja|Ja|
|Benutzer|EnterpriseApplication-Besitz|Ja|Ja|
|Benutzer|Kein MFA-Faktor registriert|Ja|Ja|
|Benutzer|Ist geschützt|Ja|Nein|
|Benutzer|Inaktiv|Nein|Nein|
|Benutzer|Mitglied / Besitzer von Gruppen|Ja|(Ja)|
|Benutzer|Von On-Prem synchronisiert|Ja|Nein|
|AgentIdentität|Verknüpfte Agent-Benutzer|Ja|Nein|
|AgentIdentität|Fremder Blueprint-Prinzipal-Ursprung|Ja|Ja|
|AgentIdentität|Effektive API-Berechtigung (Anwendung)|Ja|Ja|
|AgentIdentität|Effektive API-Berechtigung (Delegiert)|Ja|Ja|
|AgentIdentität|Entra-Rolle|Ja|Ja|
|AgentIdentität|Azure-Rolle|Ja|Ja|
|AgentIdentität|Besitz über App-Registrierungen|Ja|Ja|
|AgentIdentität|Besitz anderer Dienstprinzipale|Ja|Ja|
|AgentIdentität|Mitglied / Besitzer von Gruppen|Ja|(Ja)|
|AgentIdentitätBlueprintPrinzipal|Verknüpfte Agent-Identitäten|Ja|Nein|
|AgentIdentitätBlueprintPrinzipal|Verknüpfte Agent-Benutzer|Ja|Nein|
|AgentIdentitätBlueprintPrinzipal|Konfigurierte API-Berechtigung (Anwendung)|Nein|Nein|
|AgentIdentitätBlueprintPrinzipal|Konfigurierte API-Berechtigung (Delegiert)|Nein|Nein|
|AgentIdentitätBlueprintPrinzipal|Fremder übergeordneter Blueprint-Ursprung|Ja|Nein|
|AgentIdentitätBlueprintPrinzipal|Entra-Rolle|Nein|Nein|
|AgentIdentitätBlueprintPrinzipal|Azure-Rolle|Nein|Nein|
|AgentIdentitätBlueprintPrinzipal|Verdächtiger Name (ähnlich aussehende Zeichen)|Ja|Ja|
|AgentIdentitätBlueprint|Blueprint-Prinzipale|Ja|Nein|
|AgentIdentitätBlueprint|Verknüpfte Agent-Identitäten|Ja|Nein|
|AgentIdentitätBlueprint|Verknüpfte Agent-Benutzer|Ja|Nein|
|AgentIdentitätBlueprint|Vererbbare API-Berechtigungen|Ja|Nein|
|AgentIdentitätBlueprint|Verbundene Anmeldeinformationen|Ja|Nein|
|AgentIdentitätBlueprint|Geheimnisse / Zertifikate|Ja|Ja|
|AgentIdentitätBlueprint|Besitzer / Sponsoren|Ja|(Ja)|
|Zugriffspakete|Gewährte Entra-Rollen|Ja|Nein|
|Zugriffspakete|Gewährte Azure-Rollen|Ja|Nein|
|Zugriffspakete|Gewährte Gruppen|Ja|Nein|
|Zugriffspakete|Gewährte Anwendungsrollen|Ja|Nein|
|Zugriffspakete|Gewährte API-Berechtigungen (Anwendung)|Ja|Nein|
|Zugriffspakete|Gewährte API-Berechtigungen (Delegiert)|Ja|Nein|
|Zugriffspakete|Gewährter SharePoint-Zugriff|Ja|Nein|
|Zugriffspakete|Breite Selbstanfrage ohne Genehmigung|Ja|Ja|
|Zugriffspakete|Dauerhafter Zugriff ohne Ablauf oder Zugriffsüberprüfung|Nein|Nein|
|Zugriffspakete|Gefährliche automatische Zuweisungsregeln|Ja|Ja|
|Zugriffspakete|Selbstanfrage über ungeschützte Gruppenziele|Ja|Ja|
|Zugriffspakete|Breite Nicht-Benutzer-Zuweisung im Auftrag ohne Genehmigung|Ja|Nein|
|Zugriffspakete|Dienstprinzipal-Zuweisungen|Ja|Nein|
|Kataloge|Katalogmetadaten, Status und externe Sichtbarkeit|Nein|Nein|
|Kataloge|Katalogressourcen|Nein|Nein|
|Kataloge|Ressourcen, die in neuen Zugriffspaketen konfigurierbar sind|Ja|Nein|
|Kataloge|Ressourcen und Rollen, die in bestehenden Zugriffspaketen konfiguriert sind|Ja|Nein|
|Kataloge|Nicht konfigurierte Katalogressourcen|Ja|Nein|
|Kataloge|Katalog-RBAC-Zuweisungen|Ja|Ja|
|CAP|Keine oder falsch konfigurierte Richtlinie für Legacy-Authentifizierung|-|Ja|
|CAP|Keine oder falsch konfigurierte Richtlinie zum Blockieren des Gerätecodeflusses|-|Ja|
|CAP|Keine oder falsch konfigurierte Richtlinie zur Begrenzung der Registrierung von Sicherheitsinformationen|-|Ja|
|CAP|Keine oder falsch konfigurierte Richtlinie zur Ausrichtung auf riskante Anmeldungen|-|Ja|
|CAP|Keine oder falsch konfigurierte Richtlinie zur Ausrichtung auf Benutzerrisiko|-|Ja|
|CAP|Keine Richtlinie, die MFA erzwingt|-|Ja|
|CAP|Keine Richtlinie, die Authentifizierungsstärke erzwingt|-|Ja|
|CAP|Einbeziehung von Rollen mit eingeschränkten Zuweisungen|-|Ja|
|PIM-Einstellungen|AuthContext|-|Ja|
|PIM-Einstellungen|AuthContext verknüpfte CAP: Anmeldehäufigkeit|-|Ja|
|PIM-Einstellungen|AuthContext verknüpfte CAP: MFA oder AuthStrength|-|Ja|
|PIM-Einstellungen|AuthContext verknüpfte CAP: Aktiviert|-|Ja|
|PIM-Einstellungen|AuthContext verknüpfte CAP: Einbezogene/Ausgeschlossene Benutzer/Gruppen/Netzwerke|-|Ja|
|PIM-Einstellungen|AuthContext verknüpfte CAP: Bedingungen|-|Ja|
|PIM-Einstellungen|Aktivierungs-MFA|-|Nein|
|PIM-Einstellungen|Aktivierungsbegründung oder Ticket|-|Ja|
|PIM-Einstellungen|Aktivierungsdauer|-|Ja|
|PIM-Einstellungen|Aktivierungsgenehmigung|-|Ja|
|PIM-Einstellungen|Ablauf der berechtigten Zuweisung|-|Nein|
|PIM-Einstellungen|Ablauf der aktiven Zuweisung|-|Ja|
|PIM-Einstellungen|Aktive Zuweisungen MFA|-|Nein|
|PIM-Einstellungen|Benachrichtigung Rollenaktivierung|-|Nein|
|PIM-Einstellungen|Benachrichtigung Rollenzuweisung (aktiv)|-|Nein|
|PIM-Einstellungen|Benachrichtigung Rollenzuweisung (berechtigt)|-|Nein|
🛡️ Erkennung
EntraFalcon ist nicht heimlich und kann in Umgebungen erkannt werden, in denen Microsoft Graph API- und Azure-Anmeldeaktivitäten protokolliert und überwacht werden.
Verwendete Standardauthentifizierung
Wenn eine vollständige Enumeration mit Nicht-BroCi-Abläufen durchgeführt wird, initiiert das Tool in der Regel vier interaktive Anmeldungen und eine nicht-interaktive Anmeldung. Je nach Ablauf- und Endpunktunterstützung kann eine zusätzliche interaktive Anmeldung für Security Findings-Richtlinienendpunkte erfolgen.
Anwendungs-ID
Typ
Ressourcen-ID
Zweck
1b730954-1685-4b74-9bfd-dac224a7b894
Interaktiv
00000003-0000-0000-c000-000000000000
PIM für Gruppen-Daten abrufen
04b07795-8ddb-461a-bbee-02f9e1bf7b46
Interaktiv
00000003-0000-0000-c000-000000000000
Allgemeine Mandantenobjektdaten abrufen
51f81489-12ee-4a9e-aaae-a2591f45987d
Interaktiv
00000003-0000-0000-c000-000000000000
PIM für Entra-/Azure-Rollen abrufen
80ccca67-54bd-44ab-8625-4b79c4dc7775
Interaktiv
00000003-0000-0000-c000-000000000000
Security Findings-Richtlinienkontext abrufen
04b07795-8ddb-461a-bbee-02f9e1bf7b46
Nicht-interaktiv
797f4846-ba00-4fd7-ba43-dac1f8f63013
Azure-IAM-Rollenzuweisungsdaten abrufen
Verwendete BroCi-Authentifizierung
Wenn die BroCi-Authentifizierung verwendet wird, erfolgt nur eine interaktive Anmeldung.
Anwendungs-ID
Typ
Ressourcen-ID
Zweck
c44b4083-3bb0-49c1-b47d-974e53cbdf3c
Interaktiv
00000003-0000-0000-c000-000000000000
Erste Authentifizierung zur Verwendung des Aktualisierungstokens für BroCi
50aaa389-5a33-4f1a-91d7-2c45ecd8dac8
Nicht-interaktiv
00000003-0000-0000-c000-000000000000
PIM für Gruppen-Daten abrufen
50aaa389-5a33-4f1a-91d7-2c45ecd8dac8
Nicht-interaktiv
01fc33a7-78ba-4d2f-a4b7-768e336e890e
PIM für Gruppen-Daten abrufen
74658136-14ec-4630-ad9b-26e160ff0fc6
Nicht-interaktiv
00000003-0000-0000-c000-000000000000
Allgemeine Mandantenobjektdaten abrufen
74658136-14ec-4630-ad9b-26e160ff0fc6
Nicht-interaktiv
797f4846-ba00-4fd7-ba43-dac1f8f63013
Azure-IAM-Rollenzuweisungsdaten abrufen
Wenn BroCi aktiviert ist, fragt EntraFalcon außerdem api.azrbac.mspim.azure.com für PIM für Gruppen ab.
Details
Für die Datenerfassung sendet das Tool mehrere Anfragen an die Microsoft Graph API und optional an die Azure ARM API – eine oder mehr pro Objekt. Wo möglich, nutzt es den Graph-Batch-Endpunkt, um die Anzahl einzelner Anfragen zu reduzieren und die Effizienz zu verbessern.
Interaktive Anmeldungen verwenden den User-Agent des Browsers. Alle nicht-interaktiven Anmeldungen und API-Anfragen (Graph und ARM) verwenden EntraFalcon als User-Agent, sofern nicht mit dem Parameter -UserAgent geändert.
Zur Erkennung der Nutzung von EntraFalcon können Blue Teams die aufgeführten Anwendungs-IDs in Anmeldeprotokollen überwachen, nach ungewöhnlichen Mengen an Graph-API-Datenverkehr suchen oder das Verhalten von Tokenaktualisierung und Batch-Anfragen analysieren.
🕳️ Bekannte Einschränkungen
M365-RBAC: Nicht bewertet
Defender for Endpoint-RBAC: Nicht bewertet
Conditional Access-Benutzerabdeckung: Die effektive Benutzerabdeckung und -ExportCapUncoveredUsers sind Best-Effort-Berechnungen auf Grundlage enumerierter Benutzer, Gruppenmitglieder, Rollenzuweisungen und auflösbarer externer Benutzerkategorien. Externe Benutzerselektoren werden nur für Mandantengastbenutzer aufgelöst, die b2bCollaborationGuest entsprechen. Andere externe Benutzertypen oder externe Benutzer mit angegebenen externen Mandanten können die Abdeckungswerte ungenau machen. Berechtigte PIM-Pfade werden als potenzielle Abdeckung gemeldet und nicht als aktuell abgedeckt gezählt. Der CSV-Export ist auf aktivierte Richtlinien und aktivierte Benutzer beschränkt.
Cloud-Umgebung: Cloud-Plattformen entwickeln sich schnell weiter. Daher können einige Bewertungen oder Erkennungen im Laufe der Zeit veraltet oder ungenau werden. Darüber hinaus werden Mandanten zunehmend komplexer, und spezifische Konfigurationen oder Kombinationen von Einstellungen können zu ungenauen Ergebnissen führen. Obwohl wir uns bemühen, EntraFalcon aktuell zu halten, wird immer empfohlen, Ergebnisse unabhängig zu validieren und sich für kritische Entscheidungen nicht ausschließlich auf das Tool zu verlassen.
HTML-Berichte: Die generierten HTML-Berichte implementieren keine Schutzmechanismen gegen Cross-Site-Scripting (XSS).
📦 Integrierte externe Tools
Die folgenden Untermodule wurden geforkt und in EntraFalcon integriert, um Authentifizierung, Microsoft Graph-Interaktion und Berichtsdiagramme zu unterstützen:
Client-Geheimnis für den Dienstprinzipal. Wird mit -AuthFlow ServicePrincipal verwendet.
-
SPCertificatePath
Pfad zu einer PFX/P12-Zertifikatsdatei für die Dienstprinzipal-Authentifizierung.
-
SPCertificatePassword
Passwort (SecureString) für das PFX-Zertifikat, das durch -SPCertificatePath angegeben wird.
-
SPCertificatePemPath
Pfad zu einer PEM-Zertifikatsdatei. Wird zusammen mit -SPPrivateKeyPemPath verwendet.
-
SPPrivateKeyPemPath
Pfad zur PEM-Private-Key-Datei, die zu -SPCertificatePemPath passt.
-
SPPrivateKeyPemPassword
Passwort (SecureString) für den PEM-Private-Key, der durch -SPPrivateKeyPemPath angegeben wird.
-
Csv
Aktiviert das Schreiben von CSV-Berichtsdateien zusätzlich zu TXT/HTML-Berichtsdateien.
false
ExportCapUncoveredUsers
Exportiert für jede aktivierte Conditional-Access-Richtlinie mit Benutzer-Targeting eine CSV-Datei mit den Benutzern, die nicht von dieser Richtlinie abgedeckt sind. Die Dateien werden in einen Unterordner ConditionalAccessPolicies_UncoveredUsers im Ausgabeverzeichnis geschrieben.
false
ExportFindingsJson
Exportiert alle Security Findings am Ende des Laufs als JSON.
false
ExportDataJson
Exportiert angereicherte Berichts- und unterstützende Datensätze als rohe JSON-Datendateien unter Data_Json; Laufmetadaten sind in Summary.json verfügbar.
false
DebugObjectDump
Exportiert die finalen In-Memory-Berichtsobjekte als CLIXML nach Debug_ObjectDump zur Fehlerbehebung und zum Testen.