
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.

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.
Projetada para facilidade de uso, a EntraFalcon é executada no PowerShell 5.1 e 7, suporta Windows e Linux, e não requer módulos PowerShell adicionais, 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 passam despercebidas, tais como:
Os resultados são apresentados em relatórios HTML interativos para apoiar uma exploração e análise eficientes.
| Tipo | Permissão | Obrigatório | Impacto se em falta |
|---|---|---|---|
| Função Entra ID | Leitor Global | Sim | Não é possível executar os scripts |
| Função Azure | Leitor: Em cada Grupo de Gestão ou Subscrição | Não | Não é possível avaliar atribuições IAM do Azure |
Além disso, deve ser capaz de autenticar na API do Microsoft Graph e, opcionalmente, na API Azure ARM a partir do dispositivo onde executa a ferramenta. Certifique-se de que as Políticas de Acesso Condicional não bloqueiam a sua autenticação.
Para começar, clone o repositório e navegue até ao diretório do projeto:```powershell git clone https://github.com/CompassSecurity/EntraFalcon cd EntraFalcon
Nota: Talvez seja 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
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 total:
| Fluxo Recomendado | Melhor Para | Plataforma | Cobertura |
|---|---|---|---|
BroCi (padrão) | Execuções interativas no Windows | Windows | Total |
BroCiManualCode | Autenticação em outro navegador | Windows, Linux, macOS | Total |
BroCiToken | Token de atualização existente do Portal do Azure | Windows, Linux, macOS | Total |
ServicePrincipal | Automação / CI | Windows, Linux, macOS | Total |
BroCi usa um login interativo. BroCiToken e ServicePrincipal não usam nenhum. Os fluxos de usuário de fallback podem exigir múltiplos logins interativos porque tokens de recursos separados são solicitados.
Devido à falta de aplicativos primários pré-consentidos, os fluxos de fallback não podem realizar a enumeração completa (PIM for Groups, Access Packages, Catalogs). Portanto, atualmente permanecem apenas como opções de fallback.
| Fluxo | Use Apenas Quando | Plataforma | Limitações |
|---|---|---|---|
AuthCode | A compatibilidade legada é 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 é 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 através 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. |
O BroCi usa aplicativos primários alternativos e requer apenas um login interativo.
É útil quando o cliente Azure Active Directory PowerShell requer atribuição e deve ser evitado.```powershell
.\run_EntraFalcon.ps1
Seleção explícita de BroCi:```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCi
.\run_EntraFalcon.ps1 -AuthFlow BroCiManualCode
1. O script copia a URL de autenticação para a área de transferência.
2. Cole a URL em um navegador (opcionalmente em outro dispositivo para suporte a SSO).
3. Abra as ferramentas de desenvolvedor do navegador e, na aba Network, ative `Preserve log`.
4. Conclua a autenticação.
5. Pesquise no log de rede por `code=1.` e copie a URL da requisição contendo 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 aquisição do token.