Enrolling Devices in Other Organisations
Last updated
Last updated
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Jak wcześniej wspomniano, aby spróbować zarejestrować urządzenie w organizacji wystarczy tylko numer seryjny należący do tej organizacji. Po zarejestrowaniu urządzenia, kilka organizacji zainstaluje wrażliwe dane na nowym urządzeniu: certyfikaty, aplikacje, hasła WiFi, konfiguracje VPN i tak dalej. Dlatego może to być niebezpieczny punkt wejścia dla atakujących, jeśli proces rejestracji nie jest odpowiednio zabezpieczony.
Poniżej znajduje się podsumowanie badań https://duo.com/labs/research/mdm-me-maybe. Sprawdź to, aby uzyskać dalsze szczegóły techniczne!
Badania te zagłębiają się w binaria związane z Programem Rejestracji Urządzeń (DEP) i Zarządzaniem Urządzeniami Mobilnymi (MDM) na macOS. Kluczowe komponenty to:
mdmclient
: Komunikuje się z serwerami MDM i wyzwala rejestracje DEP w wersjach macOS przed 10.13.4.
profiles
: Zarządza profilami konfiguracyjnymi i wyzwala rejestracje DEP w wersjach macOS 10.13.4 i nowszych.
cloudconfigurationd
: Zarządza komunikacją z API DEP i pobiera profile rejestracji urządzeń.
Rejestracje DEP wykorzystują funkcje CPFetchActivationRecord
i CPGetActivationRecord
z prywatnej ramy profili konfiguracyjnych do pobierania rekordu aktywacji, przy czym CPFetchActivationRecord
współpracuje z cloudconfigurationd
przez XPC.
Rejestracja DEP polega na tym, że cloudconfigurationd
wysyła zaszyfrowany, podpisany ładunek JSON do iprofiles.apple.com/macProfile. Ładunek zawiera numer seryjny urządzenia oraz akcję "RequestProfileConfiguration". Schemat szyfrowania używany jest wewnętrznie jako "Absinthe". Rozwiązanie tego schematu jest skomplikowane i wymaga wielu kroków, co doprowadziło do zbadania alternatywnych metod wstawiania dowolnych numerów seryjnych w żądaniu rekordu aktywacji.
Próby przechwycenia i modyfikacji żądań DEP do iprofiles.apple.com przy użyciu narzędzi takich jak Charles Proxy były utrudnione przez szyfrowanie ładunku i środki bezpieczeństwa SSL/TLS. Jednak włączenie konfiguracji MCCloudConfigAcceptAnyHTTPSCertificate
pozwala na ominięcie walidacji certyfikatu serwera, chociaż zaszyfrowana natura ładunku nadal uniemożliwia modyfikację numeru seryjnego bez klucza deszyfrującego.
Instrumentacja binariów systemowych, takich jak cloudconfigurationd
, wymaga wyłączenia Ochrony Integralności Systemu (SIP) w macOS. Po wyłączeniu SIP, narzędzia takie jak LLDB mogą być używane do podłączenia się do procesów systemowych i potencjalnej modyfikacji numeru seryjnego używanego w interakcjach z API DEP. Ta metoda jest preferowana, ponieważ unika złożoności związanych z uprawnieniami i podpisywaniem kodu.
Wykorzystywanie instrumentacji binarnej: Modyfikacja ładunku żądania DEP przed serializacją JSON w cloudconfigurationd
okazała się skuteczna. Proces obejmował:
Podłączenie LLDB do cloudconfigurationd
.
Zlokalizowanie punktu, w którym pobierany jest numer seryjny systemu.
Wstrzyknięcie dowolnego numeru seryjnego do pamięci przed zaszyfrowaniem i wysłaniem ładunku.
Ta metoda pozwoliła na pobranie pełnych profili DEP dla dowolnych numerów seryjnych, co wykazało potencjalną lukę.
Proces eksploatacji został zautomatyzowany przy użyciu Pythona z API LLDB, co umożliwiło programowe wstrzykiwanie dowolnych numerów seryjnych i pobieranie odpowiadających im profili DEP.
Badania podkreśliły istotne problemy z bezpieczeństwem:
Ujawnienie informacji: Podając zarejestrowany w DEP numer seryjny, można uzyskać wrażliwe informacje organizacyjne zawarte w profilu DEP.
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)