macOS MDM
Last updated
Last updated
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Για να μάθετε σχετικά με τα macOS MDM, ελέγξτε:
Διαχείριση Κινητών Συσκευών (MDM) χρησιμοποιείται για την εποπτεία διαφόρων συσκευών τελικού χρήστη όπως smartphones, laptops και tablets. Ιδιαίτερα για τις πλατφόρμες της Apple (iOS, macOS, tvOS), περιλαμβάνει ένα σύνολο εξειδικευμένων χαρακτηριστικών, APIs και πρακτικών. Η λειτουργία του MDM εξαρτάται από έναν συμβατό διακομιστή MDM, ο οποίος είναι είτε εμπορικά διαθέσιμος είτε ανοιχτού κώδικα, και πρέπει να υποστηρίζει το Πρωτόκολλο MDM. Σημαντικά σημεία περιλαμβάνουν:
Κεντρικός έλεγχος των συσκευών.
Εξάρτηση από έναν διακομιστή MDM που συμμορφώνεται με το πρωτόκολλο MDM.
Ικανότητα του διακομιστή MDM να αποστέλλει διάφορες εντολές στις συσκευές, για παράδειγμα, απομακρυσμένη διαγραφή δεδομένων ή εγκατάσταση ρυθμίσεων.
Το Πρόγραμμα Εγγραφής Συσκευών (DEP) που προσφέρει η Apple απλοποιεί την ενσωμάτωση της Διαχείρισης Κινητών Συσκευών (MDM) διευκολύνοντας τη ρύθμιση χωρίς επαφή για συσκευές iOS, macOS και tvOS. Το DEP αυτοματοποιεί τη διαδικασία εγγραφής, επιτρέποντας στις συσκευές να είναι λειτουργικές αμέσως μόλις ανοίξουν, με ελάχιστη παρέμβαση από τον χρήστη ή τον διαχειριστή. Βασικά στοιχεία περιλαμβάνουν:
Επιτρέπει στις συσκευές να εγγράφονται αυτόματα σε έναν προκαθορισμένο διακομιστή MDM κατά την αρχική ενεργοποίηση.
Κυρίως ωφέλιμο για καινούργιες συσκευές, αλλά εφαρμόσιμο και για συσκευές που επαναρυθμίζονται.
Διευκολύνει μια απλή ρύθμιση, καθιστώντας τις συσκευές έτοιμες για οργανωτική χρήση γρήγορα.
Είναι κρίσιμο να σημειωθεί ότι η ευκολία εγγραφής που παρέχει το DEP, αν και ωφέλιμη, μπορεί επίσης να θέσει σε κίνδυνο την ασφάλεια. Εάν τα προστατευτικά μέτρα δεν επιβληθούν επαρκώς για την εγγραφή MDM, οι επιτιθέμενοι μπορεί να εκμεταλλευτούν αυτή τη διαδικασία για να εγγράψουν τη συσκευή τους στον διακομιστή MDM της οργάνωσης, προσποιούμενοι ότι είναι εταιρική συσκευή.
Ειδοποίηση Ασφαλείας: Η απλοποιημένη εγγραφή DEP θα μπορούσε ενδεχομένως να επιτρέψει την μη εξουσιοδοτημένη εγγραφή συσκευών στον διακομιστή MDM της οργάνωσης εάν δεν υπάρχουν κατάλληλες προστασίες.
Ένα σχετικά παλιό πρωτόκολλο, που δημιουργήθηκε πριν η TLS και η HTTPS γίνουν ευρέως διαδεδομένες.
Παρέχει στους πελάτες έναν τυποποιημένο τρόπο αποστολής ενός Αιτήματος Υπογραφής Πιστοποιητικού (CSR) με σκοπό την απόκτηση ενός πιστοποιητικού. Ο πελάτης θα ζητήσει από τον διακομιστή να του δώσει ένα υπογεγραμμένο πιστοποιητικό.
Ο επίσημος τρόπος της Apple για ρύθμιση/επιβολή συστήματος ρύθμισης.
Μορφή αρχείου που μπορεί να περιέχει πολλαπλά payloads.
Βασισμένο σε λίστες ιδιοτήτων (του XML τύπου).
“μπορεί να υπογραφεί και να κρυπτογραφηθεί για να επιβεβαιώσει την προέλευσή τους, να διασφαλίσει την ακεραιότητά τους και να προστατεύσει το περιεχόμενό τους.” Βασικά — Σελίδα 70, Οδηγός Ασφαλείας iOS, Ιανουάριος 2018.
Συνδυασμός APNs (διακομιστές Apple) + RESTful API (διακομιστές προμηθευτών MDM)
Επικοινωνία συμβαίνει μεταξύ μιας συσκευής και ενός διακομιστή που σχετίζεται με ένα προϊόν διαχείρισης συσκευών
Εντολές παραδίδονται από το MDM στη συσκευή σε λεξικά κωδικοποιημένα plist
Όλα μέσω HTTPS. Οι διακομιστές MDM μπορούν να είναι (και συνήθως είναι) pinned.
Η Apple παρέχει στον προμηθευτή MDM ένα πιστοποιητικό APNs για αυθεντικοποίηση
3 APIs: 1 για μεταπωλητές, 1 για προμηθευτές MDM, 1 για ταυτότητα συσκευής (μη τεκμηριωμένο):
Το λεγόμενο API "cloud service" DEP. Αυτό χρησιμοποιείται από τους διακομιστές MDM για να συσχετίσουν τα προφίλ DEP με συγκεκριμένες συσκευές.
Το API DEP που χρησιμοποιείται από τους Εξουσιοδοτημένους Μεταπωλητές της Apple για να εγγράψουν συσκευές, να ελέγξουν την κατάσταση εγγραφής και να ελέγξουν την κατάσταση συναλλαγής.
Το μη τεκμηριωμένο ιδιωτικό API DEP. Αυτό χρησιμοποιείται από τις Συσκευές Apple για να ζητήσουν το προφίλ DEP τους. Στο macOS, το δυαδικό cloudconfigurationd
είναι υπεύθυνο για την επικοινωνία μέσω αυτού του API.
Πιο σύγχρονο και βασισμένο σε JSON (σε σύγκριση με plist)
Η Apple παρέχει ένα OAuth token στον προμηθευτή MDM
API "cloud service" DEP
RESTful
συγχρονίζει τα αρχεία συσκευών από την Apple στον διακομιστή MDM
συγχρονίζει τα “προφίλ DEP” στην Apple από τον διακομιστή MDM (παραδίδεται από την Apple στη συσκευή αργότερα)
Ένα DEP “προφίλ” περιέχει:
URL διακομιστή προμηθευτή MDM
Πρόσθετα αξιόπιστα πιστοποιητικά για το URL διακομιστή (προαιρετική pinning)
Επιπλέον ρυθμίσεις (π.χ. ποιες οθόνες να παραλειφθούν στην Υποβοήθηση Ρύθμισης)
Οι συσκευές Apple που κατασκευάστηκαν μετά το 2010 έχουν γενικά 12-χαρακτήρων αλφαριθμητικούς αριθμούς σειράς, με τα πρώτα τρία ψηφία να αντιπροσωπεύουν την τοποθεσία κατασκευής, τα επόμενα δύο να υποδεικνύουν το έτος και την εβδομάδα κατασκευής, τα επόμενα τρία ψηφία να παρέχουν έναν μοναδικό αναγνωριστικό, και τα τελευταία τέσσερα ψηφία να αντιπροσωπεύουν τον αριθμό μοντέλου.
macOS Serial NumberΔημιουργία αρχείου συσκευής (Μεταπωλητής, Apple): Το αρχείο για τη νέα συσκευή δημιουργείται
Ανάθεση αρχείου συσκευής (Πελάτης): Η συσκευή ανατίθεται σε έναν διακομιστή MDM
Συγχρονισμός αρχείου συσκευής (Προμηθευτής MDM): Ο MDM συγχρονίζει τα αρχεία συσκευών και σπρώχνει τα προφίλ DEP στην Apple
Έλεγχος DEP (Συσκευή): Η συσκευή αποκτά το προφίλ DEP της
Ανάκτηση προφίλ (Συσκευή)
Εγκατάσταση προφίλ (Συσκευή) α. συμπεριλαμβανομένων των payloads MDM, SCEP και root CA
Έκδοση εντολής MDM (Συσκευή)
Το αρχείο /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/PrivateFrameworks/ConfigurationProfiles.framework/ConfigurationProfiles.tbd
εξάγει λειτουργίες που μπορούν να θεωρηθούν υψηλού επιπέδου "βήματα" της διαδικασίας εγγραφής.
Αυτό το μέρος της διαδικασίας συμβαίνει όταν ένας χρήστης εκκινεί ένα Mac για πρώτη φορά (ή μετά από πλήρη διαγραφή)
ή όταν εκτελείται sudo profiles show -type enrollment
Καθορίστε αν η συσκευή είναι ενεργοποιημένη για DEP
Το Αρχείο Ενεργοποίησης είναι το εσωτερικό όνομα για το DEP “προφίλ”
Ξεκινά μόλις η συσκευή συνδεθεί στο Διαδίκτυο
Οδηγείται από CPFetchActivationRecord
Υλοποιείται από cloudconfigurationd
μέσω XPC. Ο "Υποβοηθός Ρύθμισης" (όταν η συσκευή εκκινείται για πρώτη φορά) ή η εντολή profiles
θα επικοινωνήσει με αυτόν τον δαίμονα για να ανακτήσει το αρχείο ενεργοποίησης.
LaunchDaemon (τρέχει πάντα ως root)
Ακολουθεί μερικά βήματα για να αποκτήσει το Αρχείο Ενεργοποίησης που εκτελείται από MCTeslaConfigurationFetcher
. Αυτή η διαδικασία χρησιμοποιεί μια κρυπτογράφηση που ονομάζεται Absinthe
Ανάκτηση πιστοποιητικού
Αρχικοποίηση κατάστασης από το πιστοποιητικό (NACInit
)
Χρησιμοποιεί διάφορα δεδομένα που σχετίζονται με τη συσκευή (δηλαδή Αριθμός Σειράς μέσω IOKit
)
Ανάκτηση κλειδιού συνεδρίας
Δημιουργία της συνεδρίας (NACKeyEstablishment
)
Υποβολή αιτήματος
POST στο https://iprofiles.apple.com/macProfile στέλνοντας τα δεδομένα { "action": "RequestProfileConfiguration", "sn": "" }
Το payload JSON κρυπτογραφείται χρησιμοποιώντας Absinthe (NACSign
)
Όλα τα αιτήματα μέσω HTTPs, χρησιμοποιούνται ενσωματωμένα root πιστοποιητικά
Η απάντηση είναι ένα λεξικό JSON με ορισμένα σημαντικά δεδομένα όπως:
url: URL του διακομιστή προμηθευτή MDM για το προφίλ ενεργοποίησης
anchor-certs: Πίνακας DER πιστοποιητικών που χρησιμοποιούνται ως αξιόπιστοι σύνδεσμοι
Αίτημα που αποστέλλεται στο url που παρέχεται στο προφίλ DEP.
Πιστοποιητικά σύνδεσης χρησιμοποιούνται για αξιολόγηση εμπιστοσύνης εάν παρέχονται.
Υπενθύμιση: η ιδιότητα anchor_certs του προφίλ DEP
Το αίτημα είναι ένα απλό .plist με αναγνώριση συσκευής
Παραδείγματα: UDID, έκδοση OS.
CMS-υπογεγραμμένο, DER-κωδικοποιημένο
Υπογεγραμμένο χρησιμοποιώντας το πιστοποιητικό ταυτότητας συσκευής (από APNS)
Η αλυσίδα πιστοποιητικών περιλαμβάνει ληγμένο Apple iPhone Device CA
Μόλις ανακτηθεί, το προφίλ αποθηκεύεται στο σύστημα
Αυτό το βήμα ξεκινά αυτόματα (εάν είναι στον υποβοηθό ρύθμισης)
Οδηγείται από CPInstallActivationProfile
Υλοποιείται από το mdmclient μέσω XPC
LaunchDaemon (ως root) ή LaunchAgent (ως χρήστης), ανάλογα με το πλαίσιο
Τα προφίλ ρύθμισης έχουν πολλαπλά payloads προς εγκατάσταση
Το πλαίσιο έχει αρχιτεκτονική βασισμένη σε plugins για την εγκατάσταση προφίλ
Κάθε τύπος payload σχετίζεται με ένα plugin
Μπορεί να είναι XPC (στο πλαίσιο) ή κλασικό Cocoa (στο ManagedClient.app)
Παράδειγμα:
Τα Payloads Πιστοποιητικών χρησιμοποιούν CertificateService.xpc
Συνήθως, το προφίλ ενεργοποίησης που παρέχεται από έναν προμηθευτή MDM θα περιλαμβάνει τα εξής payloads:
com.apple.mdm
: για εγγραφή της συσκευής στο MDM
com.apple.security.scep
: για την ασφαλή παροχή ενός πιστοποιητικού πελάτη στη συσκευή.
com.apple.security.pem
: για εγκατάσταση αξιόπιστων πιστοποιητικών CA στην Κλειδαριά Συστήματος της συσκευής.
Η εγκατάσταση του payload MDM ισοδυναμεί με έλεγχο MDM στην τεκμηρίωση
Το payload περιέχει βασικές ιδιότητες:
URL Ελέγχου MDM (CheckInURL
)
URL Πολυμέσων Εντολών MDM (ServerURL
) + θέμα APNs για την ενεργοποίησή του
Για να εγκαταστήσετε το payload MDM, το αίτημα αποστέλλεται στο CheckInURL
Υλοποιείται στο mdmclient
Το payload MDM μπορεί να εξαρτάται από άλλα payloads
Επιτρέπει αιτήματα να είναι pinned σε συγκεκριμένα πιστοποιητικά:
Ιδιότητα: CheckInURLPinningCertificateUUIDs
Ιδιότητα: ServerURLPinningCertificateUUIDs
Παρέχεται μέσω payload PEM
Επιτρέπει στη συσκευή να αποδοθεί με ένα πιστοποιητικό ταυτότητας:
Ιδιότητα: IdentityCertificateUUID
Παρέχεται μέσω payload SCEP
Μετά την ολοκλήρωση του ελέγχου MDM, ο προμηθευτής μπορεί να εκδώσει ειδοποιήσεις push χρησιμοποιώντας APNs
Κατά την παραλαβή, διαχειρίζεται από το mdmclient
Για να ελέγξει τις εντολές MDM, το αίτημα αποστέλλεται στο ServerURL
Χρησιμοποιεί το προηγουμένως εγκατεστημένο payload MDM:
ServerURLPinningCertificateUUIDs
για pinning του αιτήματος
IdentityCertificateUUID
για το πιστοποιητικό πελάτη TLS
Όπως έχει σχολιαστεί προηγουμένως, για να προσπαθήσετε να εγγράψετε μια συσκευή σε μια οργάνωση χρειάζεται μόνο ένας Αριθμός Σειράς που ανήκει σε αυτή την Οργάνωση. Μόλις η συσκευή εγγραφεί, πολλές οργανώσεις θα εγκαταστήσουν ευαίσθητα δεδομένα στη νέα συσκευή: πιστοποιητικά, εφαρμογές, κωδικούς πρόσβασης WiFi, ρυθμίσεις VPN και ούτω καθεξής. Επομένως, αυτό θα μπορούσε να είναι ένα επικίνδυνο σημείο εισόδου για τους επιτιθέμενους εάν η διαδικασία εγγραφής δεν προστατεύεται σωστά:
Enrolling Devices in Other OrganisationsΜάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)