macOS Red Teaming
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
JAMF Pro: jamf checkJSSConnection
Kandji
यदि आप प्रबंधन प्लेटफ़ॉर्म तक पहुँचने के लिए व्यवस्थापक क्रेडेंशियल्स से समझौता करने में सफल होते हैं, तो आप मशीनों में अपने मैलवेयर को वितरित करके सभी कंप्यूटरों से समझौता कर सकते हैं।
MacOS वातावरण में रेड टीमिंग के लिए MDMs के काम करने के तरीके की कुछ समझ होना अत्यधिक अनुशंसित है:
एक MDM के पास प्रोफाइल स्थापित करने, क्वेरी करने या हटाने, एप्लिकेशन स्थापित करने, स्थानीय व्यवस्थापक खाते बनाने, फर्मवेयर पासवर्ड सेट करने, FileVault कुंजी बदलने की अनुमति होगी...
अपने स्वयं के MDM को चलाने के लिए आपको अपने CSR को एक विक्रेता द्वारा हस्ताक्षरित कराना होगा, जिसे आप https://mdmcert.download/ के साथ प्राप्त करने का प्रयास कर सकते हैं। और Apple उपकरणों के लिए अपने स्वयं के MDM को चलाने के लिए आप MicroMDM का उपयोग कर सकते हैं।
हालांकि, एक नामांकित उपकरण में एप्लिकेशन स्थापित करने के लिए, आपको इसे एक डेवलपर खाते द्वारा हस्ताक्षरित करने की आवश्यकता है... हालाँकि, MDM नामांकन के दौरान उपकरण MDM के SSL प्रमाणपत्र को एक विश्वसनीय CA के रूप में जोड़ता है, इसलिए आप अब कुछ भी हस्ताक्षरित कर सकते हैं।
उपकरण को MDM में नामांकित करने के लिए, आपको एक mobileconfig
फ़ाइल को रूट के रूप में स्थापित करना होगा, जिसे एक pkg फ़ाइल के माध्यम से वितरित किया जा सकता है (आप इसे ज़िप में संकुचित कर सकते हैं और जब इसे सफारी से डाउनलोड किया जाएगा तो यह अनजिप हो जाएगा)।
Mythic एजेंट Orthrus इस तकनीक का उपयोग करता है।
JAMF कस्टम स्क्रिप्ट (सिस्टम प्रशासक द्वारा विकसित स्क्रिप्ट), स्थानीय पेलोड (स्थानीय खाता निर्माण, EFI पासवर्ड सेट करना, फ़ाइल/प्रक्रिया निगरानी...) और MDM (उपकरण कॉन्फ़िगरेशन, उपकरण प्रमाणपत्र...) चला सकता है।
जांचें कि क्या उनके पास स्व-नामांकन सक्षम है, इसके लिए https://<company-name>.jamfcloud.com/enroll/
जैसे पृष्ठ पर जाएं। यदि उनके पास है, तो यह पहुँचने के लिए क्रेडेंशियल्स मांग सकता है।
आप पासवर्ड स्प्रेइंग हमले को करने के लिए स्क्रिप्ट JamfSniper.py का उपयोग कर सकते हैं।
इसके अलावा, उचित क्रेडेंशियल्स खोजने के बाद, आप अगले फॉर्म के साथ अन्य उपयोगकर्ता नामों को ब्रूट-फोर्स करने में सक्षम हो सकते हैं:
jamf
बाइनरी में कीचेन को खोलने का रहस्य था जो खोज के समय सभी के बीच साझा था और यह था: jk23ucnq91jfu9aj
।
इसके अलावा, jamf /Library/LaunchAgents/com.jamf.management.agent.plist
में LaunchDaemon के रूप में स्थायी रहता है।
JSS (Jamf सॉफ़्टवेयर सर्वर) URL जो jamf
उपयोग करेगा, वह /Library/Preferences/com.jamfsoftware.jamf.plist
में स्थित है।
यह फ़ाइल मूल रूप से URL को समाहित करती है:
तो, एक हमलावर एक दुर्भावनापूर्ण पैकेज (pkg
) छोड़ सकता है जो स्थापित होने पर इस फ़ाइल को अधिलेखित करता है और URL को एक Mythic C2 श्रोता से Typhon एजेंट के रूप में सेट करता है ताकि अब JAMF का दुरुपयोग C2 के रूप में किया जा सके।
एक डिवाइस और JMF के बीच धोखाधड़ी करने के लिए आपको आवश्यकता है:
डिवाइस का UUID: ioreg -d2 -c IOPlatformExpertDevice | awk -F" '/IOPlatformUUID/{print $(NF-1)}'
JAMF कीचेन: /Library/Application\ Support/Jamf/JAMF.keychain
जिसमें डिवाइस प्रमाणपत्र होता है
इस जानकारी के साथ, एक VM बनाएं जिसमें चुराया गया हार्डवेयर UUID हो और SIP अक्षम हो, JAMF कीचेन डालें, जाम्फ एजेंट को हुक करें और इसकी जानकारी चुराएं।
आप /Library/Application Support/Jamf/tmp/
स्थान की निगरानी भी कर सकते हैं जहाँ कस्टम स्क्रिप्ट हो सकती हैं जिन्हें व्यवस्थापक Jamf के माध्यम से निष्पादित करना चाहते हैं क्योंकि ये यहाँ रखी जाती हैं, निष्पादित की जाती हैं और हटा दी जाती हैं। ये स्क्रिप्ट प्रमाण पत्र हो सकते हैं।
हालांकि, प्रमाण पत्र इन स्क्रिप्टों में पैरामीटर के रूप में पास किए जा सकते हैं, इसलिए आपको ps aux | grep -i jamf
की निगरानी करने की आवश्यकता होगी (बिना रूट बने)।
स्क्रिप्ट JamfExplorer.py नए फ़ाइलों को जोड़े जाने और नए प्रक्रिया तर्कों के लिए सुन सकती है।
और MacOS "विशेष" नेटवर्क प्रोटोकॉल के बारे में:
कुछ अवसरों पर आप पाएंगे कि MacOS कंप्यूटर एक AD से जुड़ा हुआ है। इस परिदृश्य में, आपको सक्रिय निर्देशिका को गणना करने का प्रयास करना चाहिए जैसा कि आप इसके लिए उपयोग करते हैं। निम्नलिखित पृष्ठों में कुछ सहायता प्राप्त करें:
कुछ स्थानीय MacOS उपकरण जो आपकी मदद कर सकते हैं वह है dscl
:
Also there are some tools prepared for MacOS to automatically enumerate the AD and play with kerberos:
Machound: MacHound एक Bloodhound ऑडिटिंग टूल का एक्सटेंशन है जो MacOS होस्ट पर Active Directory संबंधों को इकट्ठा करने और ग्रहण करने की अनुमति देता है।
Bifrost: Bifrost एक Objective-C प्रोजेक्ट है जिसे macOS पर Heimdal krb5 APIs के साथ इंटरैक्ट करने के लिए डिज़ाइन किया गया है। इस प्रोजेक्ट का लक्ष्य macOS उपकरणों पर Kerberos के चारों ओर बेहतर सुरक्षा परीक्षण सक्षम करना है, जो कि किसी अन्य फ्रेमवर्क या पैकेज की आवश्यकता के बिना मूल APIs का उपयोग करता है।
Orchard: Active Directory एन्यूमरेशन करने के लिए Automation (JXA) टूल।
MacOS उपयोगकर्ताओं के तीन प्रकार हैं:
स्थानीय उपयोगकर्ता — स्थानीय OpenDirectory सेवा द्वारा प्रबंधित, ये किसी भी तरह से Active Directory से जुड़े नहीं हैं।
नेटवर्क उपयोगकर्ता — अस्थायी Active Directory उपयोगकर्ता जिन्हें प्रमाणीकरण के लिए DC सर्वर से कनेक्शन की आवश्यकता होती है।
मोबाइल उपयोगकर्ता — Active Directory उपयोगकर्ता जिनके पास उनके क्रेडेंशियल्स और फ़ाइलों का स्थानीय बैकअप होता है।
उपयोगकर्ताओं और समूहों के बारे में स्थानीय जानकारी फ़ोल्डर /var/db/dslocal/nodes/Default. में संग्रहीत होती है। उदाहरण के लिए, mark नाम के उपयोगकर्ता की जानकारी /var/db/dslocal/nodes/Default/users/mark.plist में संग्रहीत होती है और समूह admin की जानकारी /var/db/dslocal/nodes/Default/groups/admin.plist में होती है।
HasSession और AdminTo किनारों का उपयोग करने के अलावा, MacHound Bloodhound डेटाबेस में तीन नए किनारे जोड़ता है:
CanSSH - इकाई को होस्ट पर SSH करने की अनुमति है
CanVNC - इकाई को होस्ट पर VNC करने की अनुमति है
CanAE - इकाई को होस्ट पर AppleEvent स्क्रिप्ट निष्पादित करने की अनुमति है
अधिक जानकारी के लिए https://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/
पासवर्ड प्राप्त करने के लिए:
यह Computer$
पासवर्ड को सिस्टम कीचेन के अंदर एक्सेस करना संभव है।
एक विशिष्ट उपयोगकर्ता और सेवा के लिए TGT प्राप्त करें:
एक बार TGT इकट्ठा हो जाने के बाद, इसे वर्तमान सत्र में इंजेक्ट करना संभव है:
प्राप्त सेवा टिकटों के साथ अन्य कंप्यूटरों में शेयरों तक पहुँचने की कोशिश करना संभव है:
Keychain में संवेदनशील जानकारी हो सकती है जो बिना प्रॉम्प्ट उत्पन्न किए पहुँचने पर एक रेड टीम अभ्यास को आगे बढ़ाने में मदद कर सकती है:
MacOS रेड टीमिंग सामान्य Windows रेड टीमिंग से अलग है क्योंकि आमतौर पर MacOS कई बाहरी प्लेटफार्मों के साथ सीधे एकीकृत होता है। MacOS की एक सामान्य कॉन्फ़िगरेशन है OneLogin समन्वयित क्रेडेंशियल्स का उपयोग करके कंप्यूटर तक पहुँच प्राप्त करना, और OneLogin के माध्यम से कई बाहरी सेवाओं (जैसे github, aws...) तक पहुँच प्राप्त करना।
जब सफारी में एक फ़ाइल डाउनलोड की जाती है, यदि यह एक "सुरक्षित" फ़ाइल है, तो यह स्वतः खोली जाएगी। तो उदाहरण के लिए, यदि आप एक ज़िप डाउनलोड करते हैं, तो यह स्वचालित रूप से अनज़िप हो जाएगी:
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)