Az - Enregistrement d’appareil

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks

Informations de base

Quand un appareil rejoint AzureAD, un nouvel objet est créé dans AzureAD.

Lors de l’enregistrement d’un appareil, l’user is asked to login with his account (demande de MFA si nĂ©cessaire), puis il demande des jetons pour le service d’enregistrement d’appareil et demande ensuite une confirmation finale.

Ensuite, deux RSA keypairs sont gĂ©nĂ©rĂ©s sur l’appareil : la device key (public key) qui est envoyĂ©e Ă  AzureAD et la transport key (private key) qui est stockĂ©e dans le TPM si possible.

Ensuite, l’object est gĂ©nĂ©rĂ© dans AzureAD (pas dans Intune) et AzureAD renvoie Ă  l’appareil un certificate signĂ© par celui-ci. Vous pouvez vĂ©rifier que l’device is AzureAD joined et obtenir des informations sur le certificate (par exemple s’il est protĂ©gĂ© par TPM).:

dsregcmd /status

AprĂšs l’enregistrement de l’appareil, un Primary Refresh Token est demandĂ© par le module LSASS CloudAP et remis Ă  l’appareil. Avec le PRT est aussi fournie la clĂ© de session chiffrĂ©e de sorte que seul l’appareil puisse la dĂ©chiffrer (en utilisant la clĂ© publique de la transport key) et elle est nĂ©cessaire pour utiliser le PRT.

Pour plus d’informations sur ce qu’est un PRT, consultez :

Az - Primary Refresh Token (PRT)

TPM - Trusted Platform Module

Le TPM protĂšge contre l’extraction de clĂ©s depuis un appareil Ă©teint (si protĂ©gĂ© par PIN) et contre l’extraction du matĂ©riel privĂ© depuis la couche OS.
Mais il ne protĂšge pas contre le sniffing de la connexion physique entre le TPM et le CPU ou contre l’utilisation du matĂ©riel cryptographique du TPM pendant que le systĂšme est en fonctionnement depuis un processus disposant des droits SYSTEM.

Si vous consultez la page suivante, vous verrez que stealing the PRT peut ĂȘtre utilisĂ© pour obtenir l’accĂšs comme l’utilisateur, ce qui est avantageux car le PRT est stockĂ© sur les appareils, donc il peut leur ĂȘtre volĂ© (ou, s’il n’est pas volĂ©, abusĂ© pour gĂ©nĂ©rer de nouvelles clĂ©s de signature) :

Az - Primary Refresh Token (PRT)

Enregistrement d’un appareil avec des tokens SSO

Il serait possible pour un attaquant de demander un token pour le service d’enregistrement d’appareils Microsoft depuis l’appareil compromis et de l’enregistrer :

# Initialize SSO flow
roadrecon auth prt-init
.\ROADtoken.exe <nonce>

# Request token with PRT with PRT cookie
roadrecon auth -r 01cb2876-7ebd-4aa4-9cc9-d28bd4d359a9 --prt-cookie <cookie>

# Custom pyhton script to register a device (check roadtx)
registerdevice.py

Ce qui vous donnera un certificat que vous pouvez utiliser pour demander des PRTs Ă  l’avenir. Permettant ainsi de maintenir la persistance et de contourner la MFA parce que le PRT original utilisĂ© pour enregistrer le nouvel appareil avait dĂ©jĂ  les permissions MFA accordĂ©es.

Tip

Notez que pour rĂ©aliser cette attaque vous aurez besoin des autorisations pour register new devices. De plus, enregistrer un appareil ne signifie pas que l’appareil sera autorisĂ© Ă  s’enrĂŽler dans Intune.

Caution

Cette attaque a Ă©tĂ© corrigĂ©e en septembre 2021 car vous ne pouvez plus enregistrer de nouveaux appareils en utilisant des SSO tokens. Cependant, il est toujours possible d’enregistrer des appareils de maniĂšre lĂ©gitime (en ayant le username, password et MFA si nĂ©cessaire). Check: roadtx.

Écraser un ticket d’appareil

Il Ă©tait possible de request a device ticket, overwrite celui courant de l’appareil, et durant le flux steal the PRT (donc pas besoin de le voler depuis le TPM). Pour plus d’infos voir cette confĂ©rence.

Caution

Cependant, cela a été corrigé.

Remplacer la clé WHFB

Voir les slides originales ici

RĂ©sumĂ© de l’attaque :

  • Il est possible de remplacer la clĂ© WHFB enregistrĂ©e d’un appareil via SSO
  • Cela dĂ©joue la protection TPM car la clĂ© est interceptĂ©e lors de la gĂ©nĂ©ration de la nouvelle clĂ©
  • Cela fournit aussi de la persistance

Les utilisateurs peuvent modifier leur propre propriĂ©tĂ© searchableDeviceKey via l’Azure AD Graph, cependant, l’attaquant doit disposer d’un appareil dans le tenant (enregistrĂ© Ă  la volĂ©e ou ayant volĂ© cert + key d’un appareil lĂ©gitime) et d’un jeton d’accĂšs valide pour l’AAD Graph.

Ensuite, il est possible de générer une nouvelle clé avec :

roadtx genhellokey -d <device id> -k tempkey.key

et ensuite PATCH les informations du searchableDeviceKey :

Il est possible d’obtenir un jeton d’accĂšs d’un utilisateur via device code phishing et d’abuser des Ă©tapes prĂ©cĂ©dentes pour voler son accĂšs. Pour plus d’informations, consultez :

Az - Primary Refresh Token (PRT)

Références

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks