macOS MDM

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Da biste saznali više o macOS MDM-ovima pogledajte:

Osnove

Pregled MDM (Upravljanje mobilnim uređajima)

Upravljanje mobilnim uređajima (MDM) se koristi za upravljanje različitim uređajima krajnjih korisnika poput pametnih telefona, laptopova i tableta. Posebno za Apple-ove platforme (iOS, macOS, tvOS), uključuje set specijalizovanih funkcija, API-ja i praksi. Rad MDM-a zavisi od kompatibilnog MDM servera, koji je ili komercijalno dostupan ili open-source, i mora podržavati MDM protokol. Ključne tačke uključuju:

  • Centralizovana kontrola nad uređajima.

  • Zavisnost od MDM servera koji se pridržava MDM protokola.

  • Mogućnost MDM servera da šalje različite komande uređajima, na primer, dalje brisanje podataka ili instalaciju konfiguracije.

Osnove DEP (Program za registraciju uređaja)

Program za registraciju uređaja (DEP) koji nudi Apple olakšava integraciju Upravljanja mobilnim uređajima (MDM) omogućavajući konfiguraciju bez dodira za iOS, macOS i tvOS uređaje. DEP automatizuje proces registracije, omogućavajući uređajima da budu operativni odmah po izlasku iz kutije, sa minimalnom intervencijom korisnika ili administratora. Bitni aspekti uključuju:

  • Omogućava uređajima da se automatski registruju sa unapred definisanim MDM serverom prilikom prvog aktiviranja.

  • Pogodno za potpuno nove uređaje, ali takođe primenljivo za uređaje koji se ponovno konfigurišu.

  • Olakšava jednostavnu postavku, čineći uređaje spremnim za organizacionu upotrebu brzo.

Razmatranje bezbednosti

Važno je napomenuti da olakšana registracija koju pruža DEP, iako korisna, takođe može predstavljati bezbednosne rizike. Ako zaštita prilikom registracije putem MDM-a nije adekvatno sprovedena, napadači bi mogli iskoristiti ovaj pojednostavljeni proces da registruju svoj uređaj na MDM serveru organizacije, predstavljajući se kao korporativni uređaj.

Bezbednosno upozorenje: Pojednostavljena registracija putem DEP-a može potencijalno dozvoliti neovlašćenu registraciju uređaja na MDM serveru organizacije ako odgovarajuće mere nisu na snazi.

Osnove Šta je SCEP (Protokol za jednostavnu registraciju sertifikata)?

  • Relativno stari protokol, kreiran pre nego što su TLS i HTTPS postali široko rasprostranjeni.

  • Klijentima pruža standardizovan način slanja Zahteva za potpisivanje sertifikata (CSR) radi dobijanja sertifikata. Klijent će zatražiti od servera da mu izda potpisani sertifikat.

Šta su Konfiguracioni profili (poznati i kao mobileconfigs)?

  • Zvaničan način Apple-a za postavljanje/sprovođenje konfiguracije sistema.

  • Format datoteke koji može sadržati više nosilaca.

  • Bazirano na listama svojstava (XML vrsta).

  • "može biti potpisan i šifrovan kako bi se validirao njihov poreklo, obezbedila njihova celovitost i zaštitili njihov sadržaj." Osnove — Strana 70, Vodič za bezbednost iOS-a, januar 2018.

Protokoli

MDM

  • Kombinacija APNs (Apple servera) + RESTful API (MDM serveri proizvođača)

  • Komunikacija se odvija između uređaja i servera povezanog sa proizvodom za upravljanje uređajima

  • Komande isporučene od strane MDM-a uređaju u plist enkodiranim rečnicima

  • Sve preko HTTPS. MDM serveri mogu biti (i obično jesu) pinovani.

  • Apple dodeljuje proizvođaču MDM-a APNs sertifikat za autentifikaciju

DEP

  • 3 API-ja: 1 za prodavce, 1 za proizvođače MDM-a, 1 za identitet uređaja (nedokumentovano):

  • Tako zvani DEP "cloud service" API. Koristi se od strane MDM servera za povezivanje DEP profila sa određenim uređajima.

  • DEP API koji koriste ovlašćeni prodavci Apple-a za registraciju uređaja, proveru statusa registracije i proveru statusa transakcije.

  • Nedokumentovani privatni DEP API. Koristi se od strane Apple uređaja za zahtevanje njihovog DEP profila. Na macOS-u, binarni cloudconfigurationd je odgovoran za komunikaciju preko ovog API-ja.

  • Moderniji i JSON baziran (za razliku od plist-a)

  • Apple dodeljuje proizvođaču MDM-a OAuth token

DEP "cloud service" API

  • RESTful

  • sinhronizacija zapisa uređaja između Apple-a i MDM servera

  • sinhronizacija "DEP profila" sa Apple-om sa MDM servera (isporučeno od strane Apple-a uređaju kasnije)

  • DEP "profil" sadrži:

  • URL MDM servera proizvođača

  • Dodatni pouzdani sertifikati za URL servera (opciono pinovanje)

  • Dodatne postavke (npr. koje ekrane preskočiti u pomoćniku za podešavanje)

Serijski broj

Apple uređaji proizvedeni posle 2010. godine generalno imaju 12-karakterni alfanumerički serijski broj, pri čemu prve tri cifre predstavljaju lokaciju proizvodnje, sledeće dve označavaju godinu i sedmicu proizvodnje, naredne tri cifre pružaju jedinstveni identifikator, a poslednje četiri cifre predstavljaju broj modela.

pagemacOS Serial Number

Koraci za registraciju i upravljanje

  1. Kreiranje zapisa uređaja (Prodavac, Apple): Kreira se zapis za novi uređaj

  2. Dodeljivanje zapisa uređaja (Korisnik): Uređaj se dodeljuje MDM serveru

  3. Sinhronizacija zapisa uređaja (Proizvođač MDM-a): MDM sinhronizuje zapise uređaja i šalje DEP profile Apple-u

  4. DEP prijava (Uređaj): Uređaj dobija svoj DEP profil

  5. Preuzimanje profila (Uređaj)

  6. Instalacija profila (Uređaj) a. uključujući MDM, SCEP i root CA nosioce

  7. Izdavanje MDM komande (Uređaj)

Datoteka /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/PrivateFrameworks/ConfigurationProfiles.framework/ConfigurationProfiles.tbd izvozi funkcije koje se mogu smatrati visokim "koracima" procesa registracije.

Korak 4: Provera DEP - Dobijanje aktivacionog zapisa

Ovaj deo procesa se dešava kada korisnik prvi put pokrene Mac (ili nakon potpunog brisanja)

ili prilikom izvršavanja sudo profiles show -type enrollment

  • Utvrditi da li je uređaj omogućen za DEP

  • Aktivacioni zapis je interni naziv za DEP "profil"

  • Počinje čim se uređaj poveže na Internet

  • Pokreće se pomoću CPFetchActivationRecord

  • Implementiran od strane cloudconfigurationd putem XPC. "Pomoćnik za postavljanje" (kada se uređaj prvi put pokrene) ili komanda profiles će kontaktirati ovaj demon da bi dobio aktivacioni zapis.

  • LaunchDaemon (uvek se izvršava kao root)

Sledi nekoliko koraka za dobijanje aktivacionog zapisa koje izvršava MCTeslaConfigurationFetcher. Ovaj proces koristi enkripciju nazvanu Absinthe

  1. Dobavljanje sertifikata

  2. Inicijalizacija stanja iz sertifikata (NACInit)

  3. Koristi različite podatke specifične za uređaj (npr. Seriski broj putem IOKit)

  4. Dobavljanje sesijskog ključa

  5. Uspostavljanje sesije (NACKeyEstablishment)

  6. Slanje zahteva

  7. POST na https://iprofiles.apple.com/macProfile slanjem podataka { "action": "RequestProfileConfiguration", "sn": "" }

  8. JSON payload je enkriptovan pomoću Absinthe (NACSign)

  9. Svi zahtevi se šalju preko HTTPs, koriste se ugrađeni root sertifikati

Odgovor je JSON rečnik sa nekim važnim podacima kao što su:

  • url: URL MDM dobavljača hosta za aktivacioni profil

  • anchor-certs: Niz DER sertifikata koji se koriste kao pouzdani koreni

Korak 5: Dobavljanje profila

  • Zahtev poslat na url koji je naveden u DEP profilu.

  • Anchor sertifikati se koriste za procenu poverenja ako su dostupni.

  • Napomena: svojstvo anchor_certs DEP profila

  • Zahtev je jednostavan .plist sa identifikacijom uređaja

  • Primeri: UDID, verzija OS-a.

  • Potpisano CMS-om, DER-kodirano

  • Potpisano korišćenjem sertifikata identiteta uređaja (od APNS-a)

  • Lanac sertifikata uključuje istekli Apple iPhone Device CA

Korak 6: Instalacija profila

  • Kada se dobije, profil se čuva na sistemu

  • Ovaj korak se automatski pokreće (ako je u pomoćniku za postavljanje)

  • Pokreće se pomoću CPInstallActivationProfile

  • Implementiran od strane mdmclient preko XPC

  • LaunchDaemon (kao root) ili LaunchAgent (kao korisnik), zavisno od konteksta

  • Konfiguracioni profili imaju više tereta za instalaciju

  • Okvir ima arhitekturu zasnovanu na pluginima za instaliranje profila

  • Svaki tip tereta je povezan sa pluginom

  • Može biti XPC (u okviru) ili klasični Cocoa (u ManagedClient.app)

  • Primer:

  • Tereti sertifikata koriste CertificateService.xpc

Tipično, aktivacioni profil koji pruža MDM dobavljač će uključivati sledeće terete:

  • com.apple.mdm: za upisivanje uređaja u MDM

  • com.apple.security.scep: za bezbedno pružanje klijentskog sertifikata uređaju.

  • com.apple.security.pem: za instaliranje pouzdanih CA sertifikata u sistemski keš uređaja.

  • Instaliranje tereta MDM ekvivalentno je MDM proveri u dokumentaciji

  • Teret sadrži ključna svojstva:

  • MDM Provera URL-a (CheckInURL)

  • URL za preuzimanje MDM komandi (ServerURL) + APNs tema za pokretanje

  • Za instaliranje MDM tereta, zahtev se šalje na CheckInURL

  • Implementirano u mdmclient

  • MDM teret može zavisiti od drugih tereta

  • Omogućava da zahtevi budu vezani za određene sertifikate:

  • Svojstvo: CheckInURLPinningCertificateUUIDs

  • Svojstvo: ServerURLPinningCertificateUUIDs

  • Dostavljeno putem PEM tereta

  • Omogućava uređaju da bude povezan sa sertifikatom identiteta:

  • Svojstvo: IdentityCertificateUUID

  • Dostavljeno putem SCEP tereta

Korak 7: Slušanje MDM komandi

  • Nakon što se MDM provera završi, dobavljač može izdati push notifikacije koristeći APNs

  • Po prijemu, obrađuje se od strane mdmclient

  • Za preuzimanje MDM komandi, zahtev se šalje na ServerURL

  • Koristi se prethodno instaliran MDM teret:

  • ServerURLPinningCertificateUUIDs za vezivanje zahteva

  • IdentityCertificateUUID za TLS klijentski sertifikat

Napadi

Upisivanje uređaja u druge organizacije

Kao što je ranije komentarisano, kako bi se pokušalo upisati uređaj u organizaciju potreban je samo Serijski broj koji pripada toj Organizaciji. Kada se uređaj upiše, nekoliko organizacija će instalirati osetljive podatke na novi uređaj: sertifikate, aplikacije, lozinke za WiFi, VPN konfiguracije i tako dalje. Stoga, ovo bi mogao biti opasan ulaz za napadače ako proces upisa nije pravilno zaštićen:

pageEnrolling Devices in Other Organisations
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated