hacktricks/macos-hardening/macos-red-teaming/macos-mdm
2024-05-05 22:31:04 +00:00
..
enrolling-devices-in-other-organisations.md Translated to Afrikaans 2024-02-11 02:07:06 +00:00
macos-serial-number.md Translated to Afrikaans 2024-02-11 02:07:06 +00:00
README.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:31:04 +00:00

macOS MDM

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

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

Basies

MDM (Mobile Device Management) Oorsig

Mobile Device Management (MDM) word gebruik vir die bestuur van verskeie eindgebruiker-toestelle soos slimfone, draagbare rekenaars en tablette. Veral vir Apple se platforms (iOS, macOS, tvOS) behels dit 'n stel gespesialiseerde kenmerke, API's en praktyke. Die werking van MDM steun op 'n verenigbare MDM-bediener, wat of kommersieel beskikbaar is of oopbron, en moet die MDM-protokol ondersteun. Sleutelpunte sluit in:

  • Gekentraliseerde beheer oor toestelle.
  • Afhanklikheid van 'n MDM-bediener wat voldoen aan die MDM-protokol.
  • Die vermoë van die MDM-bediener om verskeie bevele na toestelle te stuur, byvoorbeeld afstanddata-uitvee of opsetinstallasie.

Basiese beginsels van DEP (Device Enrollment Program)

Die Device Enrollment Program (DEP) wat deur Apple aangebied word, stroomlyn die integrasie van Mobile Device Management (MDM) deur nul-aanraking-konfigurasie vir iOS, macOS en tvOS-toestelle te fasiliteer. DEP outomatiseer die registrasieproses, sodat toestelle reguit uit die boks operasioneel kan wees, met minimale gebruiker- of administratiewe ingryping. Essensiële aspekte sluit in:

  • Stel toestelle in staat om outomaties te registreer by 'n voorafbepaalde MDM-bediener met aanvanklike aktivering.
  • Hoofsaaklik voordelig vir splinternuwe toestelle, maar ook toepaslik vir toestelle wat herkonfigurasie ondergaan.
  • Fasiliteer 'n eenvoudige opstelling, wat toestelle vinnig gereed maak vir organisatoriese gebruik.

Sekuriteits oorwegings

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

{% hint style="danger" %} Sekuriteitswaarskuwing: Vereenvoudigde DEP-registrasie kan moontlik ongemagtigde toestelregistrasie op die organisasie se MDM-bediener toelaat as behoorlike beskermingsmaatreëls nie in plek is nie. {% endhint %}

Basies Wat is SCEP (Simple Certificate Enrolment Protocol)?

  • 'n Relatief ou protokol, geskep voordat TLS en HTTPS wydverspreid was.
  • Gee kliënte 'n gestandaardiseerde manier om 'n Certificate Signing Request (CSR) te stuur vir die doel om 'n sertifikaat toegeken te word. Die kliënt sal die bediener vra om hom 'n ondertekende sertifikaat te gee.

Wat is Konfigurasieprofiel (aka mobileconfigs)?

  • Apple se amptelike manier om sisteemkonfigurasie in te stel/af te dwing.
  • Lêerformaat wat verskeie vragte kan bevat.
  • Gebaseer op eienskapslyste (die XML-soort).
  • "kan onderteken en versleutel word om hul oorsprong te valideer, hul integriteit te verseker, en hul inhoud te beskerm." Basiese beginsels — Bladsy 70, iOS Security Guide, Januarie 2018.

Protokolle

MDM

  • Kombinasie van APNs (Apple-bedieners) + RESTful API (MDM-vennootskap-bedieners)
  • Kommunikasie vind plaas tussen 'n toestel en 'n bediener wat verband hou met 'n toestelbestuursproduk
  • Bevele wat van die MDM na die toestel gestuur word in plist-gekodeerde woordeboeke
  • Alles oor HTTPS. MDM-bedieners kan (en is gewoonlik) gepin.
  • Apple verleen die MDM-vennoot 'n APNs-sertifikaat vir verifikasie

DEP

  • 3 API's: 1 vir wederverkopers, 1 vir MDM-vennote, 1 vir toestelidentiteit (ondokumenteer):
  • Die sogenaamde DEP "wolkmeganisme" API. Dit word deur MDM-bedieners gebruik om DEP-profiel met spesifieke toestelle te assosieer.
  • Die DEP-API wat deur Apple Gemagtigde Wederverkopers gebruik word om toestelle in te skryf, inskrywingsstatus te kontroleer, en transaksiestatus te kontroleer.
  • Die ongedokumenteerde private DEP-API. Dit word deur Apple-toestelle gebruik om hul DEP-profiel aan te vra. Op macOS is die cloudconfigurationd-binêre lêer verantwoordelik vir die kommunikasie oor hierdie API.
  • Meer moderne en JSON-gebaseer (vs. plist)
  • Apple verleen 'n OAuth-token aan die MDM-vennoot

DEP "wolkmeganisme" API

  • RESTful
  • sink toestelrekords van Apple na die MDM-bediener
  • sink "DEP-profiel" na Apple van die MDM-bediener (deur Apple later aan die toestel gelewer)
  • 'n DEP "profiel" bevat:
  • MDM-vennoot-bediener-URL
  • Addisionele vertroude sertifikate vir bediener-URL (opsionele pinning)
  • Ekstra instellings (bv. watter skerms om oor te slaan in die Opsetassistent)

Serienommer

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

{% content-ref url="macos-serial-number.md" %} macos-serial-number.md {% endcontent-ref %}

Stappe vir inskrywing en bestuur

  1. Toestelrekord-skepping (Wederverkoper, Apple): Die rekord vir die nuwe toestel word geskep
  2. Toestelrekord-toewysing (Kliënt): Die toestel word toegewys aan 'n MDM-bediener
  3. Toestelrekord-sinkronisasie (MDM-vennoot): MDM sinkroniseer die toestelrekords en druk die DEP-profiel na Apple
  4. DEP-inloer (Toestel): Toestel kry sy DEP-profiel
  5. Profielherwinning (Toestel)
  6. Profielinstallasie (Toestel) a. insl. MDM, SCEP en stam CA-vragte
  7. MDM-beveluitreiking (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 inskrywingsproses beskou kan word.

Stap 4: DEP kontrole - Kry die Aktiveringsrekord

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

of wanneer die 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 "Opstelassistent" (wanneer die toestel vir die eerste keer opgestart word) of die profiles bevel sal hierdie daemon kontak om die aktiveringsrekord op te haal.
  • LaunchDaemon (hardloop altyd as root)

Dit volg 'n paar stappe om die Aktiveringsrekord uit te voer deur MCTeslaConfigurationFetcher. Hierdie proses gebruik 'n versleuteling genaamd Absinthe

  1. Haal die sertifikaat op
  2. KRY https://iprofiles.apple.com/resource/certificate.cer
  3. Inisialiseer toestand vanaf sertifikaat (NACInit)
  4. Gebruik verskeie toestel-spesifieke data (bv. Serienommer via IOKit)
  5. Haal die sessiesleutel op
  6. POST https://iprofiles.apple.com/session
  7. Stel die sessie op (NACKeyEstablishment)
  8. Doen die versoek
  9. POST na https://iprofiles.apple.com/macProfile deur die data te stuur { "aksie": "VersoekProfielkonfigurasie", "sn": "" }
  10. Die JSON-lading word versleutel met Absinthe (NACSign)
  11. Alle versoek is oor HTTPs, ingeboude root-sertifikate word gebruik

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

  • url: URL van die MDM-leweransier-gashuis vir die aktiveringsprofiel
  • anker-sertifikate: Reeks DER-sertifikate wat as vertroude ankers gebruik word

Stap 5: Profielopname

  • Versoek gestuur na url wat in DEP-profiel verskaf is.
  • Anker-sertifikate word gebruik om vertroue te evalueer indien verskaf.
  • Herinnering: die anker_serts eienskap van die DEP-profiel
  • Versoek is 'n eenvoudige .plist met toestelidentifikasie
  • Voorbeelde: UDID, OS-weergawe.
  • CMS-onderteken, DER-gekodeer
  • Onderteken met die toestelidentiteitsertifikaat (van APNS)
  • Sertifikaatketting sluit vervalde Apple iPhone-toestel-CA in

Stap 6: Profielinstallasie

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

Tipies sal die aktiveringsprofiel wat deur 'n MDM-leweransier voorsien word, die volgende vragte insluit:

  • com.apple.mdm: om die toestel in MDM te laat inskryf
  • com.apple.security.scep: om veilig 'n kliëntsertifikaat aan die toestel te voorsien.
  • com.apple.security.pem: om vertroude CA-sertifikate op die toestel se Stelsel Sleutelketting te installeer.
  • Die installeer van die MDM-vrag is gelykstaande aan MDM-kontrole in die dokumentasie
  • Vrag bevat sleutel eienskappe:
  • MDM Kontroleer-In URL (CheckInURL)
  • MDM Opdrag Aftoets-URL (ServerURL) + APNs-onderwerp om dit te aktiveer
  • Om die MDM-vrag te installeer, word 'n versoek gestuur na CheckInURL
  • Geïmplementeer in mdmclient
  • MDM-vrag kan afhang van ander vragte
  • Laat versoeke toe om aan spesifieke sertifikate geheg te word:
  • Eienskap: CheckInURLPinningCertificateUUIDs
  • Eienskap: ServerURLPinningCertificateUUIDs
  • Afgelewer deur PEM-vrag
  • Laat toe dat die toestel geassosieer word met 'n identiteitsertifikaat:
  • Eienskap: IdentityCertificateUUID
  • Afgelewer deur SCEP-vrag

Stap 7: Luister vir MDM-opdragte

  • Nadat MDM-kontrole voltooi is, kan die leweransier dringende kennisgewings uitreik deur APNs
  • Na ontvangs, hanteer deur mdmclient
  • Om vir MDM-opdragte te peil, word 'n versoek gestuur na ServerURL
  • Maak gebruik van voorheen geïnstalleerde MDM-vrag:
  • ServerURLPinningCertificateUUIDs vir hegting van versoek
  • IdentityCertificateUUID vir TLS-kliëntsertifikaat