# Az - Toestel-registrasie

{{#include ../../banners/hacktricks-training.md}}

## Basiese Inligting

Wanneer 'n toestel by **AzureAD** aansluit, word 'n nuwe object in **AzureAD** geskep.

Wanneer 'n toestel geregistreer word, word die **gebruiker gevra om in te teken met sy rekening** (MFA word versoek indien nodig), daarna versoek dit tokens vir die device registration service en vra dan 'n finale bevestigingsprompt.

Dan word twee RSA-sleutelpaar op die toestel gegenereer: Die **device key** (**public** sleutel) wat na **AzureAD** gestuur word, en die **transport** sleutel (**private** sleutel) wat, indien moontlik, in die **TPM** gestoor word.

Dan word die **object** in **AzureAD** gegenereer (nie in **Intune** nie) en **AzureAD** gee 'n **sertifikaat** wat deur dit geteken is terug aan die toestel. Jy kan nagaan dat die **toestel by AzureAD aangesluit is** en inligting oor die **sertifikaat** (soos of dit deur **TPM** beskerm word).:
```bash
dsregcmd /status
```
Na die toestelregistrasie word 'n **Primary Refresh Token** deur die LSASS CloudAP module versoek en aan die toestel gegee. Tesame met die PRT word ook die **session key versleuteld sodat slegs die toestel dit kan ontsleutel** (using the public key of the transport key) afgelewer en dit is **nodig om die PRT te gebruik.**

Vir meer inligting oor wat 'n PRT is, sien:

{{#ref}}
az-lateral-movement-cloud-on-prem/az-primary-refresh-token-prt.md
{{#endref}}

### TPM - Trusted Platform Module

Die **TPM** **beskerm** teen sleutel **extraction** vanaf 'n afgeskakelde toestel (indien beskerm deur 'n PIN) en teen die onttrekking van private materiaal uit die OS-laag.\
Maar dit **beskerm nie** teen **sniffing** van die fisiese verbinding tussen die TPM en die CPU nie, of teen die **gebruik van die cryptographic material** in die TPM terwyl die stelsel loop vanaf 'n proses met **SYSTEM**-regte.

As jy die volgende bladsy nagaan sal jy sien dat **stealing the PRT** gebruik kan word om toegang te kry as die **user**, wat problematies is omdat die **PRT op toestelle geleë is**, dus kan dit van hulle gesteel word (of, as dit nie gesteel word nie, misbruik word om nuwe signing keys te genereer):

{{#ref}}
az-lateral-movement-cloud-on-prem/az-primary-refresh-token-prt.md
{{#endref}}

## Registrasie van 'n toestel met SSO tokens

Dit sou moontlik wees vir 'n aanvaller om 'n token vir die Microsoft device registration service vanaf die gekompromitteerde toestel te versoek en dit te registreer:
```bash
# 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
```
Which will give you a **certificate you can use to ask for PRTs in the future**. Therefore maintaining persistence and **bypassing MFA** because the original PRT token used to register the new device **already had MFA permissions granted**.

> [!TIP]
> Let daarop dat om hierdie aanval uit te voer jy toestemming nodig het om **nuwe toestelle te registreer**. Die registrasie van 'n toestel beteken ook nie dat die toestel **toegelaat sal word om by Intune in te skryf** nie.

> [!CAUTION]
> Hierdie aanval is in September 2021 reggestel aangesien jy nie meer nuwe toestelle kan registreer met SSO-tokens nie. Dit is egter steeds moontlik om toestelle op 'n regmatige wyse te registreer (met gebruikersnaam, wagwoord en MFA indien nodig). Check: [**roadtx**](https://github.com/carlospolop/hacktricks-cloud/blob/master/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-roadtx-authentication.md).

## Oorskryf 'n toestelkaartjie

Dit was moontlik om 'n **device ticket aan te vra**, die huidige een van die toestel te **oorskryf**, en tydens die proses die **PRT te steel** (dus geen behoefte om dit uit die TPM te steel nie). For more info [**check this talk**](https://youtu.be/BduCn8cLV1A).

<figure><img src="../../images/image (32).png" alt=""><figcaption></figcaption></figure>

> [!CAUTION]
> Dit is egter reggestel.

## Overwrite WHFB key

[**Check the original slides here**](https://dirkjanm.io/assets/raw/Windows%20Hello%20from%20the%20other%20side_nsec_v1.0.pdf)

Attack summary:

- Dit is moontlik om via SSO die **geregistreerde WHFB**-sleutel van 'n **device** te **oorskryf**
- Dit **omseil TPM-beskerming** aangesien die sleutel tydens die generering van die nuwe sleutel **afgeluister word**
- Dit bied ook **persistence**

<figure><img src="../../images/image (34).png" alt=""><figcaption></figcaption></figure>

Users can modify their own searchableDeviceKey property via the Azure AD Graph, however, the attacker needs to have a device in the tenant (registered on the fly or having stolen cert + key from a legit device) and a valid access token for the AAD Graph.

Then, it's possible to generate a new key with:
```bash
roadtx genhellokey -d <device id> -k tempkey.key
```
en dan PATCH die inligting van die searchableDeviceKey:

<figure><img src="../../images/image (36).png" alt=""><figcaption></figcaption></figure>

Dit is moontlik om 'n access token van 'n gebruiker te kry via **device code phishing** en die vorige stappe te misbruik om **sy toegang te steel**. Vir meer inligting sien:

{{#ref}}
az-lateral-movement-cloud-on-prem/az-primary-refresh-token-prt.md
{{#endref}}

<figure><img src="../../images/image (37).png" alt=""><figcaption></figcaption></figure>

## Verwysings

- [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}}
