macOS MDM

Reading time: 9 minutes

tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks

Om meer oor macOS MDM's te leer, kyk:

Basiese beginsels

MDM (Mobiele Toestelbestuur) Oorsig

Mobiele Toestelbestuur (MDM) word gebruik om verskeie eindgebruikertoestelle soos slimfone, skootrekenaars en tablette te bestuur. Veral vir Apple se platforms (iOS, macOS, tvOS), dit behels 'n stel gespesialiseerde funksies, API's en praktyke. Die werking van MDM hang af van 'n versoenbare MDM-bediener, wat kommersieel beskikbaar of oopbron kan wees, en moet die MDM-protokol ondersteun. Sleutelpunte sluit in:

  • Gekonsolideerde beheer oor toestelle.
  • Afhangend van 'n MDM-bediener wat aan die MDM-protokol voldoen.
  • Vermoë van die MDM-bediener om verskeie opdragte na toestelle te stuur, byvoorbeeld, afstandsdata-uitwissing of konfigurasie-installasie.

Basiese beginsels van DEP (Toestelregistrasieprogram)

Die Toestelregistrasieprogram (DEP) wat deur Apple aangebied word, stroomlyn die integrasie van Mobiele Toestelbestuur (MDM) deur nul-aanraaking konfigurasie vir iOS, macOS en tvOS toestelle te fasiliteer. DEP outomatiseer die registrasieproses, wat toestelle in staat stel om reg uit die boks te funksioneer, met minimale gebruikers- of administratiewe ingryping. Belangrike aspekte sluit in:

  • Stel toestelle in staat om outonoom met 'n vooraf gedefinieerde MDM-bediener te registreer by die aanvanklike aktivering.
  • Primêr voordelig vir splinternuwe toestelle, maar ook toepaslik vir toestelle wat herkonfigureer word.
  • Fasiliteer 'n eenvoudige opstelling, wat toestelle vinnig gereed maak vir organisatoriese gebruik.

Sekuriteitsoorweging

Dit is belangrik om daarop te let dat die gemak van registrasie wat deur DEP verskaf word, terwyl dit voordelig is, ook sekuriteitsrisiko's kan inhou. As beskermingsmaatreëls nie voldoende afgedwing word vir MDM-registrasie nie, kan aanvallers hierdie gestroomlynde proses benut om hul toestel op die organisasie se MDM-bediener te registreer, terwyl hulle as 'n korporatiewe toestel voorgee.

caution

Sekuriteitswaarskuwing: Vereenvoudigde DEP-registrasie kan moontlik ongeoorloofde toestelregistrasie op die organisasie se MDM-bediener toelaat as behoorlike beskermingsmaatreëls nie in plek is nie.

Wat is SCEP (Eenvoudige Sertifikaatregistrasieprotokol)?

  • 'n Relatief ou protokol, geskep voordat TLS en HTTPS algemeen was.
  • Gee kliënte 'n gestandaardiseerde manier om 'n Sertifikaatondertekeningsversoek (CSR) te stuur ten einde 'n sertifikaat te verkry. Die kliënt sal die bediener vra om vir hom 'n ondertekende sertifikaat te gee.

Wat is Konfigurasieprofiele (ook bekend as mobileconfigs)?

  • Apple se amptelike manier om stelselskonfigurasie in te stel/af te dwing.
  • Lêerformaat wat verskeie payloads kan bevat.
  • Gebaseer op eiendomslyste (die XML-tipe).
  • “kan onderteken en geënkripteer word om hul oorsprong te valideer, hul integriteit te verseker, en hul inhoud te beskerm.” Basiese beginsels — Bladsy 70, iOS Sekuriteitsgids, Januarie 2018.

Protokolle

MDM

  • Kombinasie van APNs (Apple bedieners) + RESTful API (MDM verkoper bedieners)
  • Kommunikasie vind plaas tussen 'n toestel en 'n bediener wat geassosieer is met 'n toestel bestuur produk
  • Opdragte gelewer van die MDM na die toestel in plist-gecodeerde woordeboeke
  • Oral oor HTTPS. MDM-bedieners kan (en is gewoonlik) ge-pin.
  • Apple gee die MDM-verkoper 'n APNs sertifikaat vir verifikasie

DEP

  • 3 API's: 1 vir herverkopers, 1 vir MDM-verkopers, 1 vir toestelidentiteit (nie gedokumenteer nie):
  • Die sogenaamde DEP "cloud service" API. Dit word deur MDM-bedieners gebruik om DEP-profiele met spesifieke toestelle te assosieer.
  • Die DEP API wat deur Apple Geautoriseerde Herverkopers gebruik word om toestelle te registreer, registrasiestatus te kontroleer, en transaksie-status te kontroleer.
  • Die nie gedokumenteerde private DEP API. Dit word deur Apple Toestelle gebruik om hul DEP-profiel aan te vra. Op macOS is die cloudconfigurationd binêre verantwoordelik vir kommunikasie oor hierdie API.
  • Meer modern en JSON gebaseer (teenoor plist)
  • Apple gee 'n OAuth-token aan die MDM-verkoper

DEP "cloud service" API

  • RESTful
  • sinkroniseer toestelrekords van Apple na die MDM-bediener
  • sinkroniseer “DEP-profiele” na Apple van die MDM-bediener (later aan die toestel gelewer deur Apple)
  • 'n DEP “profiel” bevat:
  • MDM-verkoper bediener URL
  • Bykomende vertroude sertifikate vir bediener URL (opsionele pinning)
  • Ekstra instellings (bv. watter skerms om in die Setup Assistant oor te slaan)

Serienommer

Apple-toestelle wat na 2010 vervaardig is, het oor die algemeen 12-karakter alfanumeriese serienommers, met die eerste drie syfers wat die vervaardigingsligging verteenwoordig, die volgende twee wat die jaar en week van vervaardiging aandui, die volgende drie syfers wat 'n unieke identifiseerder verskaf, en die laaste vier syfers wat die modelnommer verteenwoordig.

macOS Serial Number

Stappe vir registrasie en bestuur

  1. Toestelrekord skep (Herverkoper, Apple): Die rekord vir die nuwe toestel word geskep
  2. Toestelrekord toewys (Kliënt): Die toestel word aan 'n MDM-bediener toegewy
  3. Toestelrekord sinkroniseer (MDM-verkoper): MDM sinkroniseer die toestelrekords en druk die DEP-profiele na Apple
  4. DEP inligting (Toestel): Toestel ontvang sy DEP-profiel
  5. Profielherwinning (Toestel)
  6. Profielinstallasie (Toestel) a. insluitend MDM, SCEP en wortel CA payloads
  7. MDM-opdrag uitreiking (Toestel)

Die lêer /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/PrivateFrameworks/ConfigurationProfiles.framework/ConfigurationProfiles.tbd voer funksies uit wat as hoëvlak "stappe" van die registrasieproses beskou kan word.

Stap 4: DEP inligting - Verkryging van die Aktiveringsrekord

Hierdie deel van die proses vind plaas wanneer 'n gebruiker 'n Mac vir die eerste keer opstart (of na 'n volledige skoonmaak)

of wanneer sudo profiles show -type enrollment uitgevoer word

  • Bepaal of toestel DEP geaktiveer is
  • Aktiveringsrekord is die interne naam vir DEP “profiel”
  • Begin sodra die toestel aan die internet gekoppel is
  • Gedryf deur CPFetchActivationRecord
  • Geïmplementeer deur cloudconfigurationd via XPC. Die "Setup Assistant" (wanneer die toestel eerste keer opgestart word) of die profiles opdrag sal hierdie daemon kontak om die aktiveringsrekord te verkry.
  • LaunchDaemon (loop altyd as root)

Dit volg 'n paar stappe om die Aktiveringsrekord te verkry wat deur MCTeslaConfigurationFetcher uitgevoer word. Hierdie proses gebruik 'n enkripsie genaamd Absinthe

  1. Verkry sertifikaat
  2. GET https://iprofiles.apple.com/resource/certificate.cer
  3. Begin toestand vanaf sertifikaat (NACInit)
  4. Gebruik verskeie toestelspesifieke data (d.w.s. Serienommer via IOKit)
  5. Verkry sessiesleutel
  6. POST https://iprofiles.apple.com/session
  7. Vestig die sessie (NACKeyEstablishment)
  8. Maak die versoek
  9. POST na https://iprofiles.apple.com/macProfile en stuur die data { "action": "RequestProfileConfiguration", "sn": "" }
  10. Die JSON payload is geënkripteer met behulp van Absinthe (NACSign)
  11. Alle versoeke oor HTTPs, ingeboude wortelsertifikate word gebruik

Die antwoord is 'n JSON-woordeboek met belangrike data soos:

  • url: URL van die MDM-verkoper gasheer vir die aktiveringsprofiel
  • anchor-certs: Array van DER-sertifikate wat as vertroude ankers gebruik word

Stap 5: Profielherwinning

  • Versoek gestuur na url verskaf in DEP-profiel.
  • Anchor sertifikate word gebruik om vertroue te evalueer indien verskaf.
  • Herinnering: die anchor_certs eienskap van die DEP-profiel
  • Versoek is 'n eenvoudige .plist met toestelidentifikasie
  • Voorbeelde: UDID, OS weergawe.
  • CMS-onderteken, DER-gecodeer
  • Onderteken met behulp van die toestelidentiteitsertifikaat (van APNS)
  • Sertifikaatchain sluit vervalle Apple iPhone Device CA in

Stap 6: Profielinstallasie

  • Sodra verkry, word profiel op die stelsel gestoor
  • Hierdie stap begin outomaties (indien in setup assistant)
  • Gedryf deur CPInstallActivationProfile
  • Geïmplementeer deur mdmclient oor XPC
  • LaunchDaemon (as root) of LaunchAgent (as gebruiker), afhangende van konteks
  • Konfigurasieprofiele het verskeie payloads om te installeer
  • Raamwerk het 'n plugin-gebaseerde argitektuur vir die installering van profiele
  • Elke payload tipe is geassosieer met 'n plugin
  • Kan XPC (in raamwerk) of klassieke Cocoa (in ManagedClient.app) wees
  • Voorbeeld:
  • Sertifikaatpayloads gebruik CertificateService.xpc

Tipies, aktiveringsprofiel verskaf deur 'n MDM-verkoper sal die volgende payloads insluit:

  • com.apple.mdm: om die toestel in MDM te registreer
  • com.apple.security.scep: om 'n kliëntsertifikaat veilig aan die toestel te verskaf.
  • com.apple.security.pem: om vertroude CA-sertifikate aan die toestel se Stelselsleutelhouer te installeer.
  • Die installering van die MDM-payload is gelyk aan MDM check-in in die dokumentasie
  • Payload bevat sleutel eienskappe:
    • MDM Check-In URL (CheckInURL)
  • MDM Opdrag Polling URL (ServerURL) + APNs onderwerp om dit te aktiveer
  • Om MDM-payload te installeer, word 'n versoek na CheckInURL gestuur
  • Geïmplementeer in mdmclient
  • MDM-payload kan op ander payloads afhanklik wees
  • Laat versoeke toe om aan spesifieke sertifikate ge-pin te word:
  • Eienskap: CheckInURLPinningCertificateUUIDs
  • Eienskap: ServerURLPinningCertificateUUIDs
  • Gelewer via PEM payload
  • Laat toestel toe om met 'n identiteitssertifikaat toegeskryf te word:
  • Eienskap: IdentityCertificateUUID
  • Gelewer via SCEP payload

Stap 7: Luister na MDM-opdragte

  • Nadat MDM check-in voltooi is, kan verkoper stoot kennisgewings gebruik maak van APNs
  • By ontvangs, hanteer deur mdmclient
  • Om vir MDM-opdragte te poll, word 'n versoek na ServerURL gestuur
  • Maak gebruik van die voorheen geïnstalleerde MDM-payload:
  • ServerURLPinningCertificateUUIDs vir pinning versoek
  • IdentityCertificateUUID vir TLS kliëntsertifikaat

Aanvalle

Registrasie van Toestelle in Ander Organisasies

Soos voorheen opgemerk, om te probeer om 'n toestel in 'n organisasie te registreer, is slegs 'n Serienommer wat aan daardie Organisasie behoort, nodig. Sodra die toestel geregistreer is, sal verskeie organisasies sensitiewe data op die nuwe toestel installeer: sertifikate, toepassings, WiFi-wagwoorde, VPN-konfigurasies en so aan.
Daarom kan dit 'n gevaarlike toegangspunt vir aanvallers wees as die registrasieproses nie korrek beskerm word nie:

Enrolling Devices in Other Organisations

tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks