macOS MDM
Reading time: 11 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
macOS MDM के बारे में जानने के लिए देखें:
मूल बातें
MDM (मोबाइल डिवाइस प्रबंधन) अवलोकन
मोबाइल डिवाइस प्रबंधन (MDM) का उपयोग विभिन्न अंतिम उपयोगकर्ता उपकरणों जैसे स्मार्टफोन, लैपटॉप और टैबलेट की निगरानी के लिए किया जाता है। विशेष रूप से Apple के प्लेटफार्मों (iOS, macOS, tvOS) के लिए, इसमें विशेष सुविधाओं, APIs और प्रथाओं का एक सेट शामिल है। MDM का संचालन एक संगत MDM सर्वर पर निर्भर करता है, जो या तो व्यावसायिक रूप से उपलब्ध है या ओपन-सोर्स है, और इसे MDM प्रोटोकॉल का समर्थन करना चाहिए। मुख्य बिंदुओं में शामिल हैं:
- उपकरणों पर केंद्रीकृत नियंत्रण।
- MDM प्रोटोकॉल का पालन करने वाले MDM सर्वर पर निर्भरता।
- MDM सर्वर की क्षमता विभिन्न आदेशों को उपकरणों पर भेजने की, जैसे कि दूरस्थ डेटा मिटाना या कॉन्फ़िगरेशन स्थापित करना।
DEP (डिवाइस नामांकन कार्यक्रम) की मूल बातें
Apple द्वारा प्रदान किया गया डिवाइस नामांकन कार्यक्रम (DEP) मोबाइल डिवाइस प्रबंधन (MDM) के एकीकरण को सरल बनाता है, जिससे iOS, macOS और tvOS उपकरणों के लिए शून्य-टच कॉन्फ़िगरेशन की सुविधा मिलती है। DEP नामांकन प्रक्रिया को स्वचालित करता है, जिससे उपकरण बॉक्स से बाहर सीधे कार्यशील हो जाते हैं, जिसमें न्यूनतम उपयोगकर्ता या प्रशासनिक हस्तक्षेप होता है। आवश्यक पहलुओं में शामिल हैं:
- उपकरणों को प्रारंभिक सक्रियण पर पूर्व-परिभाषित MDM सर्वर के साथ स्वायत्त रूप से पंजीकरण करने की अनुमति देता है।
- मुख्य रूप से नए उपकरणों के लिए फायदेमंद, लेकिन पुनः कॉन्फ़िगरेशन कर रहे उपकरणों के लिए भी लागू होता है।
- एक सरल सेटअप की सुविधा देता है, जिससे उपकरणों को जल्दी से संगठनात्मक उपयोग के लिए तैयार किया जा सके।
सुरक्षा पर विचार
यह ध्यान रखना महत्वपूर्ण है कि DEP द्वारा प्रदान की गई नामांकन की आसानी, जबकि फायदेमंद है, सुरक्षा जोखिम भी पैदा कर सकती है। यदि MDM नामांकन के लिए सुरक्षा उपायों को उचित रूप से लागू नहीं किया गया है, तो हमलावर इस सरल प्रक्रिया का लाभ उठाकर अपने उपकरण को संगठन के MDM सर्वर पर पंजीकृत कर सकते हैं, जो एक कॉर्पोरेट उपकरण के रूप में प्रकट होता है।
caution
सुरक्षा चेतावनी: सरल DEP नामांकन उचित सुरक्षा उपायों के बिना संगठन के MDM सर्वर पर अनधिकृत उपकरण पंजीकरण की अनुमति दे सकता है।
मूल बातें SCEP (सादा प्रमाणपत्र नामांकन प्रोटोकॉल) क्या है?
- एक अपेक्षाकृत पुराना प्रोटोकॉल, जो TLS और HTTPS के व्यापक होने से पहले बनाया गया था।
- ग्राहकों को एक मानकीकृत तरीके से प्रमाणपत्र हस्ताक्षर अनुरोध (CSR) भेजने की अनुमति देता है ताकि उन्हें एक प्रमाणपत्र दिया जा सके। ग्राहक सर्वर से एक हस्ताक्षरित प्रमाणपत्र देने के लिए कहेगा।
कॉन्फ़िगरेशन प्रोफाइल (जिसे मोबाइलकॉन्फ़िग्स भी कहा जाता है) क्या हैं?
- Apple का आधिकारिक तरीका सिस्टम कॉन्फ़िगरेशन सेट करने/लागू करने का।
- फ़ाइल प्रारूप जिसमें कई पेलोड हो सकते हैं।
- प्रॉपर्टी सूचियों (XML प्रकार) पर आधारित।
- “इनकी उत्पत्ति को मान्य करने, उनकी अखंडता सुनिश्चित करने और उनके सामग्री की सुरक्षा के लिए हस्ताक्षरित और एन्क्रिप्ट किया जा सकता है।” मूल बातें — पृष्ठ 70, iOS सुरक्षा गाइड, जनवरी 2018।
प्रोटोकॉल
MDM
- APNs (Apple सर्वर)+ RESTful API (MDM विक्रेता सर्वर) का संयोजन
- संचार एक उपकरण और एक सर्वर के बीच होता है जो एक उपकरण प्रबंधन उत्पाद से संबंधित है
- आदेश MDM से उपकरण पर plist-encoded dictionaries में भेजे जाते हैं
- सभी HTTPS पर। MDM सर्वर को (और आमतौर पर) पिन किया जा सकता है।
- Apple MDM विक्रेता को प्रमाणीकरण के लिए एक APNs प्रमाणपत्र प्रदान करता है
DEP
- 3 APIs: 1 पुनर्विक्रेताओं के लिए, 1 MDM विक्रेताओं के लिए, 1 उपकरण पहचान के लिए (अविवृत):
- तथाकथित DEP "क्लाउड सेवा" API। इसका उपयोग MDM सर्वरों द्वारा DEP प्रोफाइल को विशिष्ट उपकरणों के साथ जोड़ने के लिए किया जाता है।
- DEP API जिसका उपयोग Apple अधिकृत पुनर्विक्रेताओं द्वारा किया जाता है उपकरणों को नामांकित करने, नामांकन स्थिति की जांच करने और लेनदेन की स्थिति की जांच करने के लिए।
- अविवृत निजी DEP API। इसका उपयोग Apple उपकरणों द्वारा उनके DEP प्रोफाइल का अनुरोध करने के लिए किया जाता है। macOS पर,
cloudconfigurationd
बाइनरी इस API के माध्यम से संचार करने के लिए जिम्मेदार है। - अधिक आधुनिक और JSON आधारित (विपरीत plist)
- Apple MDM विक्रेता को एक OAuth टोकन प्रदान करता है
DEP "क्लाउड सेवा" API
- RESTful
- Apple से MDM सर्वर पर उपकरण रिकॉर्ड को समन्वयित करें
- MDM सर्वर से Apple के लिए “DEP प्रोफाइल” को समन्वयित करें (बाद में उपकरण को Apple द्वारा वितरित किया गया)
- एक DEP “प्रोफाइल” में शामिल हैं:
- MDM विक्रेता सर्वर URL
- सर्वर URL के लिए अतिरिक्त विश्वसनीय प्रमाणपत्र (वैकल्पिक पिनिंग)
- अतिरिक्त सेटिंग्स (जैसे, सेटअप सहायक में कौन से स्क्रीन छोड़ने हैं)
सीरियल नंबर
2010 के बाद निर्मित Apple उपकरणों में सामान्यतः 12-चर अल्फ़ान्यूमेरिक सीरियल नंबर होते हैं, जिनमें पहले तीन अंक निर्माण स्थान का प्रतिनिधित्व करते हैं, इसके बाद के दो वर्ष और सप्ताह का संकेत देते हैं, अगले तीन अंक एक विशिष्ट पहचानकर्ता प्रदान करते हैं, और अंतिम चार अंक मॉडल नंबर का प्रतिनिधित्व करते हैं।
नामांकन और प्रबंधन के लिए कदम
- उपकरण रिकॉर्ड निर्माण (पुनर्विक्रेता, Apple): नए उपकरण का रिकॉर्ड बनाया जाता है
- उपकरण रिकॉर्ड असाइनमेंट (ग्राहक): उपकरण को एक MDM सर्वर को सौंपा जाता है
- उपकरण रिकॉर्ड समन्वय (MDM विक्रेता): MDM उपकरण रिकॉर्ड को समन्वयित करता है और DEP प्रोफाइल को Apple पर धकेलता है
- DEP चेक-इन (उपकरण): उपकरण को उसका DEP प्रोफाइल मिलता है
- प्रोफाइल पुनर्प्राप्ति (उपकरण)
- प्रोफाइल स्थापना (उपकरण) a. MDM, SCEP और रूट CA पेलोड सहित
- MDM आदेश जारी करना (उपकरण)
फ़ाइल /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/PrivateFrameworks/ConfigurationProfiles.framework/ConfigurationProfiles.tbd
उन कार्यों को निर्यात करती है जिन्हें नामांकन प्रक्रिया के "उच्च-स्तरीय कदम" के रूप में माना जा सकता है।
कदम 4: DEP चेक-इन - सक्रियण रिकॉर्ड प्राप्त करना
यह प्रक्रिया तब होती है जब एक उपयोगकर्ता पहली बार Mac बूट करता है (या एक पूर्ण वाइप के बाद)
या जब sudo profiles show -type enrollment
निष्पादित किया जाता है
- यह निर्धारित करें कि उपकरण DEP सक्षम है या नहीं
- सक्रियण रिकॉर्ड DEP “प्रोफाइल” के लिए आंतरिक नाम है
- जैसे ही उपकरण इंटरनेट से जुड़ता है, यह शुरू होता है
CPFetchActivationRecord
द्वारा संचालितcloudconfigurationd
द्वारा XPC के माध्यम से लागू किया गया। "सेटअप सहायक" (जब उपकरण पहली बार बूट होता है) याprofiles
कमांड इस डेमन से सक्रियण रिकॉर्ड प्राप्त करने के लिए संपर्क करेगा।- LaunchDaemon (हमेशा रूट के रूप में चलता है)
यह MCTeslaConfigurationFetcher
द्वारा सक्रियण रिकॉर्ड प्राप्त करने के लिए कुछ कदम उठाता है। यह प्रक्रिया Absinthe नामक एन्क्रिप्शन का उपयोग करती है
- प्रमाणपत्र प्राप्त करें
- GET https://iprofiles.apple.com/resource/certificate.cer
- प्रमाणपत्र से स्थिति
NACInit
प्रारंभ करें - विभिन्न उपकरण-विशिष्ट डेटा का उपयोग करता है (जैसे सीरियल नंबर
IOKit
के माध्यम से) - सत्र कुंजी प्राप्त करें
- POST https://iprofiles.apple.com/session
- सत्र स्थापित करें (
NACKeyEstablishment
) - अनुरोध करें
- POST https://iprofiles.apple.com/macProfile को डेटा
{ "action": "RequestProfileConfiguration", "sn": "" }
भेजते हुए - JSON पेलोड को Absinthe (
NACSign
) का उपयोग करके एन्क्रिप्ट किया गया है - सभी अनुरोध HTTPs पर, अंतर्निहित रूट प्रमाणपत्रों का उपयोग किया जाता है
प्रतिक्रिया एक JSON शब्दकोश है जिसमें कुछ महत्वपूर्ण डेटा जैसे:
- url: सक्रियण प्रोफाइल के लिए MDM विक्रेता होस्ट का URL
- anchor-certs: DER प्रमाणपत्रों की एक सूची जो विश्वसनीय एंकर के रूप में उपयोग की जाती है
कदम 5: प्रोफाइल पुनर्प्राप्ति
- DEP प्रोफाइल में प्रदान किए गए URL पर अनुरोध भेजा गया।
- एंकर प्रमाणपत्रों का उपयोग विश्वास का मूल्यांकन करने के लिए किया जाता है यदि प्रदान किया गया हो।
- अनुस्मारक: DEP प्रोफाइल की anchor_certs प्रॉपर्टी
- अनुरोध एक साधारण .plist है जिसमें उपकरण की पहचान होती है
- उदाहरण: UDID, OS संस्करण।
- CMS-हस्ताक्षरित, DER-कोडित
- उपकरण पहचान प्रमाणपत्र (APNS से) का उपयोग करके हस्ताक्षरित
- प्रमाणपत्र श्रृंखला में समाप्त Apple iPhone Device CA शामिल है
कदम 6: प्रोफाइल स्थापना
- एक बार पुनर्प्राप्त होने के बाद, प्रोफाइल सिस्टम पर संग्रहीत किया जाता है
- यह कदम स्वचालित रूप से शुरू होता है (यदि सेटअप सहायक में)
CPInstallActivationProfile
द्वारा संचालित- XPC के माध्यम से mdmclient द्वारा लागू किया गया
- LaunchDaemon (रूट के रूप में) या LaunchAgent (उपयोगकर्ता के रूप में), संदर्भ के आधार पर
- कॉन्फ़िगरेशन प्रोफाइल में स्थापित करने के लिए कई पेलोड होते हैं
- ढांचा प्रोफाइल स्थापित करने के लिए प्लगइन-आधारित आर्किटेक्चर है
- प्रत्येक पेलोड प्रकार एक प्लगइन से संबंधित होता है
- यह XPC (ढांचे में) या क्लासिक कोको (ManagedClient.app में) हो सकता है
- उदाहरण:
- प्रमाणपत्र पेलोड प्रमाणपत्र सेवा का उपयोग करते हैं।
आमतौर पर, एक MDM विक्रेता द्वारा प्रदान किया गया सक्रियण प्रोफाइल निम्नलिखित पेलोड शामिल करेगा:
com.apple.mdm
: उपकरण को MDM में नामांकित करने के लिएcom.apple.security.scep
: उपकरण को एक क्लाइंट प्रमाणपत्र सुरक्षित रूप से प्रदान करने के लिए।com.apple.security.pem
: उपकरण के सिस्टम कीचेन में विश्वसनीय CA प्रमाणपत्र स्थापित करने के लिए।- MDM पेलोड स्थापित करना दस्तावेज़ में MDM चेक-इन के बराबर है
- पेलोड में मुख्य प्रॉपर्टीज शामिल हैं:
-
- MDM चेक-इन URL (
CheckInURL
)
- MDM चेक-इन URL (
- MDM आदेश पोलिंग URL (
ServerURL
) + इसे ट्रिगर करने के लिए APNs विषय - MDM पेलोड स्थापित करने के लिए,
CheckInURL
पर अनुरोध भेजा जाता है mdmclient
में लागू किया गया- MDM पेलोड अन्य पेलोड पर निर्भर कर सकता है
- विशिष्ट प्रमाणपत्रों के लिए अनुरोधों को पिन करने की अनुमति देता है:
- प्रॉपर्टी:
CheckInURLPinningCertificateUUIDs
- प्रॉपर्टी:
ServerURLPinningCertificateUUIDs
- PEM पेलोड के माध्यम से वितरित किया गया
- उपकरण को एक पहचान प्रमाणपत्र के साथ श्रेणीबद्ध करने की अनुमति देता है:
- प्रॉपर्टी: IdentityCertificateUUID
- SCEP पेलोड के माध्यम से वितरित किया गया
कदम 7: MDM आदेशों के लिए सुनना
- MDM चेक-इन पूरा होने के बाद, विक्रेता APNs का उपयोग करके पुश सूचनाएं जारी कर सकता है
- प्राप्ति पर,
mdmclient
द्वारा संभाला जाता है - MDM आदेशों के लिए पोलिंग करने के लिए, ServerURL पर अनुरोध भेजा जाता है
- पहले से स्थापित MDM पेलोड का उपयोग करता है:
ServerURLPinningCertificateUUIDs
अनुरोध के लिए पिनिंग के लिएIdentityCertificateUUID
TLS क्लाइंट प्रमाणपत्र के लिए
हमले
अन्य संगठनों में उपकरणों का नामांकन
जैसा कि पहले टिप्पणी की गई थी, एक उपकरण को एक संगठन में नामांकित करने के लिए केवल उस संगठन का एक सीरियल नंबर आवश्यक है। एक बार जब उपकरण नामांकित हो जाता है, तो कई संगठन नए उपकरण पर संवेदनशील डेटा स्थापित करेंगे: प्रमाणपत्र, अनुप्रयोग, WiFi पासवर्ड, VPN कॉन्फ़िगरेशन और इसी तरह।
इसलिए, यदि नामांकन प्रक्रिया को सही तरीके से सुरक्षित नहीं किया गया है, तो यह हमलावरों के लिए एक खतरनाक प्रवेश बिंदु हो सकता है:
Enrolling Devices in Other Organisations
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।