Az - Rejestracja urządzenia

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks

Podstawowe informacje

Gdy urządzenie dołącza do AzureAD, nowy obiekt jest tworzony w AzureAD.

Podczas rejestracji urządzenia użytkownik jest proszony o zalogowanie się na swoje konto (prosząc o MFA, jeśli to konieczne), następnie żąda tokenów dla usługi rejestracji urządzenia, a następnie prosi o ostateczne potwierdzenie.

Następnie w urządzeniu generowane są dwie pary kluczy RSA: klucz urządzenia (publiczny klucz), który jest wysyłany do AzureAD, oraz klucz transportowy (prywatny klucz), który jest przechowywany w TPM, jeśli to możliwe.

Następnie obiekt jest generowany w AzureAD (nie w Intune), a AzureAD zwraca do urządzenia certyfikat podpisany przez siebie. Możesz sprawdzić, że urządzenie jest dołączone do AzureAD oraz informacje o certyfikacie (np. czy jest chroniony przez TPM).

dsregcmd /status

Po rejestracji urządzenia, Primary Refresh Token jest żądany przez moduł LSASS CloudAP i przekazywany do urządzenia. Z PRT dostarczany jest również klucz sesji zaszyfrowany w taki sposób, aby tylko urządzenie mogło go odszyfrować (używając klucza publicznego klucza transportowego) i jest potrzebny do użycia PRT.

Aby uzyskać więcej informacji na temat tego, czym jest PRT, sprawdź:

Az - Primary Refresh Token (PRT)

TPM - Trusted Platform Module

TPM chroni przed ekstrakcją kluczy z wyłączonego urządzenia (jeśli jest chronione PIN-em) oraz przed ekstrakcją prywatnych materiałów z warstwy systemu operacyjnego.
Jednak nie chroni przed podsłuchiwaniem fizycznego połączenia między TPM a CPU lub używaniem materiałów kryptograficznych w TPM, gdy system działa z procesu z prawami SYSTEM.

Jeśli sprawdzisz następującą stronę, zobaczysz, że kradzież PRT może być użyta do uzyskania dostępu jak użytkownik, co jest świetne, ponieważ PRT znajduje się na urządzeniach, więc może być skradziony z nich (lub jeśli nie zostanie skradziony, nadużyty do generowania nowych kluczy podpisujących):

Az - Primary Refresh Token (PRT)

Rejestracja urządzenia za pomocą tokenów SSO

Atakujący mógłby zażądać tokena dla usługi rejestracji urządzeń Microsoft z kompromitowanego urządzenia i zarejestrować je:

# 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

Który da ci certyfikat, którego możesz użyć do żądania PRT w przyszłości. Umożliwia to utrzymanie trwałości i obejście MFA, ponieważ oryginalny token PRT użyty do rejestracji nowego urządzenia już miał przyznane uprawnienia MFA.

Tip

Zauważ, że aby przeprowadzić ten atak, będziesz potrzebować uprawnień do rejestrowania nowych urządzeń. Ponadto rejestracja urządzenia nie oznacza, że urządzenie będzie dopuszczone do rejestracji w Intune.

Caution

Ten atak został naprawiony we wrześniu 2021 roku, ponieważ nie można już rejestrować nowych urządzeń za pomocą tokenów SSO. Jednak nadal możliwe jest rejestrowanie urządzeń w sposób legalny (posiadając nazwę użytkownika, hasło i MFA, jeśli to konieczne). Sprawdź: roadtx.

Nadpisywanie biletu urządzenia

Możliwe było zażądanie biletu urządzenia, nadpisanie aktualnego biletu urządzenia i podczas tego procesu ukraść PRT (więc nie ma potrzeby kradzenia go z TPM. Więcej informacji sprawdź tę prezentację.

Caution

Jednak to zostało naprawione.

Nadpisz klucz WHFB

Sprawdź oryginalne slajdy tutaj

Podsumowanie ataku:

  • Możliwe jest nadpisanie zarejestrowanego klucza WHFB z urządzenia za pomocą SSO
  • Obchodzi to ochronę TPM, ponieważ klucz jest przechwytywany podczas generowania nowego klucza
  • To również zapewnia trwałość

Użytkownicy mogą modyfikować swoją własną właściwość searchableDeviceKey za pomocą Azure AD Graph, jednak atakujący musi mieć urządzenie w dzierżawie (zarejestrowane na bieżąco lub mające skradziony certyfikat + klucz z legalnego urządzenia) oraz ważny token dostępu do AAD Graph.

Następnie możliwe jest wygenerowanie nowego klucza za pomocą:

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

a następnie ZAKTUALIZUJ informacje o searchableDeviceKey:

Możliwe jest uzyskanie tokena dostępu od użytkownika za pomocą phishingu kodu urządzenia i nadużycie wcześniejszych kroków, aby ukraść jego dostęp. Aby uzyskać więcej informacji, sprawdź:

Az - Primary Refresh Token (PRT)

References

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks