Az - Device Registration

Wsparcie dla 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 do usługi rejestracji urządzenia, a potem prosi o ostateczne potwierdzenie.

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

Następnie, obiekt jest generowany w AzureAD (nie w Intune) i AzureAD zwraca urządzeniu certyfikat podpisany przez siebie. Możesz sprawdzić, że urządzenie jest dołączone do AzureAD oraz informacje o certyfikacie (jak na przykład, 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 sesyjny zaszyfrowany tak, 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ź:

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 jako 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):

Rejestracja urządzenia z tokenami SSO

Możliwe byłoby, aby atakujący zażądał tokena dla usługi rejestracji urządzeń Microsoft z skompromitowanego 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ć, aby w przyszłości prosić o PRT. Dlatego utrzymuje trwałość i omija MFA, ponieważ oryginalny token PRT użyty do rejestracji nowego urządzenia już miał przyznane uprawnienia MFA.

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

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ę.

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

  • To łama 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

i następnie PATCH 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ź:

Referencje

Wsparcie dla HackTricks

Last updated