Az - Device Registration

Impara l'hacking di AWS da zero a eroe con htARTE (Esperto Red Team di HackTricks AWS)!

Altri modi per supportare HackTricks:

Informazioni di Base

Quando un dispositivo si unisce ad AzureAD viene creato un nuovo oggetto in AzureAD.

Durante la registrazione di un dispositivo, all'utente viene chiesto di effettuare l'accesso con il suo account (chiedendo l'MFA se necessario), quindi richiede i token per il servizio di registrazione del dispositivo e chiede infine una conferma finale.

Successivamente, vengono generati due coppie di chiavi RSA nel dispositivo: La chiave del dispositivo (chiave pubblica) che viene inviata ad AzureAD e la chiave di trasporto (chiave privata) che viene memorizzata nel TPM se possibile.

Successivamente, l'oggetto viene generato in AzureAD (non in Intune) e AzureAD restituisce al dispositivo un certificato firmato da esso. È possibile verificare che il dispositivo sia unito ad AzureAD e informazioni sul certificato (come se è protetto da TPM).

dsregcmd /status

Dopo la registrazione del dispositivo viene richiesto un Primary Refresh Token dal modulo LSASS CloudAP e consegnato al dispositivo. Con il PRT viene anche consegnata la chiave di sessione crittografata in modo che solo il dispositivo possa decifrarla (utilizzando la chiave pubblica della chiave di trasporto) ed è necessaria per utilizzare il PRT.

Per ulteriori informazioni su cos'è un PRT, controlla:

pageAz - Primary Refresh Token (PRT)

TPM - Trusted Platform Module

Il TPM protegge dall'estrazione delle chiavi da un dispositivo spento (se protetto da PIN) e dall'estrazione del materiale privato dal livello del sistema operativo. Ma non protegge dall'intercettazione della connessione fisica tra il TPM e la CPU o dall'utilizzo del materiale crittografico nel TPM mentre il sistema è in esecuzione da un processo con diritti di SYSTEM.

Se controlli la seguente pagina, vedrai che rubare il PRT può essere utilizzato per accedere come un utente, il che è ottimo perché il PRT si trova nei dispositivi, quindi può essere rubato da loro (o se non rubato, abusato per generare nuove chiavi di firma):

pageAz - Pass the PRT

Registrazione di un dispositivo con token SSO

Sarebbe possibile per un attaccante richiedere un token per il servizio di registrazione del dispositivo Microsoft dal dispositivo compromesso e registrarla:

# 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

Sovrascrittura di un ticket del dispositivo

Era possibile richiedere un ticket del dispositivo, sovrascrivere quello attuale del dispositivo e durante il flusso rubare il PRT (quindi non c'è bisogno di rubarlo dal TPM. Per ulteriori informazioni controlla questa presentazione.

Tuttavia, questo è stato risolto.

Sovrascrittura della chiave WHFB

Controlla le slide originali qui

Sommario dell'attacco:

  • È possibile sovrascrivere la chiave WHFB registrata da un dispositivo tramite SSO

  • Sconfigge la protezione del TPM poiché la chiave è intercettata durante la generazione della nuova chiave

  • Questo fornisce anche persistenza

Gli utenti possono modificare la propria proprietà searchableDeviceKey tramite il Azure AD Graph, tuttavia, l'attaccante deve avere un dispositivo nel tenant (registrato al volo o aver rubato certificato + chiave da un dispositivo legittimo) e un token di accesso valido per il Azure AD Graph.

Quindi, è possibile generare una nuova chiave con:

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

e poi EFFETTUA il patch delle informazioni del searchableDeviceKey:

È possibile ottenere un token di accesso da un utente tramite phishing del codice dispositivo e abusare dei passaggi precedenti per rubare il suo accesso. Per ulteriori informazioni controlla:

pageAz - Phishing Primary Refresh Token (Microsoft Entra)

Riferimenti

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Last updated