Az - Device Registration

Wspieraj HackTricks

Podstawowe Informacje

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

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

Następnie, na 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) i AzureAD zwraca do urządzenia certyfikat podpisany przez siebie. Możesz sprawdzić, że urządzenie jest dołączone do AzureAD oraz informacje o certyfikacie (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. Wraz z PRT dostarczany jest również klucz sesji zaszyfrowany w taki sposób, że tylko urządzenie może go odszyfrować (używając klucza publicznego klucza transportowego) i jest niezbędny do użycia PRT.

Więcej informacji na temat PRT znajdziesz tutaj:

Az - Primary Refresh Token (PRT)

TPM - Trusted Platform Module

TPM chroni przed wyciągnięciem kluczy z wyłączonego urządzenia (jeśli jest chronione przez PIN) oraz przed wyciągnięciem prywatnych materiałów z warstwy systemu operacyjnego. Ale 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 procesem o prawach SYSTEM.

Jeśli sprawdzisz poniższą 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żna go ukraść z nich (lub jeśli nie ukraść, to wykorzystać do generowania nowych kluczy podpisujących):

Az - Pass the PRT

Rejestrowanie urządzenia za pomocą tokenów SSO

Możliwe byłoby, aby atakujący zażądał tokenu dla usługi rejestracji urządzeń Microsoft z przejętego 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. Dzięki temu utrzymasz trwałość i ominiesz MFA, ponieważ oryginalny token PRT użyty do rejestracji nowego urządzenia już miał przyznane uprawnienia MFA.

Należy zauważyć, że aby przeprowadzić ten atak, będziesz potrzebować uprawnień do rejestrowania nowych urządzeń. Rejestracja urządzenia nie oznacza, że urządzenie będzie dozwolone do zapisania się do 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 legalny sposób (posiadając nazwę użytkownika, hasło i MFA, jeśli jest wymagane). Sprawdź: roadtx.

Nadpisywanie biletu urządzenia

Możliwe było żądanie biletu urządzenia, nadpisanie obecnego biletu urządzenia, a podczas tego procesu kradzież PRT (więc nie ma potrzeby kradzieży go z TPM. Więcej informacji sprawdź tę prezentację.

Jednakże, to zostało naprawione.

Nadpisanie klucza WHFB

Sprawdź oryginalne slajdy tutaj

Podsumowanie ataku:

  • Możliwe jest nadpisanie zarejestrowanego klucza WHFB z urządzenia za pomocą SSO

  • To pokonuje 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 posiadają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 tokenu dostępu od użytkownika za pomocą device code phishing i wykorzystanie poprzednich kroków do kradzieży jego dostępu. Więcej informacji znajdziesz tutaj:

Az - Phishing Primary Refresh Token (Microsoft Entra)

Referencje

Wspieraj HackTricks

Last updated