Communitygithub.com

auditoria-configuracao-azure-active-directory

Auditoria da configuração do Microsoft Entra ID (Azure Active Directory) para avaliar postura de segurança, políticas de autenticação, funções privilegiadas e riscos de identidade.

O que é auditoria-configuracao-azure-active-directory?

Esta skill realiza uma auditoria completa da configuração de identidade do Microsoft Entra ID (antigo Azure Active Directory) em um locatário Azure. Ela é projetada para avaliações de segurança, auditorias de compliance, onboarding pós-fusão, investigação de atividade suspeita e validação de políticas de acesso condicional. A skill utiliza o Microsoft Graph PowerShell SDK, a CLI do Azure (Az CLI) e o ScoutSuite para coletar informações sobre configuração do locatário, atribuições de funções privilegiadas, políticas de acesso condicional, contas obsoletas, usuários convidados e logs de entrada. O fluxo de trabalho abrange seis etapas principais: enumeração da configuração do locatário e padrões de segurança, auditoria de funções privilegiadas, revisão de políticas de acesso condicional, identificação de contas inativas e convidados, análise de logs de entrada para atividade arriscada e execução de uma avaliação automatizada com o ScoutSuite. A skill é compatível com as plataformas Microsoft Graph, PowerShell da Microsoft e Azure CLI, e produz relatórios estruturados que destacam descobertas críticas, como administradores globais permanentes, autenticação legada não bloqueada e usuários sem MFA registrado.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Auditoria da Configuração do Azure Active Directory

Quando Usar

  • Ao realizar uma avaliação de segurança da configuração de identidade de um locatário Azure
  • Quando auditorias de compliance exigem revisão de políticas de autenticação, aplicação de MFA e atribuições de funções
  • Ao integrar um novo locatário Azure após fusão ou aquisição
  • Ao investigar atividade de entrada suspeita ou contas comprometidas
  • Ao validar se as políticas de acesso condicional protegem adequadamente contra ataques baseados em identidade

Não use para auditoria de Active Directory local (use PingCastle ou BloodHound AD), para auditoria de RBAC no nível de recurso do Azure sem contexto de identidade, ou para detecção de ameaças em tempo real (use Microsoft Defender for Identity).

Pré-requisitos

  • Função de Leitor Global ou Leitor de Segurança no locatário do Microsoft Entra ID de destino
  • SDK do Microsoft Graph PowerShell instalado (Install-Module Microsoft.Graph)
  • CLI do Az autenticada no locatário de destino (az login --tenant TENANT_ID)
  • ScoutSuite configurado com o provedor Azure para avaliação automatizada
  • Acesso aos logs de auditoria e logs de entrada do Azure AD (exige Azure AD Premium P1/P2)

Fluxo de Trabalho

Etapa 1: Enumerar Configuração do Locatário e Padrões de Segurança

Avalie as configurações básicas de segurança de identidade do locatário, incluindo padrões de segurança e status de autenticação legada.

# Conectar ao Microsoft Graph
Connect-MgGraph -Scopes "Directory.Read.All","Policy.Read.All","AuditLog.Read.All"

# Obter detalhes do locatário
Get-MgOrganization | Select-Object DisplayName, Id, VerifiedDomains

# Verificar se os Padrões de Segurança estão ativados
Get-MgPolicyIdentitySecurityDefaultEnforcementPolicy | Select-Object IsEnabled

# Listar políticas de métodos de autenticação
Get-MgPolicyAuthenticationMethodPolicy | ConvertTo-Json -Depth 5

# Verificar status de autenticação legada via Acesso Condicional
Get-MgIdentityConditionalAccessPolicy | Where-Object {
    $_.Conditions.ClientAppTypes -contains "exchangeActiveSync" -or
    $_.Conditions.ClientAppTypes -contains "other"
} | Select-Object DisplayName, State

Etapa 2: Auditar Atribuições de Funções Privilegiadas

Revise as atribuições de funções de diretório para identificar usuários com privilégios excessivos, contas administrativas permanentes e configurações de função arriscadas.

# Listar todas as atribuições de Administrador Global
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 'Global Administrator'" \
  --query "value[0].id" -o tsv

# Listar todas as atribuições de funções privilegiadas usando a API Graph
az rest --method GET \
  --url "https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?\$expand=principal" \
  --query "value[*].{Role:roleDefinitionId, Principal:principal.displayName, PrincipalType:[email protected]}" \
  -o table

# Verificar usuários com múltiplas funções de administrador
az ad user list --query "[].{UPN:userPrincipalName, DisplayName:displayName}" -o table

# Listar service principals com atribuições de funções de administrador
az rest --method GET \
  --url "https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?\$filter=principalOrganizationId eq 'TENANT_ID'" \
  -o json

Etapa 3: Revisar Políticas de Acesso Condicional

Audite as políticas de acesso condicional em busca de lacunas de cobertura, especialmente em relação à aplicação de MFA, conformidade de dispositivos e restrições baseadas em localização.

# Listar todas as políticas de Acesso Condicional
Get-MgIdentityConditionalAccessPolicy | Select-Object DisplayName, State, @{
    N='GrantControls'; E={$_.GrantControls.BuiltInControls -join ', '}
} | Format-Table -AutoSize

# Identificar políticas no modo somente relatório (não aplicadas)
Get-MgIdentityConditionalAccessPolicy | Where-Object {$_.State -eq "enabledForReportingButNotEnforced"} |
    Select-Object DisplayName

# Verificar cobertura de aplicação de MFA
Get-MgIdentityConditionalAccessPolicy | Where-Object {
    $_.GrantControls.BuiltInControls -contains "mfa"
} | Select-Object DisplayName, State, @{
    N='Users'; E={$_.Conditions.Users.IncludeUsers -join ', '}
}

# Encontrar políticas que excluem grupos (possível bypass)
Get-MgIdentityConditionalAccessPolicy | Where-Object {
    $_.Conditions.Users.ExcludeGroups.Count -gt 0
} | Select-Object DisplayName, @{
    N='ExcludedGroups'; E={$_.Conditions.Users.ExcludeGroups -join ', '}
}

Etapa 4: Identificar Contas Obsoletas e Usuários Convidados

Encontre contas que não realizaram login recentemente, contas desabilitadas com atribuições de funções ativas e configurações arriscadas de usuários convidados.

# Encontrar usuários que não fizeram login nos últimos 90+ dias
az ad user list --query "[?signInActivity.lastSignInDateTime < '2025-11-25T00:00:00Z'].{UPN:userPrincipalName, LastSignIn:signInActivity.lastSignInDateTime, Enabled:accountEnabled}" -o table

# Listar todos os usuários convidados
az ad user list --filter "userType eq 'Guest'" \
  --query "[].{UPN:userPrincipalName, DisplayName:displayName, CreatedDate:createdDateTime}" \
  -o table

# Encontrar usuários convidados com funções privilegiadas
az rest --method GET \
  --url "https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?\$expand=principal" \
  --query "value[?principal.userType=='Guest'].{Role:roleDefinitionId,Guest:principal.userPrincipalName}" \
  -o table

# Verificar contas com MFA desabilitado
az rest --method GET \
  --url "https://graph.microsoft.com/v1.0/reports/authenticationMethods/userRegistrationDetails" \
  --query "value[?!isMfaRegistered].{UPN:userPrincipalName,MfaRegistered:isMfaRegistered}" \
  -o table

Etapa 5: Analisar Logs de Entrada para Atividade Arriscada

Revise os logs de entrada para identificar padrões de autenticação anômalos, desafios de MFA com falha e detecções de entrada arriscadas.

# Obter entradas arriscadas dos últimos 7 dias
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[*].{User:userPrincipalName,Risk:riskLevelDuringSignIn,IP:ipAddress,App:appDisplayName,Status:status.errorCode}" \
  -o table

# Obter entradas de locais desconhecidos
az rest --method GET \
  --url "https://graph.microsoft.com/v1.0/auditLogs/signIns?\$filter=riskEventTypes_v2/any(r:r eq 'unfamiliarFeatures')" \
  --query "value[*].{User:userPrincipalName,Location:location.city,IP:ipAddress}" \
  -o table

# Verificar entradas de autenticação legada
az rest --method GET \
  --url "https://graph.microsoft.com/v1.0/auditLogs/signIns?\$filter=clientAppUsed ne 'Browser' and clientAppUsed ne 'Mobile Apps and Desktop clients'" \
  --query "value[*].{User:userPrincipalName,ClientApp:clientAppUsed,Status:status.errorCode}" \
  -o table

Etapa 6: Executar Avaliação Automatizada com ScoutSuite

Execute o ScoutSuite para verificações automatizadas abrangentes em toda a configuração do locatário Azure.

# Executar ScoutSuite contra o Azure
python3 -m ScoutSuite azure --cli \
  --report-dir ./scoutsuite-azure-report \
  --all-subscriptions

# Revisar o relatório HTML gerado
open ./scoutsuite-azure-report/azure-report.html

Conceitos-chave

TermoDefinição
Microsoft Entra IDServiço de gerenciamento de identidade e acesso em nuvem da Microsoft, anteriormente Azure Active Directory, que fornece autenticação e autorização
Acesso CondicionalMecanismo de políticas que avalia sinais (usuário, dispositivo, localização, risco) para impor controles de acesso como MFA, conformidade de dispositivo ou bloquear acesso
Padrões de SegurançaConfigurações básicas de proteção de identidade da Microsoft que impõem registro de MFA, bloqueiam autenticação legada e protegem ações privilegiadas
Gerenciamento de Identidades PrivilegiadasRecurso do Azure AD Premium P2 que permite acesso privilegiado just-in-time com fluxos de aprovação e ativação de função com limite de tempo
Autenticação LegadaProtocolos de autenticação mais antigos (POP3, IMAP, SMTP, ActiveSync) que não suportam MFA e são comumente explorados em ataques de credenciais
Entrada ArriscadaDetecção de anomalias de entrada pelo Microsoft Entra Identity Protection, incluindo viagens impossíveis, locais desconhecidos e IPs associados a malware

Ferramentas e Sistemas

  • Microsoft Graph API: Interface programática principal para consultar configuração, políticas, funções e logs de auditoria do Entra ID
  • Microsoft Graph PowerShell SDK: Módulo PowerShell para gerenciamento do Entra ID e tarefas de auditoria de segurança
  • ScoutSuite: Ferramenta de auditoria multicloud com suporte ao provedor Azure para verificações de IAM, armazenamento, rede e identidade
  • AzureADRecon: Ferramenta comunitária para reconhecimento abrangente do Azure AD e geração de relatórios de avaliação de segurança
  • Microsoft Defender for Identity: Solução de segurança baseada em nuvem para detectar ameaças baseadas em identidade e credenciais comprometidas

Cenários Comuns

Cenário: Avaliação de Segurança de Locatário Azure Pós-aquisição

Contexto: Após adquirir uma empresa, a equipe de segurança precisa avaliar a postura de identidade do locatário Azure antes de integrá-lo ao Entra ID corporativo.

Abordagem:

  1. Enumerar todos os Administradores Globais e verificar contas pessoais em funções de administrador
  2. Revisar políticas de acesso condicional para verificar se o MFA é aplicado para todos os usuários, não apenas para administradores
  3. Identificar usuários convidados com acesso privilegiado que podem indicar excesso de permissões de fornecedores terceiros
  4. Verificar contas obsoletas (sem login por 90+ dias) que podem ser alvos de ataques de credenciais
  5. Revisar logs de entrada para uso de autenticação legada que burla o MFA
  6. Verificar se os Padrões de Segurança ou políticas de CA equivalentes bloqueiam protocolos de autenticação legada
  7. Produzir um relatório de risco com etapas de remediação priorizadas antes da integração do locatário

Armadilhas: O Azure AD Premium P2 é necessário para detecções de entrada arriscada e PIM. Se o locatário adquirido usar uma camada de licença inferior, muitos recursos de proteção de identidade ficarão indisponíveis. Usuários convidados de locatários parceiros podem ter acesso implícito por meio de grupos dinâmicos que não são visíveis em consultas padrão de atribuição de funções.

Formato de Saída

Relatório de Auditoria de Segurança do Azure Active Directory
===============================================================
Locatário: acme-acquired.onmicrosoft.com
ID do Locatário: a1b2c3d4-e5f6-7890-abcd-ef1234567890
Data da Auditoria: 2026-02-23
Licença: Azure AD Premium P2

CONFIGURAÇÃO DE IDENTIDADE:
  Padrões de Segurança: Desabilitado (Acesso Condicional em uso)
  Políticas de Acesso Condicional: 12 (8 aplicadas, 3 somente relatório, 1 desabilitada)
  Autenticação Legada Bloqueada: Parcial (bloqueada apenas para administradores)

ACESSO PRIVILEGIADO:
  Administradores Globais:              8 (recomendado: <= 4)
  Atribuições de administrador permanentes: 6 (sem necessidade de ativação PIM)
  Service principals com administrador:  3
  Usuários convidados com funções privilegiadas: 2

HIGIENE DE CONTAS:
  Total de usuários:                        1.247
  Contas obsoletas (90+ dias):              89
  Usuários convidados:                      234
  Usuários sem MFA registrado:              156

RISCO DE ENTRADA:
  Entradas arriscadas (últimos 30 dias):      34
  Entradas com autenticação legada (últimos 7 dias): 67
  Detecções de viagem impossível:              5
  Entradas de locais desconhecidos:            12

DESCOBERTAS CRÍTICAS:
  1. 8 Administradores Globais com atribuições permanentes (use PIM)
  2. Autenticação legada não bloqueada para usuários não administradores
  3. 156 usuários sem registro de MFA
  4. 2 usuários convidados com função de Administrador de Função Privilegiada

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,

Habilidades Relacionadas