# Az - Device Registration

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

## Osnovne Informacije

Kada uređaj pristupi AzureAD, novi objekat se kreira u AzureAD.

Kada se registruje uređaj, **korisnik se traži da se prijavi sa svojim nalogom** (tražeći MFA ako je potrebno), zatim se traže tokeni za servis registracije uređaja i zatim se traži konačna potvrda.

Zatim, generišu se dva RSA para ključeva u uređaju: **uređajni ključ** (**javni** ključ) koji se šalje u **AzureAD** i **transportni** ključ (**privatni** ključ) koji se čuva u TPM ako je moguće.

Zatim, **objekat** se generiše u **AzureAD** (ne u Intune) i AzureAD vraća uređaju **sertifikat** potpisan od strane njega. Možete proveriti da li je **uređaj povezan sa AzureAD** i informacije o **sertifikatu** (kao što je da li je zaštićen TPM-om).
```bash
dsregcmd /status
```
Nakon registracije uređaja, **Primary Refresh Token** zahteva LSASS CloudAP modul i dodeljuje se uređaju. Uz PRT se takođe isporučuje **ključ sesije koji je enkriptovan tako da ga samo uređaj može dekriptovati** (koristeći javni ključ transportnog ključa) i **neophodan je za korišćenje PRT-a.**

Za više informacija o tome šta je PRT, pogledajte:

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

### TPM - Trusted Platform Module

**TPM** **štiti** od **ekstrakcije** ključeva sa isključenog uređaja (ako je zaštićen PIN-om) i od ekstrakcije privatnog materijala iz OS sloja.\
Ali **ne štiti** od **sniffing-a** fizičke veze između TPM-a i CPU-a ili **korišćenja kriptografskog materijala** u TPM-u dok sistem radi iz procesa sa **SYSTEM** pravima.

Ako pogledate sledeću stranicu, videćete da se **krađa PRT-a** može koristiti za pristup kao **korisnik**, što je odlično jer se **PRT nalazi na uređajima**, tako da se može ukrasti od njih (ili, ako nije ukraden, zloupotrebiti za generisanje novih potpisnih ključeva):

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

## Registracija uređaja sa SSO tokenima

Bilo bi moguće da napadač zatraži token za Microsoft uslugu registracije uređaja sa kompromitovanog uređaja i registruje ga:
```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
```
Koji će vam dati **sertifikat koji možete koristiti za traženje PRT-ova u budućnosti**. Takođe održava trajnost i **obiđe MFA** jer je originalni PRT token korišćen za registraciju novog uređaja **već imao odobrene MFA dozvole**.

> [!TIP]
> Imajte na umu da su vam potrebne dozvole za **registraciju novih uređaja** da biste izvršili ovaj napad. Takođe, registracija uređaja ne znači da će uređaj biti **odobren za upis u Intune**.

> [!CAUTION]
> Ovaj napad je ispravljen u septembru 2021. godine jer više ne možete registrovati nove uređaje koristeći SSO tokene. Međutim, još uvek je moguće registrovati uređaje na legitiman način (imajući korisničko ime, lozinku i MFA ako je potrebno). Proverite: [**roadtx**](https://github.com/carlospolop/hacktricks-cloud/blob/master/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-roadtx-authentication.md).

## Prepisivanje uređajnog tiketa

Bilo je moguće **zatražiti uređajni tiket**, **prepisati** trenutni tiket uređaja, i tokom procesa **ukrasti PRT** (tako da nije potrebno ukrasti ga iz TPM-a. Za više informacija [**proverite ovaj govor**](https://youtu.be/BduCn8cLV1A).

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

> [!CAUTION]
> Međutim, ovo je ispravljeno.

## Prepiši WHFB ključ

[**Proverite originalne slajdove ovde**](https://dirkjanm.io/assets/raw/Windows%20Hello%20from%20the%20other%20side_nsec_v1.0.pdf)

Sažetak napada:

- Moguće je **prepisati** **registrovani WHFB** ključ sa **uređaja** putem SSO
- To **obara TPM zaštitu** jer se ključ **snima tokom generisanja** novog ključa
- Ovo takođe pruža **trajnost**

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

Korisnici mogu modifikovati svoju pretraživuDeviceKey svojstvo putem Azure AD Graph, međutim, napadač treba da ima uređaj u tenant-u (registrovan u hodu ili ukraden sertifikat + ključ sa legitimen uređaja) i važeći pristupni token za AAD Graph.

Zatim, moguće je generisati novi ključ sa:
```bash
roadtx genhellokey -d <device id> -k tempkey.key
```
и онда PATCH-ујте информације о searchableDeviceKey:

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

Могуће је добити access token од корисника преко **device code phishing** и злоупотребити претходне кораке да **крадете његов приступ**. За више информација погледајте:

{{#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>

## References

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