macOS सुरक्षा सुरक्षा

Reading time: 7 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें

गेटकीपर

गेटकीपर आमतौर पर Quarantine + Gatekeeper + XProtect के संयोजन को संदर्भित करने के लिए उपयोग किया जाता है, जो 3 macOS सुरक्षा मॉड्यूल हैं जो उपयोगकर्ताओं को संभावित रूप से दुर्भावनापूर्ण सॉफ़्टवेयर डाउनलोड करने से रोकने की कोशिश करेंगे

अधिक जानकारी के लिए:

macOS Gatekeeper / Quarantine / XProtect

प्रक्रियाओं की सीमाएँ

MACF

SIP - सिस्टम इंटीग्रिटी प्रोटेक्शन

macOS SIP

सैंडबॉक्स

MacOS सैंडबॉक्स सैंडबॉक्स के अंदर चलने वाले अनुप्रयोगों को सैंडबॉक्स प्रोफ़ाइल में निर्दिष्ट अनुमत क्रियाओं तक सीमित करता है जिसके साथ ऐप चल रहा है। यह सुनिश्चित करने में मदद करता है कि अनुप्रयोग केवल अपेक्षित संसाधनों तक पहुँच रहा है

macOS Sandbox

TCC - पारदर्शिता, सहमति, और नियंत्रण

TCC (पारदर्शिता, सहमति, और नियंत्रण) एक सुरक्षा ढांचा है। यह अनुप्रयोगों के अनुमतियों का प्रबंधन करने के लिए डिज़ाइन किया गया है, विशेष रूप से संवेदनशील सुविधाओं तक उनकी पहुँच को विनियमित करके। इसमें स्थान सेवाएँ, संपर्क, फ़ोटो, माइक्रोफ़ोन, कैमरा, पहुँच, और पूर्ण डिस्क पहुँच जैसी तत्व शामिल हैं। TCC सुनिश्चित करता है कि ऐप्स केवल स्पष्ट उपयोगकर्ता सहमति प्राप्त करने के बाद इन सुविधाओं तक पहुँच सकते हैं, इस प्रकार व्यक्तिगत डेटा पर गोपनीयता और नियंत्रण को बढ़ाता है।

macOS TCC

लॉन्च/पर्यावरण प्रतिबंध और ट्रस्ट कैश

macOS में लॉन्च प्रतिबंध एक सुरक्षा विशेषता है जो प्रक्रिया प्रारंभ को विनियमित करती है, यह परिभाषित करके कि कौन प्रक्रिया लॉन्च कर सकता है, कैसे, और कहाँ से। macOS वेंचुरा में पेश किया गया, यह सिस्टम बाइनरीज़ को ट्रस्ट कैश के भीतर प्रतिबंध श्रेणियों में वर्गीकृत करता है। प्रत्येक निष्पादन योग्य बाइनरी के लिए इसके लॉन्च के लिए नियम सेट होते हैं, जिसमें स्वयं, माता-पिता, और जिम्मेदार प्रतिबंध शामिल हैं। macOS सोनोमा में तीसरे पक्ष के ऐप्स के लिए पर्यावरण प्रतिबंधों के रूप में विस्तारित, ये सुविधाएँ प्रक्रिया लॉन्चिंग की शर्तों को नियंत्रित करके संभावित सिस्टम शोषण को कम करने में मदद करती हैं।

macOS Launch/Environment Constraints & Trust Cache

MRT - मैलवेयर हटाने का उपकरण

मैलवेयर हटाने का उपकरण (MRT) macOS की सुरक्षा अवसंरचना का एक और हिस्सा है। जैसा कि नाम से पता चलता है, MRT का मुख्य कार्य संक्रमित सिस्टम से ज्ञात मैलवेयर को हटाना है।

एक बार जब मैलवेयर Mac पर पता लगाया जाता है (या तो XProtect द्वारा या किसी अन्य तरीके से), MRT का उपयोग स्वचालित रूप से मैलवेयर को हटाने के लिए किया जा सकता है। MRT चुपचाप पृष्ठभूमि में काम करता है और आमतौर पर तब चलता है जब सिस्टम अपडेट होता है या जब एक नया मैलवेयर परिभाषा डाउनलोड किया जाता है (यह ऐसा लगता है कि मैलवेयर का पता लगाने के लिए MRT के पास नियम बाइनरी के अंदर हैं)।

हालांकि XProtect और MRT दोनों macOS के सुरक्षा उपायों का हिस्सा हैं, वे विभिन्न कार्य करते हैं:

  • XProtect एक निवारक उपकरण है। यह फाइलों की जांच करता है जब वे डाउनलोड होती हैं (कुछ अनुप्रयोगों के माध्यम से), और यदि यह ज्ञात प्रकार के किसी भी मैलवेयर का पता लगाता है, तो यह फाइल को खोलने से रोकता है, इस प्रकार पहले स्थान पर मैलवेयर को आपके सिस्टम को संक्रमित करने से रोकता है।
  • MRT, दूसरी ओर, एक प्रतिक्रियाशील उपकरण है। यह उस सिस्टम पर मैलवेयर का पता लगाने के बाद काम करता है, जिसका लक्ष्य offending सॉफ़्टवेयर को हटाना है ताकि सिस्टम को साफ किया जा सके।

MRT एप्लिकेशन /Library/Apple/System/Library/CoreServices/MRT.app में स्थित है।

पृष्ठभूमि कार्य प्रबंधन

macOS अब **हर बार अलर्ट करता है जब एक उपकरण एक अच्छी तरह से ज्ञात तकनीक का उपयोग करता है कोड निष्पादन को बनाए रखने के लिए (जैसे लॉगिन आइटम, डेमन...), ताकि उपयोगकर्ता बेहतर जान सके कौन सा सॉफ़्टवेयर बना हुआ है

यह एक डेमन के साथ चलता है जो /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/Resources/backgroundtaskmanagementd में स्थित है और एजेंट /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Support/BackgroundTaskManagementAgent.app में है।

जिस तरह से backgroundtaskmanagementd जानता है कि कुछ स्थायी फ़ोल्डर में स्थापित है वह FSEvents प्राप्त करके और उनके लिए कुछ हैंडलर्स बनाकर है।

इसके अलावा, एक plist फ़ाइल है जिसमें अच्छी तरह से ज्ञात अनुप्रयोगों की सूची है जो अक्सर बनाए रखी जाती है, जो एप्पल द्वारा /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/Resources/attributions.plist में स्थित है।

json
[...]
"us.zoom.ZoomDaemon" => {
"AssociatedBundleIdentifiers" => [
0 => "us.zoom.xos"
]
"Attribution" => "Zoom"
"Program" => "/Library/PrivilegedHelperTools/us.zoom.ZoomDaemon"
"ProgramArguments" => [
0 => "/Library/PrivilegedHelperTools/us.zoom.ZoomDaemon"
]
"TeamIdentifier" => "BJ4HAAB9B3"
}
[...]

Enumeration

यह संभव है कि सभी कॉन्फ़िगर किए गए बैकग्राउंड आइटम्स को एप्पल CLI टूल का उपयोग करके सूचीबद्ध किया जाए:

bash
# The tool will always ask for the users password
sfltool dumpbtm

इसके अलावा, इस जानकारी को DumpBTM के साथ सूचीबद्ध करना भी संभव है।

bash
# You need to grant the Terminal Full Disk Access for this to work
chmod +x dumpBTM
xattr -rc dumpBTM # Remove quarantine attr
./dumpBTM

यह जानकारी /private/var/db/com.apple.backgroundtaskmanagement/BackgroundItems-v4.btm में संग्रहीत की जा रही है और टर्मिनल को FDA की आवश्यकता है।

BTM के साथ छेड़छाड़

जब एक नई स्थिरता पाई जाती है, तो एक प्रकार की घटना ES_EVENT_TYPE_NOTIFY_BTM_LAUNCH_ITEM_ADD होती है। इसलिए, इस घटना को भेजने से रोकने या एजेंट द्वारा उपयोगकर्ता को चेतावनी देने से किसी हमलावर को BTM को बायपास करने में मदद मिलेगी।

  • डेटाबेस को रीसेट करना: निम्नलिखित कमांड चलाने से डेटाबेस रीसेट हो जाएगा (इसे जमीन से फिर से बनाना चाहिए), हालाँकि, किसी कारणवश, इसे चलाने के बाद, कोई नई स्थिरता तब तक चेतावनी नहीं दी जाएगी जब तक कि सिस्टम को पुनरारंभ नहीं किया जाता
  • root की आवश्यकता है।
bash
# Reset the database
sfltool resettbtm
  • एजेंट को रोकें: एजेंट को एक स्टॉप सिग्नल भेजना संभव है ताकि यह उपयोगकर्ता को सूचित न करे जब नए डिटेक्शन पाए जाते हैं।
bash
# Get PID
pgrep BackgroundTaskManagementAgent
1011

# Stop it
kill -SIGSTOP 1011

# Check it's stopped (a T means it's stopped)
ps -o state 1011
T
  • बग: यदि स्थायीता बनाने वाली प्रक्रिया तुरंत उसके बाद मौजूद है, तो डेमन इसके बारे में जानकारी प्राप्त करने की कोशिश करेगा, असफल होगा, और नए चीज के स्थायी होने का संकेत देने वाला इवेंट भेजने में असमर्थ होगा।

संदर्भ और BTM के बारे में अधिक जानकारी:

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें