macOS Dangerous Entitlements & TCC perms

Reading time: 8 minutes

tip

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

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

warning

ध्यान दें कि com.apple से शुरू होने वाले अधिकार तीसरे पक्ष के लिए उपलब्ध नहीं हैं, केवल Apple उन्हें प्रदान कर सकता है।

High

com.apple.rootless.install.heritable

अधिकार com.apple.rootless.install.heritable SIP को बायपास करने की अनुमति देता है। अधिक जानकारी के लिए यहाँ देखें.

com.apple.rootless.install

अधिकार com.apple.rootless.install SIP को बायपास करने की अनुमति देता है। अधिक जानकारी के लिए यहाँ देखें.

com.apple.system-task-ports (पहले task_for_pid-allow कहा जाता था)

यह अधिकार किसी भी प्रक्रिया के लिए टास्क पोर्ट प्राप्त करने की अनुमति देता है, सिवाय कर्नेल के। अधिक जानकारी के लिए यहाँ देखें.

com.apple.security.get-task-allow

यह अधिकार अन्य प्रक्रियाओं को com.apple.security.cs.debugger अधिकार के साथ उस प्रक्रिया के टास्क पोर्ट को प्राप्त करने की अनुमति देता है जो इस अधिकार के साथ बाइनरी द्वारा चलायी जाती है और इस पर कोड इंजेक्ट करता है। अधिक जानकारी के लिए यहाँ देखें.

com.apple.security.cs.debugger

डिबगिंग टूल अधिकार वाले ऐप्स task_for_pid() को कॉल कर सकते हैं ताकि बिना साइन किए गए और तीसरे पक्ष के ऐप्स के लिए वैध टास्क पोर्ट प्राप्त किया जा सके जिनका Get Task Allow अधिकार true पर सेट है। हालाँकि, डिबगिंग टूल अधिकार के साथ भी, एक डिबगर उन प्रक्रियाओं के टास्क पोर्ट प्राप्त नहीं कर सकता जिनके पास Get Task Allow अधिकार नहीं है, और जो इसलिए सिस्टम इंटीग्रिटी प्रोटेक्शन द्वारा सुरक्षित हैं। अधिक जानकारी के लिए यहाँ देखें.

com.apple.security.cs.disable-library-validation

यह अधिकार फ्रेमवर्क, प्लग-इन्स, या लाइब्रेरी को लोड करने की अनुमति देता है बिना Apple द्वारा साइन किए गए या मुख्य निष्पादन योग्य के समान टीम आईडी के साथ साइन किए गए। इसलिए एक हमलावर कुछ मनमानी लाइब्रेरी लोड का दुरुपयोग करके कोड इंजेक्ट कर सकता है। अधिक जानकारी के लिए यहाँ देखें.

com.apple.private.security.clear-library-validation

यह अधिकार com.apple.security.cs.disable-library-validation के समान है लेकिन सीधे लाइब्रेरी मान्यता को अक्षम करने के बजाय, यह प्रक्रिया को इसे अक्षम करने के लिए csops सिस्टम कॉल करने की अनुमति देता है।
अधिक जानकारी के लिए यहाँ देखें.

com.apple.security.cs.allow-dyld-environment-variables

यह अधिकार DYLD पर्यावरण चर का उपयोग करने की अनुमति देता है जो लाइब्रेरी और कोड इंजेक्ट करने के लिए उपयोग किया जा सकता है। अधिक जानकारी के लिए यहाँ देखें.

com.apple.private.tcc.manager या com.apple.rootless.storage.TCC

इस ब्लॉग के अनुसार और इस ब्लॉग के अनुसार, ये अधिकार TCC डेटाबेस को संशोधित करने की अनुमति देते हैं।

system.install.apple-software और system.install.apple-software.standar-user

ये अधिकार उपयोगकर्ता से अनुमति पूछे बिना सॉफ़्टवेयर स्थापित करने की अनुमति देते हैं, जो अधिकार वृद्धि के लिए सहायक हो सकता है।

com.apple.private.security.kext-management

अधिकार जो कर्नेल से कर्नेल एक्सटेंशन लोड करने के लिए पूछने की आवश्यकता है।

com.apple.private.icloud-account-access

अधिकार com.apple.private.icloud-account-access के साथ com.apple.iCloudHelper XPC सेवा के साथ संवाद करना संभव है जो iCloud टोकन प्रदान करेगा।

iMovie और Garageband के पास यह अधिकार था।

इस अधिकार से icloud टोकन प्राप्त करने के लिए जानकारी के लिए वार्ता देखें: #OBTS v5.0: "What Happens on your Mac, Stays on Apple's iCloud?!" - Wojciech Regula

com.apple.private.tcc.manager.check-by-audit-token

TODO: मुझे नहीं पता कि यह क्या करने की अनुमति देता है

com.apple.private.apfs.revert-to-snapshot

TODO: इस रिपोर्ट में उल्लेख किया गया है कि इसका उपयोग रिबूट के बाद SSV-सुरक्षित सामग्री को अपडेट करने के लिए किया जा सकता है। यदि आप जानते हैं कि यह कैसे किया जाता है तो कृपया PR भेजें!

com.apple.private.apfs.create-sealed-snapshot

TODO: इस रिपोर्ट में उल्लेख किया गया है कि इसका उपयोग रिबूट के बाद SSV-सुरक्षित सामग्री को अपडेट करने के लिए किया जा सकता है। यदि आप जानते हैं कि यह कैसे किया जाता है तो कृपया PR भेजें!

keychain-access-groups

यह अधिकार keychain समूहों की सूची है जिन तक एप्लिकेशन की पहुँच है:

xml
<key>keychain-access-groups</key>
<array>
<string>ichat</string>
<string>apple</string>
<string>appleaccount</string>
<string>InternetAccounts</string>
<string>IMCore</string>
</array>

kTCCServiceSystemPolicyAllFiles

पूर्ण डिस्क एक्सेस अनुमतियाँ देता है, जो TCC की सबसे उच्च अनुमतियों में से एक है जो आपके पास हो सकती है।

kTCCServiceAppleEvents

ऐप को अन्य अनुप्रयोगों को कार्य स्वचालित करने के लिए घटनाएँ भेजने की अनुमति देता है। अन्य ऐप्स को नियंत्रित करते हुए, यह इन अन्य ऐप्स को दी गई अनुमतियों का दुरुपयोग कर सकता है।

जैसे कि उन्हें उपयोगकर्ता से उसका पासवर्ड पूछने के लिए कहना:

bash
osascript -e 'tell app "App Store" to activate' -e 'tell app "App Store" to activate' -e 'tell app "App Store" to display dialog "App Store requires your password to continue." & return & return default answer "" with icon 1 with hidden answer with title "App Store Alert"'

Or making them perform arbitrary actions.

kTCCServiceEndpointSecurityClient

अन्य अनुमतियों के बीच, उपयोगकर्ताओं के TCC डेटाबेस को लिखने की अनुमति देता है।

kTCCServiceSystemPolicySysAdminFiles

एक उपयोगकर्ता के NFSHomeDirectory विशेषता को बदलने की अनुमति देता है, जो उसके होम फ़ोल्डर पथ को बदलता है और इसलिए TCC को बायपास करने की अनुमति देता है।

kTCCServiceSystemPolicyAppBundles

ऐप्स बंडल (app.app के अंदर) के अंदर फ़ाइलों को संशोधित करने की अनुमति देता है, जो डिफ़ॉल्ट रूप से निषिद्ध है।

यह जांचना संभव है कि किसके पास यह एक्सेस है System Settings > Privacy & Security > App Management.

kTCCServiceAccessibility

प्रक्रिया macOS एक्सेसिबिलिटी सुविधाओं का दुरुपयोग करने में सक्षम होगी, जिसका अर्थ है कि उदाहरण के लिए वह कीस्ट्रोक दबा सकेगा। इसलिए वह Finder जैसे ऐप को नियंत्रित करने के लिए एक्सेस का अनुरोध कर सकता है और इस अनुमति के साथ संवाद को मंजूरी दे सकता है।

Medium

com.apple.security.cs.allow-jit

यह अधिकार लिखने योग्य और निष्पादन योग्य मेमोरी बनाने की अनुमति देता है mmap() सिस्टम फ़ंक्शन को MAP_JIT ध्वज पास करके। Check this for more info.

com.apple.security.cs.allow-unsigned-executable-memory

यह अधिकार C कोड को ओवरराइड या पैच करने की अनुमति देता है, लंबे समय से अप्रचलित NSCreateObjectFileImageFromMemory (जो मौलिक रूप से असुरक्षित है) का उपयोग करने की अनुमति देता है, या DVDPlayback फ्रेमवर्क का उपयोग करने की अनुमति देता है। Check this for more info.

caution

इस अधिकार को शामिल करने से आपका ऐप मेमोरी-खतरनाक कोड भाषाओं में सामान्य कमजोरियों के लिए उजागर हो जाता है। सावधानी से विचार करें कि क्या आपके ऐप को इस अपवाद की आवश्यकता है।

com.apple.security.cs.disable-executable-page-protection

यह अधिकार अपने स्वयं के निष्पादन योग्य फ़ाइलों के अनुभागों को संशोधित करने की अनुमति देता है ताकि बलात्कारी निकासी की जा सके। Check this for more info.

caution

Disable Executable Memory Protection Entitlement एक चरम अधिकार है जो आपके ऐप से एक मौलिक सुरक्षा सुरक्षा को हटा देता है, जिससे एक हमलावर को आपके ऐप के निष्पादन योग्य कोड को बिना पहचान के फिर से लिखने की संभावना होती है। यदि संभव हो तो संकीर्ण अधिकारों को प्राथमिकता दें।

com.apple.security.cs.allow-relative-library-loads

TODO

com.apple.private.nullfs_allow

यह अधिकार एक nullfs फ़ाइल प्रणाली को माउंट करने की अनुमति देता है (डिफ़ॉल्ट रूप से निषिद्ध)। Tool: mount_nullfs.

kTCCServiceAll

इस ब्लॉगपोस्ट के अनुसार, यह TCC अनुमति आमतौर पर इस रूप में पाई जाती है:

[Key] com.apple.private.tcc.allow-prompting
[Value]
[Array]
[String] kTCCServiceAll

प्रक्रिया को सभी TCC अनुमतियों के लिए पूछने की अनुमति दें।

kTCCServicePostEvent

tip

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

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