macOS MDM
Naučite i vežbajte hakovanje AWS-a:HackTricks Training AWS Red Team Expert (ARTE)
Naučite i vežbajte hakovanje GCP-a:
HackTricks Training GCP Red Team Expert (GRTE)
Za učenje o macOS MDM-ovima pogledajte:
Osnove
Pregled MDM-a (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 skup 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-a (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 se takođe može primeniti i na 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, može takođ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 zaštite 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 potpisan sertifikat.
Šta su Konfiguracioni profili (poznati i kao mobileconfigs)?
Zvaničan način Apple-a za postavljanje/primenu 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 kodiranim rečnicima
Sve preko HTTPS. MDM serveri mogu biti (i obično jesu) prikačeni.
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 prikačivanje)
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.
macOS Serial NumberKoraci za registraciju i upravljanje
Kreiranje zapisa uređaja (Prodavac, Apple): Kreira se zapis za novi uređaj
Dodeljivanje zapisa uređaja (Kupac): Uređaj se dodeljuje MDM serveru
Sinhronizacija zapisa uređaja (Proizvođač MDM-a): MDM sinhronizuje zapise uređaja i šalje DEP profile Apple-u
DEP prijava (Uređaj): Uređaj dobija svoj DEP profil
Preuzimanje profila (Uređaj)
Instalacija profila (Uređaj) a. uključujući MDM, SCEP i nosioce root CA
Izdavanje MDM komande (Uređaj)
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F3850298721-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fs712eRnz5qRNRafWqq3N%252Fuploads%252Fgit-blob-e74dcc48a706455140f68598a7994c7bb5eda1d5%252Fimage%2520%28694%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=a8aa70d0&sv=1)
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)
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F3850298721-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fs712eRnz5qRNRafWqq3N%252Fuploads%252Fgit-blob-aa8b9f9727f0b4276ff9361ccdbcb51d63f8ddbb%252Fimage%2520%281044%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=3f3da448&sv=1)
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 podešavanje" (kada se uređaj prvi put pokrene) ili komandaprofiles
ć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
Dobavljanje sertifikata
Inicijalizacija stanja iz sertifikata (
NACInit
)Koristi različite podatke specifične za uređaj (npr. Seriski broj putem
IOKit
)Dobavljanje sesijskog ključa
Uspostavljanje sesije (
NACKeyEstablishment
)Slanje zahteva
POST na https://iprofiles.apple.com/macProfile slanjem podataka
{ "action": "RequestProfileConfiguration", "sn": "" }
JSON payload je enkriptovan korišćenjem Absinthe (
NACSign
)Svi zahtevi se šalju preko HTTPs, ugrađeni sertifikati su korišćeni
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F3850298721-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fs712eRnz5qRNRafWqq3N%252Fuploads%252Fgit-blob-dbe8992c382bc3999300ec963b57cd8bc87b4e82%252Fimage%2520%28566%29%2520%281%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=4872d820&sv=1)
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 korišćenih kao pouzdani koreni
Korak 5: Dobavljanje profila
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F3850298721-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fs712eRnz5qRNRafWqq3N%252Fuploads%252Fgit-blob-a8b26dc889064fd7ed552a69198a9179923d9a17%252Fimage%2520%28444%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=1020d397&sv=1)
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.
CMS-potpisan, DER-enkodiran
Potpisan 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 podešavanje)
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 MDMcom.apple.security.scep
: za bezbedno obezbeđivanje klijentskog sertifikata uređaju.com.apple.security.pem
: za instaliranje pouzdanih CA sertifikata u sistemski ključni lanac uređaja.Instaliranje tereta MDM ekvivalentno je MDM proveri u dokumentaciji
Teret sadrži ključna svojstva:
MDM URL provere (
CheckInURL
)URL za preuzimanje MDM komandi (
ServerURL
) + APNs tema za pokretanjeZa 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đeno od strane
mdmclient
Za preuzimanje MDM komandi, zahtev se šalje na ServerURL
Koristi se prethodno instaliran MDM teret:
ServerURLPinningCertificateUUIDs
za vezivanje zahtevaIdentityCertificateUUID
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:
Enrolling Devices in Other OrganisationsNaučite i vežbajte hakovanje AWS-a:HackTricks Training AWS Red Team Expert (ARTE)
Naučite i vežbajte hakovanje GCP-a:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated