macOS Dangerous Entitlements & TCC perms

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

ध्यान दें कि 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 समूहों की सूची है जिन तक एप्लिकेशन की पहुँच है:

<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

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

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

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"'

या उन्हें मनमाने कार्य करने के लिए मजबूर करना।

kTCCServiceEndpointSecurityClient

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

kTCCServiceSystemPolicySysAdminFiles

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

kTCCServiceSystemPolicyAppBundles

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

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

kTCCServiceAccessibility

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

मध्यम

com.apple.security.cs.allow-jit

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

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

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

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

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

यह अधिकार अपने स्वयं के निष्पादन योग्य फ़ाइलों के खंडों को संशोधित करने की अनुमति देता है ताकि बलात्कारी रूप से बाहर निकल सके। अधिक जानकारी के लिए यह देखें

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

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

TODO

com.apple.private.nullfs_allow

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

kTCCServiceAll

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

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

Allow the process to ask for all the TCC permissions.

kTCCServicePostEvent

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Last updated