# Az - Registrazione Dispositivo {{#include ../../banners/hacktricks-training.md}} ## Informazioni di Base Quando un dispositivo si unisce ad AzureAD, viene creato un nuovo oggetto in AzureAD. Quando si registra un dispositivo, **all'utente viene chiesto di accedere con il proprio account** (richiedendo MFA se necessario), quindi richiede token per il servizio di registrazione del dispositivo e poi chiede 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. Infine, l'**oggetto** viene generato in **AzureAD** (non in Intune) e AzureAD restituisce al dispositivo un **certificato** firmato da esso. Puoi verificare che il **dispositivo sia unito ad AzureAD** e informazioni sul **certificato** (come se è protetto da TPM). ```bash dsregcmd /status ``` Dopo la registrazione del dispositivo, un **Primary Refresh Token** viene richiesto dal modulo LSASS CloudAP e fornito al dispositivo. Con il PRT viene anche consegnata la **chiave di sessione crittografata in modo che solo il dispositivo possa decrittarla** (utilizzando la chiave pubblica della chiave di trasporto) ed è **necessaria per utilizzare il PRT.** Per ulteriori informazioni su cos'è un PRT, controlla: {{#ref}} az-lateral-movement-cloud-on-prem/az-primary-refresh-token-prt.md {{#endref}} ### TPM - Trusted Platform Module Il **TPM** **protegge** contro l'**estrazione** della chiave da un dispositivo spento (se protetto da PIN) e dall'estrazione del materiale privato dallo strato OS.\ Ma non **protegge** contro il **sniffing** della connessione fisica tra il TPM e la CPU o **l'uso del materiale crittografico** nel TPM mentre il sistema è in esecuzione da un processo con diritti **SYSTEM**. Se controlli la pagina seguente, vedrai che **rubare il PRT** può essere utilizzato per accedere come un **utente**, il che è ottimo perché il **PRT è situato nei dispositivi**, quindi può essere rubato da essi (o se non rubato, abusato per generare nuove chiavi di firma): {{#ref}} az-lateral-movement-cloud-on-prem/pass-the-prt.md {{#endref}} ## Registrazione di un dispositivo con token SSO Sarebbe possibile per un attaccante richiedere un token per il servizio di registrazione dei dispositivi Microsoft dal dispositivo compromesso e registrarlo: ```bash # Initialize SSO flow roadrecon auth prt-init .\ROADtoken.exe # Request token with PRT with PRT cookie roadrecon auth -r 01cb2876-7ebd-4aa4-9cc9-d28bd4d359a9 --prt-cookie # Custom pyhton script to register a device (check roadtx) registerdevice.py ``` Quale ti darà un **certificato che puoi usare per richiedere PRT in futuro**. Pertanto, mantenendo la persistenza e **bypassando MFA** perché il token PRT originale utilizzato per registrare il nuovo dispositivo **aveva già i permessi MFA concessi**. > [!TIP] > Nota che per eseguire questo attacco avrai bisogno di permessi per **registrare nuovi dispositivi**. Inoltre, registrare un dispositivo non significa che il dispositivo sarà **autorizzato a iscriversi a Intune**. > [!CAUTION] > Questo attacco è stato risolto a settembre 2021 poiché non puoi più registrare nuovi dispositivi utilizzando token SSO. Tuttavia, è ancora possibile registrare dispositivi in modo legittimo (avendo nome utente, password e MFA se necessario). Controlla: [**roadtx**](https://github.com/carlospolop/hacktricks-cloud/blob/master/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-roadtx-authentication.md). ## Sovrascrivere un ticket dispositivo Era possibile **richiedere un ticket dispositivo**, **sovrascrivere** quello attuale del dispositivo e durante il flusso **rubare il PRT** (quindi non è necessario rubarlo dal TPM. Per maggiori informazioni [**controlla questo intervento**](https://youtu.be/BduCn8cLV1A).
> [!CAUTION] > Tuttavia, questo è stato risolto. ## Sovrascrivere la chiave WHFB [**Controlla le diapositive originali qui**](https://dirkjanm.io/assets/raw/Windows%20Hello%20from%20the%20other%20side_nsec_v1.0.pdf) Riepilogo dell'attacco: - È possibile **sovrascrivere** la chiave **WHFB registrata** da un **dispositivo** tramite SSO - Questo **annulla la protezione TPM** poiché la chiave viene **catturata durante la generazione** della nuova chiave - Questo fornisce anche **persistenza**
Gli utenti possono modificare la propria proprietà searchableDeviceKey tramite l'Azure AD Graph, tuttavia, l'attaccante deve avere un dispositivo nel tenant (registrato al volo o avendo rubato certificato + chiave da un dispositivo legittimo) e un token di accesso valido per l'AAD Graph. Quindi, è possibile generare una nuova chiave con: ```bash roadtx genhellokey -d -k tempkey.key ``` e poi PATCH le informazioni del searchableDeviceKey:
È possibile ottenere un token di accesso da un utente tramite **device code phishing** e abusare dei passaggi precedenti per **rubare il suo accesso**. Per ulteriori informazioni controlla: {{#ref}} az-lateral-movement-cloud-on-prem/az-phishing-primary-refresh-token-microsoft-entra.md {{#endref}}
## Riferimenti - [https://youtu.be/BduCn8cLV1A](https://youtu.be/BduCn8cLV1A) - [https://www.youtube.com/watch?v=x609c-MUZ_g](https://www.youtube.com/watch?v=x609c-MUZ_g) - [https://www.youtube.com/watch?v=AFay_58QubY](https://www.youtube.com/watch?v=AFay_58QubY) {{#include ../../banners/hacktricks-training.md}}