Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!
EntraFalcon — Uma ferramenta PowerShell leve para avaliar a postura de segurança de ambientes Microsoft Entra ID. Ela ajuda a identificar objetos privilegiados, atribuições arriscadas e possíveis configurações incorretas. | Kitploit
Uma ferramenta PowerShell leve para avaliar a postura de segurança de ambientes Microsoft Entra ID. Ela ajuda a identificar objetos privilegiados, atribuições arriscadas e possíveis configurações incorretas.
O EntraFalcon é uma ferramenta de avaliação baseada em PowerShell para pentesters, analistas de segurança e administradores de sistemas avaliarem a postura de segurança de um ambiente Microsoft Entra ID.
Projetado para facilidade de uso, o EntraFalcon roda no PowerShell 5.1 e 7, suporta Windows e Linux, e não requer módulos adicionais do PowerShell, instalações extras ou consentimento da API do Microsoft Graph.
A ferramenta ajuda a descobrir objetos privilegiados, atribuições potencialmente arriscadas e configurações incorretas de Acesso Condicional que muitas vezes são ignoradas, como:
Usuários com controle sobre grupos ou aplicativos de alto privilégio
Aplicativos empresariais externos ou internos com permissões excessivas (ex.: API do Microsoft Graph, funções do Azure)
Usuários com atribuições de função IAM do Azure diretamente em recursos
Contas privilegiadas sincronizadas do local (on-premises)
Usuários inativos ou usuários sem capacidade de MFA
Grupos desprotegidos usados em atribuições sensíveis (ex.: exclusões de Acesso Condicional, Proprietário de Assinatura ou membro elegível de um grupo privilegiado)
Os resultados são apresentados em relatórios HTML interativos para apoiar uma exploração e análise eficientes.
🚀 Recursos
Script PowerShell simples compatível com PowerShell 5.1 e 7. Funciona em Windows e Linux
Autenticação integrada com suporte a múltiplos métodos
Usa aplicativos Microsoft de primeira parte com escopos pré-consentidos para contornar os prompts de consentimento da API do Graph
Gera relatórios HTML navegáveis que suportam filtragem, ordenação, exportação de dados, etc.
Executa mais de 90 verificações automatizadas e resume os resultados em um Relatório de Descobertas de Segurança
Inclui verificações para configurações fracas do locatário e propriedades ou permissões de objetos arriscadas
Fornece classificações de gravidade, bem como descrições do problema, ameaças potenciais e orientações de remediação
Lista os objetos afetados e links diretos para seus relatórios detalhados para investigação adicional
Realiza pontuação básica de impacto, probabilidade e risco para destacar objetos de alto privilégio fracamente protegidos e ordenar os dados.
Exibe avisos para configurações arriscadas e privilégios elevados
Enumera objetos do Entra ID, incluindo:
Usuários (incluindo Usuários Agentes)
Grupos
Aplicativos Empresariais
Registros de Aplicativos
Identidades Gerenciadas
Identidades de agentes
Principais de blueprint de identidade de agentes
Blueprints de identidade de agentes
Atribuições de PIM:
PIM para Funções do Entra
PIM para Grupos
PIM para Funções do Azure
Atribuições de Funções do Entra
Atribuições de Funções do Azure
Atribuições de RBAC do Intune
Pacotes de Acesso
Catálogos de Gerenciamento de Direitos
RBAC de Catálogo
Políticas de Acesso Condicional
Unidades Administrativas
Configurações de PIM:
PIM para Funções do Entra
PIM para Grupos (somente autenticação BroCi)
✅ Requisitos
Tipo
Permissão
Obrigatório
Impacto se ausente
Função do Entra ID
Leitor Global
Sim
Não é possível executar os scripts
Função do Azure
Leitor: Em cada Grupo de Gerenciamento ou Assinatura
Não
Não é possível avaliar atribuições de IAM do Azure
Além disso, você deve ser capaz de autenticar na API do Microsoft Graph e, opcionalmente, na API ARM do Azure a partir do dispositivo onde executa a ferramenta.
Garanta que as Políticas de Acesso Condicional não bloqueiem sua autenticação.
Nota: Pode ser necessário alterar temporariamente a política de execução do PowerShell para executar o script.
Faça isso apenas para scripts confiáveis!```
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process
Executar o EntraFalcon
O EntraFalcon inclui suporte integrado para autenticação do Entra ID. Use -AuthFlow para selecionar o fluxo de autenticação.
Para avaliações normais, use um dos fluxos de cobertura completa:
Fluxo Recomendado
Melhor Para
Plataforma
Cobertura
BroCi(padrão)
Execuções interativas no Windows
Windows
Completa
BroCiManualCode
Autenticação em outro navegador
Windows, Linux, macOS
Completa
BroCiToken
Token de atualização existente do Portal Azure
Windows, Linux, macOS
Completa
ServicePrincipal
Automação / CI
Windows, Linux, macOS
Completa
O BroCi usa um único login interativo. O BroCiToken e o ServicePrincipal não usam nenhum. Os fluxos de usuário alternativos podem exigir vários logins interativos, pois tokens de recursos separados são solicitados.
Fluxos de Autenticação Alternativos
Devido à falta de aplicativos de primeira parte pré-consentidos, os fluxos alternativos não conseguem realizar a enumeração completa (PIM for Groups, Access Packages, Catalogs). Portanto, eles permanecem atualmente apenas como opções alternativas.
Fluxo
Usar Somente Quando
Plataforma
Limitações
AuthCode
Compatibilidade legada for necessária
Windows
Cobertura parcial. Sem relatório autônomo de PIM for Groups, Access Packages ou Catalogs.
DeviceCode
A autenticação baseada em navegador não for possível
Windows, Linux, macOS
Cobertura parcial. Sem relatório autônomo de PIM for Groups, Access Packages ou Catalogs. Algumas verificações de Security Findings são executadas com profundidade reduzida.
ManualCode
A autenticação deve ser concluída por meio de uma sessão de navegador separada
Windows, Linux, macOS
Cobertura parcial. Sem relatório autônomo de PIM for Groups, Access Packages ou Catalogs.
Recomendado: Fluxo BroCi (padrão / somente Windows)
O BroCi usa aplicativos de primeira parte alternativos e requer apenas um único login interativo.
É útil quando o cliente Azure Active Directory PowerShell exige atribuição e deve ser evitado.```powershell
.\run_EntraFalcon.ps1
root@kitploit:~
Seleção explícita de BroCi:```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCi
Recomendado: BroCi + Fluxo de Código Manual```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCiManualCode
root@kitploit:~
1. O script copia o URL de autenticação para a área de transferência.
2. Cole o URL em um navegador (opcionalmente em outro dispositivo para suporte a SSO).
3. Abra as ferramentas de desenvolvedor do navegador e, na aba Rede, ative `Preserve log`.
4. Conclua a autenticação.
5. Pesquise no log de rede por `code=1.` e copie o URL da solicitação que contém o código para a área de transferência.
6. Pressione Enter para continuar; o script lê o código da área de transferência e conclui a obtenção do token.
#### Recomendado: BroCi com Token
Se um token de atualização válido do Portal do Azure já estiver disponível (cliente c44b4083-3bb0-49c1-b47d-974e53cbdf3c), ele pode ser usado diretamente.
Exemplo: Obtendo o token de atualização do navegador
1. Abra as ferramentas de desenvolvedor do navegador e, na aba Rede, ative Preserve log.
2. Autentique-se em https://entra.microsoft.com.
3. Pesquise no log de rede por `brk_client_id=c44b4083-3bb0-49c1-b47d-974e53cbdf3c` e extraia o token de atualização da resposta.```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCiToken -BroCiToken "1.XXXXXXXXXXX"
Recomendado: Service Principal
Autentica como uma aplicação registada utilizando a concessão de credenciais de cliente OAuth2 — não é necessária interação do utilizador.
Útil para execuções automatizadas repetidas.
Requer um registo de aplicação Entra personalizado com permissões da Graph API do tipo Application (ver abaixo).
Com segredo de cliente:```powershell
.\run_EntraFalcon.ps1 -AuthFlow ServicePrincipal -Tenant "mysecuretenant.ch" -SPClientId "" -SPClientSecret ""
Para uma chave privada encriptada, adicione `-SPPrivateKeyPemPassword (Read-Host -Prompt "Private key password" -AsSecureString)`.
##### Permissões Necessárias do Registo da Aplicação
Conceda as seguintes permissões de **Aplicação** (não Delegadas) no registo da aplicação e administre o consentimento para elas:
| Permissão | Tipo |
|---|---|
| `AdministrativeUnit.Read.All` | Aplicação |
| `AgentIdentity.Read.All` | Aplicação |
| `AgentIdentityBlueprint.Read.All` | Aplicação |
| `AgentIdentityBlueprintPrincipal.Read.All` | Aplicação |
| `Application.Read.All` | Aplicação |
| `AuditLog.Read.All` | Aplicação |
| `Device.Read.All` | Aplicação |
| `EntitlementManagement.Read.All` | Aplicação |
| `Group.Read.All` | Aplicação |
| `Organization.Read.All` | Aplicação |
| `Policy.Read.All` | Aplicação |
| `PrivilegedAccess.Read.AzureADGroup` | Aplicação |
| `RoleManagement.Read.Directory` | Aplicação |
| `RoleManagementPolicy.Read.AzureADGroup` | Aplicação |
| `User.Read.All` | Aplicação |
| `DeviceManagementRBAC.Read.All` | Aplicação |
Além disso, atribua a função **Leitor do Azure** no grupo de gestão raiz (ou em cada subscrição relevante) e, opcionalmente, a função **Leitor Global** ao principal de serviço no Entra ID (necessária para o estado de MFA por utilizador).
#### Alternativa: Fluxo de Código de Autorização (apenas Windows)```powershell
.\run_EntraFalcon.ps1 -AuthFlow AuthCode
Fallback: Fluxo de Código de Dispositivo
É frequentemente restringido pelo Acesso Condicional em ambientes endurecidos.
Com DeviceCode, duas verificações de Descobertas de Segurança são executadas com profundidade reduzida (CAP-004 e CAP-005).```powershell
.\run_EntraFalcon.ps1 -AuthFlow DeviceCode
root@kitploit:~
#### Fallback: Fluxo de Código de Autorização + Código Manual```powershell
.\run_EntraFalcon.ps1 -AuthFlow ManualCode
O script copia o URL de autenticação para a área de transferência.
Cole o URL em um navegador (opcionalmente em outro dispositivo para suporte a SSO).
Conclua a autenticação.
Copie o URL de redirecionamento final da barra de endereços do navegador (contendo o código de autorização) para a área de transferência.
Pressione Enter para continuar; o script lê o código da área de transferência e conclui a aquisição do token.
Outros Parâmetros
Incluir Aplicativos Empresariais de Propriedade da Microsoft
Por padrão, os aplicativos empresariais oficiais da Microsoft são excluídos da avaliação para reduzir ruído. Para incluí-los na enumeração e análise, use o switch -IncludeMsApps:```powershell
.\run_EntraFalcon.ps1 -IncludeMsApps
root@kitploit:~
#### Ignorar Avaliação de PIM para Grupos
Use o parâmetro `-SkipPimForGroups` para ignorar a pré-coleta e o enriquecimento de PIM para Grupos.
Isso também ignora o relatório autônomo de configurações de `PIM for Groups`.```powershell
.\run_EntraFalcon.ps1 -SkipPimForGroups
Outros Parâmetros Opcionais
Parâmetro
Descrição
Valor Padrão
UserAgent
User agent usado para as solicitações ao endpoint de token e chamadas de API.
EntraFalcon
DisableCAE
Desativa a solicitação de tokens de Avaliação de Acesso Contínuo (CAE).
false
Tenant
Especifica o tenant (ID ou domínio) para autenticar. Útil ao avaliar um tenant diferente do tenant doméstico da conta.
Tenant doméstico da conta
OutputFolder
Pasta de saída onde os relatórios são armazenados.
Results_%TenantName%_YYYYMMDD_HHMM
LimitResults
Limita o número de grupos e usuários no relatório (após ordenação por risco). Útil para tenants grandes.
-
LogLevel
Controla o nível de detalhes do log da CLI em tempo de execução. Valores suportados: Off (padrão), Verbose, Debug, Trace.
Off
ApiTop
Define o número máximo de objetos retornados da API. Valores menores reduzem o risco de timeout (HTTP 504), mas aumentam o número de solicitações.
999 (Intervalo válido: 5–999)
AuthFlow
Seletor de fluxo de autenticação preferido. Valores: BroCi (padrão), AuthCode, DeviceCode, ManualCode, BroCiManualCode, BroCiToken, ServicePrincipal.
BroCi
BroCiToken
Refresh token do Portal do Azure para AuthFlow BroCiToken.
-
SPClientId
ID do aplicativo (cliente) da entidade de serviço. Obrigatório para -AuthFlow ServicePrincipal.
-
SPClientSecret
Segredo do cliente para a entidade de serviço. Usado com -AuthFlow ServicePrincipal.
📊 Alguns Exemplos de Relatórios
Relatório de Descobertas de Segurança
Usuários
Usuários (Seção de Detalhes)
Funções do Entra ID
Funções do Azure
Aplicativo Empresarial (Seção de Detalhes)
Políticas de Acesso Condicional
Políticas de Acesso Condicional (Seção de Detalhes)
Configurações de Função do PIM (Entra)
Identidades de Agente
Resumo da Enumeração
📑 Relatório HTML
Geral
Clique no botão ⚙️ Colunas para mostrar ou ocultar colunas específicas.
Clique em 💾 Exportar para baixar CSV/JSON ou copiar CSV/TSV/JSON dos dados atualmente visíveis.
Clique em 👁 Compartilhar Visualização para copiar filtros, ordenação e seleção de colunas como um link compartilhável.
Clique em 🧰 Visualizações Predefinidas para aplicar filtros e seleções de colunas pré-configurados.
Clique em 🔄 Redefinir Visualização para redefinir a visualização para o padrão.
Clique nos nomes dos objetos para saltar para informações detalhadas, mesmo em outros relatórios.
Ao usar a navegação interna, pressione o botão voltar do navegador para retornar.
Alguns cabeçalhos de coluna da tabela exibem texto de ajuda ao passar o mouse.
Ordene os dados clicando em um cabeçalho de tabela.
Alt+clique em um cabeçalho de coluna principal da tabela para ocultar rapidamente essa coluna.
Alt+clique em uma linha de conteúdo da tabela principal para ocultá-la temporariamente. Use o chip de linhas ocultas ou Redefinir Visualização para mostrar as linhas ocultas novamente.
Filtragem
Se nenhum operador for especificado, a filtragem usa contém por padrão.
Use = para correspondência exata.
Use ^ para começa com (ex.: ^Mallory).
Use $ para termina com (ex.: $domain.ch).
Operadores de comparação como >, <, >=, <= são suportados (somente valores numéricos).
Os filtros podem ser negados começando com ! (exceto para comparações numéricas). Exemplos: !Mallory, !=Mallory, !^Mallory ou !$domain.ch.
Use =empty para corresponder a células vazias, ou !=empty para corresponder a células não vazias.
Use || para corresponder a qualquer um de vários valores na mesma coluna (ex.: Admin || Guest).
Use && para exigir múltiplas correspondências na mesma coluna (ex.: !adm && !svc && !sql).
Para aplicar lógica OR entre colunas, use or_, group1_, group2_... diretamente em um campo de filtro. Exemplos: na coluna 1: or_>1, na coluna 2: or_!Mallory
Nota: A coluna DisplayName também inclui o ID do objeto (invisível), portanto também é possível filtrar por ID.
Controles usando Parâmetros GET
Filtragem: Aplique filtros usando nomes de campos como parâmetros HTTP GET, ex.: ?EntraRoles=>1&Enabled=true.
Para aplicar lógica OR entre colunas, use o prefixo or_ ou group1_ (ex.: ?or_EntraRoles=>0&or_GrpMem=>0).
Seleção de Colunas: Escolha quais colunas exibir usando o parâmetro columns. Exemplo: ?columns=DisplayName,Owner.
Ordenação: Ordene os dados usando os parâmetros sort e sortDir. Exemplo: ?sort=Impact&sortDir=desc ou ?sort=OwnerCount&sortDir=asc.
Detalhes do Objeto: Salte diretamente para um objeto específico no relatório usando uma âncora (#) e o ID do objeto, ex.: #%ObjectID%.
Classificação
Impacto: Representa a quantidade ou gravidade das permissões que o objeto possui.
Probabilidade: Representa o quão facilmente o objeto pode ser influenciado ou o quão bem ele está protegido.
Esta pontuação é destinada como uma avaliação básica para ajudar a ordenar e priorizar entradas na tabela.
As pontuações de risco não são diretamente comparáveis entre diferentes tipos de objetos ou relatórios.
Não se destina a substituir uma avaliação de risco completa.
🔧Nos Bastidores
Categorização de Funções
As funções do Entra ID e do Azure são categorizadas aproximadamente em diferentes níveis de camada. Essa categorização influencia as pontuações de impacto dos objetos atribuídos a essas funções.
O objetivo é atribuir uma pontuação de impacto maior a usuários com funções mais poderosas (ex.: Administrador Global) em comparação com usuários com funções menos críticas (ex.: Leitor Global), mesmo que ambas sejam consideradas funções privilegiadas pela Microsoft.
Nota:
Para funções do Azure, essa categorização é menos precisa, pois o impacto real depende fortemente do escopo da atribuição da função. Por exemplo, uma função de Proprietário em uma única máquina virtual tem significativamente menos impacto do que quando a mesma função é aplicada a uma assinatura inteira. Também pode ser uma assinatura de teste sem nenhum recurso.
Funções do Entra ID
Nome da Função
Nível de Camada
GUID
Administrador Global
0
62e90394-69f5-4237-9190-012177145e10
Suporte Tier2 do Parceiro
0
e00e864a-17c5-4a4b-9c06-f5b95a8d5bd8
Administrador de Autenticação Privilegiada
0
7be44c8a-adaf-4e2a-84d6-ab2649e08a13
Administrador de Funções Privilegiadas
0
e8611ab8-c189-46e8-94e1-60213ab1f814
Administrador de Nomes de Domínio
0
8329153b-31d0-4727-b945-745eb3bc5f31
Administrador de Provedor de Identidade Externo
0
be2f45a1-457d-42af-a067-6ec1fa63bc45
Administrador de Identidade Híbrida
0
8ac3fc64-6eca-42ea-9e69-59f4c7b60eb2
Administrador de Aplicativos
0
9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3
Administrador de Aplicativos na Nuvem
0
158c047a-c907-4556-b7ef-446551a6b5f7
Administrador de Segurança
0
194ae4cb-b126-40b2-bd5b-6091b380977d
Administrador de ID do Agente
1
db506228-d27e-4b7d-95e5-295956d6615f
Administrador de IA
1
d2562ede-74db-457e-a7b6-544e236ebb61
Administrador de Acesso Condicional
1
b1be1c3e-b65d-4f19-8427-f6fa0d97feb9
Administrador de Autenticação
1
c4e39bd9-1100-46d3-8c65-fb160da0071f
Administrador do Azure DevOps
1
e3973bdf-4987-49ae-837a-ba8e231c7286
Gravadores de Diretório
1
9360feb5-f418-4baa-8175-e2a00bac4301
Respondente de Identidade SOC do Entra
1
58f930cc-fcf4-4152-852c-1d7dbf502139
Administrador do Exchange
1
29232cdf-9323-42fd-ade2-1d097af3e4de
Administrador de Grupos
1
fdd7a751-b60b-444a-984c-02652fe8fa1c
Administrador de Helpdesk
1
729827e3-9c14-49f7-bb1b-9608f156bbb8
Administrador de Governança de Identidade
1
45d8d3c5-c802-45c6-b32a-1d70b5e1e86e
Administrador do Intune
1
3a2c62db-5318-420d-8d74-23affee5d9d5
Funções do Azure
Nome da Função
Nível de Camada
GUID
Proprietário
0
8e3af657-a8ff-443c-a75c-2fe8c4bcb635
Administrador de Acesso do Usuário
0
18d7d88d-d35e-4fb5-a5c3-7773c20a72d9
Colaborador
0
b24988ac-6180-42a0-ab88-20f7382dd24c
Administrador de Controle de Acesso Baseado em Função
0
f58310d9-a9f6-439a-9e8d-f62e7b41a168
Administrador de Reservas
0
a8889054-8d42-49c9-bc1c-52486c10e7cd
Administrador de Segurança
1
fb1c8493-542b-48eb-b624-b4c8fea62acd
Colaborador de Máquina Virtual
1
9980e02c-c2be-4d73-94e8-173b1dc7cf3c
Administrador de Acesso a Dados de Máquina Virtual
1
66f75aeb-eabe-4b70-9f1e-c350c4c9ad04
Login de Administrador de Máquina Virtual
1
1c0163c0-47e6-4577-8991-ea5c82e286e4
Login de Administrador do Windows Admin Center
1
a6333a3e-0164-44c3-b281-7a577aff287f
Colaborador do Registro de Contêineres e Administrador de Configuração de Acesso a Dados
1
3bc748fc-213d-45c1-8d91-9da5725539b9
Administrador do Key Vault
1
00482a5a-887f-4fb3-b363-3b7fe8e74483
Administrador de Acesso a Dados do Key Vault
1
8b54135c-b56d-4d72-a534-26097cfdc8d8
Oficial de Segredos do Key Vault
1
b86a8fe4-44ce-4948-aee5-eccb2c155cd7
Usuário de Segredos do Key Vault
1
4633458b-17de-408a-b874-0445c86b69e6
Administrador RBAC do Serviço Kubernetes do Azure
1
3498e952-d568-435e-9b2c-8d77e338d7f7
Administrador de Cluster RBAC do Serviço Kubernetes do Azure
1
b1ff04bb-8a4e-4dc4-8eb5-8693973ce19b
Administrador Kubernetes do Azure Arc
1
dffb1e0c-446f-4dde-a09f-99eb5cc68b96
Administrador de Cluster Kubernetes do Azure Arc
1
8393591c-06b9-48a2-a542-1bd6b377f6a2
Colaborador de VM VMware do Azure Arc
1
b748a06d-6150-4f8a-aaa9-ce3940cd96cb
Colaborador de Conta de Armazenamento
1
17d1049b-9a84-46fb-8f53-869881c3d3ab
Categorização de Permissões de API
Certas permissões de API permitem que um aplicativo escale diretamente para privilégios de Administrador Global. Portanto, várias permissões de API são categorizadas em diferentes níveis de gravidade. Essa categorização influencia a pontuação de impacto dos aplicativos que possuem essas permissões atribuídas — seja como permissões de aplicativo ou permissões delegadas para usuários.
Aplicações Empresariais Microsoft de Primeira Parte
Por predefinição, as aplicações Microsoft são filtradas para simplificar a revisão das Aplicações Empresariais. Utilize o parâmetro -IncludeMsApps para as incluir. As aplicações dos seguintes inquilinos são tratadas como propriedade da Microsoft:
f8cdef31-a31e-4b4a-93e4-5f571e91255a
72f988bf-86f1-41af-91ab-2d7cd011db47
33e01921-4d64-4f8c-a055-5bdaffd5e33d
cdc5aeea-15c5-4db6-b079-fcadd2505dc2
Verificações Realizadas
A tabela seguinte resume aproximadamente as verificações realizadas, juntamente com o seu impacto na pontuação e se é apresentado um aviso.
Verificações Realizadas|Área|Verificação|Impacta a Pontuação|Aviso Exibido|
|-|-|-|-|
|Grupos|É um grupo M365 público|Sim|Sim|
|Grupos|É dinâmico / É dinâmico e consulta potencialmente perigosa|Sim|Sim|
|Grupos|Funções do Entra (Ativas e Elegíveis)|Sim|Sim|
|Grupos|Funções do Azure (Ativas e Elegíveis)|Sim|Sim|
|Grupos|Usado para AppRole|Sim|Sim|
|Grupos|SP interno/estrangeiro como Proprietário|Sim|Sim|
|Grupos|Em AU restrito|Sim|Sim|
|Grupos|Aninhado em grupo privilegiado|Sim|Sim|
|Grupos|Usado em CAP|Sim|Sim|
|Grupos|Tipo de Grupo|Sim|Não|
|Grupos|Segurança Habilitada|Sim|Não|
|Grupos|Membro Aninhado Ativo|Sim|Não|
|Grupos|Proprietários|Sim|Não|
|Grupos|Proprietários Aninhados|Sim|Não|
|Grupos|Convidado como Proprietário|Sim|Sim|
|Grupos|Sincronização On-Prem|Sim|Não|
|Grupos|Membros (transitivos)|Sim|Não|
|Grupos|Atribuível a Função|Sim|Não|
|Grupos|PIM para Grupos: Integrado|Não|Não|
|Grupos|PIM para Grupos: Membro elegível de grupo privilegiado|Sim|Sim|
|Grupos|PIM para Grupos: Proprietário elegível de grupo privilegiado|Sim|Sim|
|Grupos|PIM para Grupos: Grupo desprotegido aninhado em grupo protegido|Não|Sim|
|EnterpriseApp|Função do Entra|Sim|Sim|
|EnterpriseApp|Função do Azure|Sim|Sim|
|EnterpriseApp|Estrangeiro|Sim|Não|
|EnterpriseApp|Desabilitado pela Microsoft|Não|Sim|
|EnterpriseApp|Nome suspeito (caracteres semelhantes)|Sim|Sim|
|EnterpriseApp|Permissão de API (Aplicação)|Sim|Sim|
|EnterpriseApp|Permissão de API (Delegada)|Sim|Sim|
|EnterpriseApp|Credenciais|Sim|Sim|
|EnterpriseApp|Proprietários|Sim|Sim|
|EnterpriseApp|Propriedade sobre Registros de Aplicativos|Sim|Sim|
|EnterpriseApp|Propriedade de outros Service Principals|Sim|Sim|
|EnterpriseApp|AppLock|(Sim)|Não|
|EnterpriseApp|App possui AppRegistration|Sim|Sim|
|EnterpriseApp|Membro / proprietário de grupos|Sim|(Sim)|
|EnterpriseApp|AppRoles|Sim|Não|
|EnterpriseApp|Requisitos de AppRole|Sim|Não|
|EnterpriseApp|Inativo|Não|Não|
|EnterpriseApp|Último login bem-sucedido (dias)|Não|Não|
|AppRegistrations|Credenciais|Sim|Sim|
|AppRegistrations|App do Entra Connect com credenciais|Sim|Sim|
|AppRegistrations|App do Entra Connect com múltiplos certificados|Sim|Sim|
|AppRegistrations|AppRoles|Sim|Não|
|AppRegistrations|AppRedirectURL|Não|Não|
|AppRegistrations|AppLock|Sim|Não|
|AppRegistrations|Proprietários|Sim|Sim|
|AppRegistrations|(Cloud) App Admins com escopo|Não|Não|
|AppRegistrations|Privilégios do SP correspondente|Sim|Não|
|AppRegistrations|Público de login|Não|Não|
|ManagedIdentity|Proprietários|Sim|Sim|
|ManagedIdentity|Função do Entra|Sim|Sim|
|ManagedIdentity|Função do Azure|Sim|Sim|
|ManagedIdentity|API (App)|Sim|Sim|
|ManagedIdentity|Propriedade sobre Registros de Aplicativos|Sim|Sim|
|ManagedIdentity|Propriedade de outros Service Principals|Sim|Sim|
|ManagedIdentity|Membro / proprietário de grupos|Sim|(Sim)|
|Usuário|Funções do Entra (Ativas e Elegíveis)|Sim|Sim|
|Usuário|Funções do Azure (Ativas e Elegíveis)|Sim|Sim|
|Usuário|Associação a grupo privilegiado (Ativa e Elegível)|Sim|Sim|
|Usuário|Propriedade de grupo privilegiado (Ativa e Elegível)|Sim|Sim|
|Usuário|Usuário sincronizado do Entra Connect|Sim|Sim|
|Usuário|Usuário sincronizado do Entra Connect Cloud Sync|Sim|Sim|
|Usuário|Propriedade de AppRegistration|Sim|Sim|
|Usuário|Propriedade de EnterpriseApplication|Sim|Sim|
|Usuário|Nenhum fator MFA registrado|Sim|Sim|
|Usuário|É protegido|Sim|Não|
|Usuário|Inativo|Não|Não|
|Usuário|Membro / proprietário de grupos|Sim|(Sim)|
|Usuário|Sincronizado do on-prem|Sim|Não|
|AgentIdentity|Usuários de Agente Vinculados|Sim|Não|
|AgentIdentity|Origem de principal de blueprint estrangeiro|Sim|Sim|
|AgentIdentity|Permissão de API Efetiva (Aplicação)|Sim|Sim|
|AgentIdentity|Permissão de API Efetiva (Delegada)|Sim|Sim|
|AgentIdentity|Função do Entra|Sim|Sim|
|AgentIdentity|Função do Azure|Sim|Sim|
|AgentIdentity|Propriedade sobre Registros de Aplicativos|Sim|Sim|
|AgentIdentity|Propriedade de outros Service Principals|Sim|Sim|
|AgentIdentity|Membro / proprietário de grupos|Sim|(Sim)|
|AgentIdentityBlueprintPrincipal|Identidades de Agente Vinculadas|Sim|Não|
|AgentIdentityBlueprintPrincipal|Usuários de Agente Vinculados|Sim|Não|
|AgentIdentityBlueprintPrincipal|Permissão de API Configurada (Aplicação)|Não|Não|
|AgentIdentityBlueprintPrincipal|Permissão de API Configurada (Delegada)|Não|Não|
|AgentIdentityBlueprintPrincipal|Origem de blueprint pai estrangeiro|Sim|Não|
|AgentIdentityBlueprintPrincipal|Função do Entra|Não|Não|
|AgentIdentityBlueprintPrincipal|Função do Azure|Não|Não|
|AgentIdentityBlueprintPrincipal|Nome suspeito (caracteres semelhantes)|Sim|Sim|
|AgentIdentityBlueprint|Principais do blueprint|Sim|Não|
|AgentIdentityBlueprint|Identidades de Agente Vinculadas|Sim|Não|
|AgentIdentityBlueprint|Usuários de Agente Vinculados|Sim|Não|
|AgentIdentityBlueprint|Permissões de API herdáveis|Sim|Não|
|AgentIdentityBlueprint|Credenciais federadas|Sim|Não|
|AgentIdentityBlueprint|Segredos / certificados|Sim|Sim|
|AgentIdentityBlueprint|Proprietários / patrocinadores|Sim|(Sim)|
|AccessPackages|Funções do Entra concedidas|Sim|Não|
|AccessPackages|Funções do Azure concedidas|Sim|Não|
|AccessPackages|Grupos concedidos|Sim|Não|
|AccessPackages|Funções de aplicativo concedidas|Sim|Não|
|AccessPackages|Permissões de API concedidas (Aplicação)|Sim|Não|
|AccessPackages|Permissões de API concedidas (Delegada)|Sim|Não|
|AccessPackages|Acesso ao SharePoint concedido|Sim|Não|
|AccessPackages|Auto-solicitação ampla sem aprovação|Sim|Sim|
|AccessPackages|Acesso persistente sem expiração ou revisão de acesso|Não|Não|
|AccessPackages|Regras de atribuição automática perigosas|Sim|Sim|
|AccessPackages|Auto-solicitação por meio de alvos de grupo desprotegidos|Sim|Sim|
|AccessPackages|Atribuição ampla em nome de não-usuário sem aprovação|Sim|Não|
|AccessPackages|Atribuições de service principal|Sim|Não|
|Catálogos|Metadados do catálogo, estado e visibilidade externa|Não|Não|
|Catálogos|Recursos do catálogo|Não|Não|
|Catálogos|Recursos configuráveis em novos Access Packages|Sim|Não|
|Catálogos|Recursos e funções configurados em Access Packages existentes|Sim|Não|
|Catálogos|Recursos de catálogo não configurados|Sim|Não|
|Catálogos|Atribuições de RBAC do catálogo|Sim|Sim|
|CAP|Nenhuma política ou política mal configurada para autenticação legada|-|Sim|
|CAP|Nenhuma política ou política mal configurada para bloquear fluxo de código de dispositivo|-|Sim|
|CAP|Nenhuma política ou política mal configurada para limitar registros de informações de segurança|-|Sim|
|CAP|Nenhuma política ou política mal configurada para direcionar logins arriscados|-|Sim|
|CAP|Nenhuma política ou política mal configurada para direcionar risco de usuário|-|Sim|
|CAP|Nenhuma política ou política mal configurada que imponha MFA|-|Sim|
|CAP|Nenhuma política que imponha Força de Autenticação|-|Sim|
|CAP|Inclusão de funções que possuem atribuições com escopo|-|Sim|
|PIMSettings|AuthContext|-|Sim|
|PIMSettings|CAP vinculado ao AuthContext: Frequência de Login|-|Sim|
|PIMSettings|CAP vinculado ao AuthContext: MFA ou AuthStrength|-|Sim|
|PIMSettings|CAP vinculado ao AuthContext: Habilitado|-|Sim|
|PIMSettings|CAP vinculado ao AuthContext: Usuários/grupos/redes incluídos/excluídos|-|Sim|
|PIMSettings|CAP vinculado ao AuthContext: Condições|-|Sim|
|PIMSettings|MFA de Ativação|-|Não|
|PIMSettings|Justificativa ou ticket de ativação|-|Sim|
|PIMSettings|Duração da ativação|-|Sim|
|PIMSettings|Aprovação de ativação|-|Sim|
|PIMSettings|Expiração de atribuição elegível|-|Não|
|PIMSettings|Expiração de atribuição ativa|-|Sim|
|PIMSettings|MFA de atribuições ativas|-|Não|
|PIMSettings|Notificação de ativação de função|-|Não|
|PIMSettings|Notificação de atribuição de função (ativa)|-|Não|
|PIMSettings|Notificação de atribuição de função (elegível)|-|Não|
🛡️ Detecção
O EntraFalcon não é furtivo e pode ser detectado em ambientes onde a API do Microsoft Graph e a atividade de login do Azure são registradas e monitoradas.
Autenticação Padrão Utilizada
Quando uma enumeração completa é realizada com fluxos não-BroCi, a ferramenta normalmente inicia quatro logins interativos e um login não interativo. Dependendo do fluxo e do suporte do endpoint, um login interativo adicional pode ocorrer para endpoints de política de Security Findings.
ID do Aplicativo
Tipo
ID do Recurso
Finalidade
1b730954-1685-4b74-9bfd-dac224a7b894
Interativo
00000003-0000-0000-c000-000000000000
Recuperar dados do PIM para Grupos
04b07795-8ddb-461a-bbee-02f9e1bf7b46
Interativo
00000003-0000-0000-c000-000000000000
Recuperar dados gerais de objetos do locatário
51f81489-12ee-4a9e-aaae-a2591f45987d
Interativo
00000003-0000-0000-c000-000000000000
Recuperar PIM para funções do Entra / Azure
80ccca67-54bd-44ab-8625-4b79c4dc7775
Interativo
00000003-0000-0000-c000-000000000000
Recuperar contexto de política de Security Findings
04b07795-8ddb-461a-bbee-02f9e1bf7b46
Não Interativo
797f4846-ba00-4fd7-ba43-dac1f8f63013
Recuperar dados de atribuição de função IAM do Azure
Autenticação BroCi Utilizada
Quando a autenticação BroCi é usada, apenas um login interativo ocorre.
ID do Aplicativo
Tipo
ID do Recurso
Finalidade
c44b4083-3bb0-49c1-b47d-974e53cbdf3c
Interativo
00000003-0000-0000-c000-000000000000
Autenticação inicial para usar o token de atualização para BroCi
50aaa389-5a33-4f1a-91d7-2c45ecd8dac8
Não Interativo
00000003-0000-0000-c000-000000000000
Recuperar dados do PIM para Grupos
50aaa389-5a33-4f1a-91d7-2c45ecd8dac8
Não Interativo
01fc33a7-78ba-4d2f-a4b7-768e336e890e
Recuperar dados do PIM para Grupos
74658136-14ec-4630-ad9b-26e160ff0fc6
Não Interativo
00000003-0000-0000-c000-000000000000
Recuperar dados gerais de objetos do locatário
74658136-14ec-4630-ad9b-26e160ff0fc6
Não Interativo
797f4846-ba00-4fd7-ba43-dac1f8f63013
Recuperar dados de atribuição de função IAM do Azure
Quando o BroCi está habilitado, o EntraFalcon também consulta api.azrbac.mspim.azure.com para PIM para Grupos.
Detalhes
Para a coleta de dados, a ferramenta envia múltiplas solicitações à API do Microsoft Graph e, opcionalmente, à API ARM do Azure—uma ou mais por objeto. Quando possível, ela aproveita o endpoint de Lote do Graph para reduzir o número de solicitações individuais e melhorar a eficiência.
Logins interativos usam o User-Agent do navegador. Todos os logins não interativos e solicitações de API (Graph e ARM) usam EntraFalcon como User-Agent, a menos que alterado com o parâmetro -UserAgent.
Para detectar o uso do EntraFalcon, as equipes de blue team podem monitorar os IDs de aplicativo listados nos logs de login, procurar volumes incomuns de tráfego da API do Graph ou analisar o comportamento de atualização de token e solicitações em lote.
🕳️ Limitações Conhecidas
RBAC do M365: Não avaliado
RBAC do Defender for Endpoint: Não avaliado
Cobertura de usuários do Conditional Access: A cobertura efetiva de usuários e -ExportCapUncoveredUsers são cálculos de melhor esforço baseados em usuários enumerados, membros de grupos, atribuições de funções e categorias de usuários externos resolvíveis. Seletores de usuários externos são resolvidos apenas para usuários convidados do locatário que correspondem a b2bCollaborationGuest. Outros tipos de usuários externos ou usuários externos com locatários externos especificados podem tornar os valores de cobertura aproximados. Caminhos elegíveis do PIM são relatados como cobertura potencial e não são contados como atualmente cobertos. A exportação CSV é limitada a políticas habilitadas e usuários habilitados.
Ambiente de Nuvem: As plataformas de nuvem evoluem rapidamente. Como resultado, algumas avaliações ou detecções podem se tornar desatualizadas ou imprecisas ao longo do tempo. Além disso, os locatários estão se tornando cada vez mais complexos, e configurações específicas ou combinações de configurações podem levar a resultados imprecisos. Embora nos esforcemos para manter o EntraFalcon atualizado, é sempre recomendado validar os achados de forma independente e não confiar apenas na ferramenta para decisões críticas.
Relatórios HTML: Os relatórios HTML gerados não implementam mecanismos de proteção contra cross-site scripting (XSS).
📦 Ferramentas Externas Integradas
Os seguintes submódulos foram bifurcados e integrados ao EntraFalcon para suportar autenticação, interação com o Microsoft Graph e gráficos de relatórios:
Caminho para um arquivo de certificado PFX/P12 para autenticação da entidade de serviço.
-
SPCertificatePassword
Senha (SecureString) para o certificado PFX especificado por -SPCertificatePath.
-
SPCertificatePemPath
Caminho para um arquivo de certificado PEM. Usado em conjunto com -SPPrivateKeyPemPath.
-
SPPrivateKeyPemPath
Caminho para o arquivo de chave privada PEM correspondente a -SPCertificatePemPath.
-
SPPrivateKeyPemPassword
Senha (SecureString) para a chave privada PEM especificada por -SPPrivateKeyPemPath.
-
Csv
Habilita a escrita de arquivos de relatório CSV além dos arquivos de relatório TXT/HTML.
false
ExportCapUncoveredUsers
Para cada política de Acesso Condicional habilitada com direcionamento de usuários, exporta um CSV listando usuários não cobertos por essa política. Os arquivos são gravados em uma subpasta ConditionalAccessPolicies_UncoveredUsers no diretório de saída.
false
ExportFindingsJson
Exporta todas as Descobertas de Segurança como JSON ao final da execução.
false
ExportDataJson
Exporta relatórios enriquecidos e conjuntos de dados de suporte como arquivos de dados JSON brutos em Data_Json; os metadados da execução estão disponíveis em Summary.json.
false
DebugObjectDump
Exporta os objetos de relatório finais em memória como CLIXML para Debug_ObjectDump para solução de problemas e testes.
false
Administrador de Conhecimento
1
b5a8dcf3-09d5-43a9-a639-8e29ef291470
Gerente de Conhecimento
1
744ec460-397e-42ad-a462-8b3f9747a02c
Administrador de Fluxos de Trabalho de Ciclo de Vida
1
59d46f88-662b-457b-bceb-5c3809e5908f
Contas de Sincronização de Diretório
1
d29b2b05-8046-44ba-8758-1e26182fcf32
Conta de Sincronização de Diretório Local
1
a92aed5d-d78a-4d16-b381-09adb37eb3b0
Suporte Tier1 do Parceiro
1
4ba39ca4-527c-499a-b93d-d9b492c50246
Administrador de Senhas
1
966707d0-3269-4727-9be2-8c3a10f19b9d
Administrador do SharePoint
1
f28a1f50-f6e7-4571-818b-6a12f2af6b6c
Administrador do Teams
1
69091246-20e8-4a56-aa4d-066075b2a7a8
Administrador de Usuários
1
fe930be7-5e62-47db-91af-98c3a49a38b1
Administrador do Windows 365
1
11451d60-acb2-45eb-a7d6-43d0f0125c13
Administrador do Yammer
1
810a2642-a034-447f-a5e8-41beaa378541
Administrador de Políticas de Autenticação
2
0526716b-113d-4c15-b2c8-68e3c22b9f80
Administrador Local de Dispositivos Ingressados no Azure AD