mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/macos-hardening/macos-security-and-privilege-escalation
This commit is contained in:
parent
d0ae215c47
commit
a90e5a0c5b
@ -6,13 +6,13 @@
|
|||||||
|
|
||||||
**TCC (Transparency, Consent, and Control)** एक सुरक्षा प्रोटोकॉल है जो एप्लिकेशन अनुमतियों को नियंत्रित करने पर केंद्रित है। इसकी प्राथमिक भूमिका संवेदनशील सुविधाओं जैसे **स्थान सेवाएँ, संपर्क, फ़ोटो, माइक्रोफ़ोन, कैमरा, पहुँच, और पूर्ण डिस्क एक्सेस** की सुरक्षा करना है। TCC उपयोगकर्ता की स्पष्ट सहमति को अनिवार्य करके इन तत्वों तक ऐप की पहुँच प्रदान करता है, जिससे गोपनीयता और उपयोगकर्ता के डेटा पर नियंत्रण बढ़ता है।
|
**TCC (Transparency, Consent, and Control)** एक सुरक्षा प्रोटोकॉल है जो एप्लिकेशन अनुमतियों को नियंत्रित करने पर केंद्रित है। इसकी प्राथमिक भूमिका संवेदनशील सुविधाओं जैसे **स्थान सेवाएँ, संपर्क, फ़ोटो, माइक्रोफ़ोन, कैमरा, पहुँच, और पूर्ण डिस्क एक्सेस** की सुरक्षा करना है। TCC उपयोगकर्ता की स्पष्ट सहमति को अनिवार्य करके इन तत्वों तक ऐप की पहुँच प्रदान करता है, जिससे गोपनीयता और उपयोगकर्ता के डेटा पर नियंत्रण बढ़ता है।
|
||||||
|
|
||||||
उपयोगकर्ता TCC का सामना तब करते हैं जब एप्लिकेशन संरक्षित सुविधाओं तक पहुँच का अनुरोध करते हैं। यह एक प्रॉम्प्ट के माध्यम से दिखाई देता है जो उपयोगकर्ताओं को **पहुँच को स्वीकृत या अस्वीकृत** करने की अनुमति देता है। इसके अलावा, TCC सीधे उपयोगकर्ता क्रियाओं को समायोजित करता है, जैसे कि **फाइलों को एक एप्लिकेशन में खींचना और छोड़ना**, ताकि विशिष्ट फ़ाइलों तक पहुँच प्रदान की जा सके, यह सुनिश्चित करते हुए कि एप्लिकेशन केवल वही एक्सेस प्राप्त करें जो स्पष्ट रूप से अनुमत है।
|
उपयोगकर्ता TCC का सामना तब करते हैं जब एप्लिकेशन संरक्षित सुविधाओं तक पहुँच का अनुरोध करते हैं। यह एक प्रॉम्प्ट के माध्यम से दिखाई देता है जो उपयोगकर्ताओं को **पहुँच को स्वीकृत या अस्वीकृत** करने की अनुमति देता है। इसके अलावा, TCC सीधे उपयोगकर्ता क्रियाओं को समायोजित करता है, जैसे कि **फाइलों को एक एप्लिकेशन में खींचना और छोड़ना**, ताकि विशिष्ट फ़ाइलों तक पहुँच प्रदान की जा सके, यह सुनिश्चित करते हुए कि एप्लिकेशन केवल वही एक्सेस करें जो स्पष्ट रूप से अनुमत है।
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
**TCC** का प्रबंधन **daemon** द्वारा किया जाता है जो `/System/Library/PrivateFrameworks/TCC.framework/Support/tccd` में स्थित है और `/System/Library/LaunchDaemons/com.apple.tccd.system.plist` में कॉन्फ़िगर किया गया है (mach सेवा `com.apple.tccd.system` को पंजीकृत करना)।
|
**TCC** का प्रबंधन **daemon** द्वारा किया जाता है जो `/System/Library/PrivateFrameworks/TCC.framework/Support/tccd` में स्थित है और `/System/Library/LaunchDaemons/com.apple.tccd.system.plist` में कॉन्फ़िगर किया गया है (mach सेवा `com.apple.tccd.system` को पंजीकृत करना)।
|
||||||
|
|
||||||
एक **उपयोगकर्ता-मोड tccd** प्रत्येक लॉग इन उपयोगकर्ता के लिए चल रहा है जो `/System/Library/LaunchAgents/com.apple.tccd.plist` में परिभाषित है, जो mach सेवाओं `com.apple.tccd` और `com.apple.usernotifications.delegate.com.apple.tccd` को पंजीकृत करता है।
|
एक **उपयोगकर्ता-मोड tccd** प्रत्येक लॉग इन उपयोगकर्ता के लिए चलता है जो `/System/Library/LaunchAgents/com.apple.tccd.plist` में परिभाषित है, जो mach सेवाओं `com.apple.tccd` और `com.apple.usernotifications.delegate.com.apple.tccd` को पंजीकृत करता है।
|
||||||
|
|
||||||
यहाँ आप tccd को सिस्टम और उपयोगकर्ता के रूप में चलते हुए देख सकते हैं:
|
यहाँ आप tccd को सिस्टम और उपयोगकर्ता के रूप में चलते हुए देख सकते हैं:
|
||||||
```bash
|
```bash
|
||||||
@ -32,13 +32,13 @@ ps -ef | grep tcc
|
|||||||
- यह डेटाबेस संरक्षित है इसलिए केवल उच्च TCC विशेषाधिकार वाले प्रक्रियाएँ जैसे कि पूर्ण डिस्क एक्सेस इसमें लिख सकती हैं (लेकिन यह SIP द्वारा संरक्षित नहीं है)।
|
- यह डेटाबेस संरक्षित है इसलिए केवल उच्च TCC विशेषाधिकार वाले प्रक्रियाएँ जैसे कि पूर्ण डिस्क एक्सेस इसमें लिख सकती हैं (लेकिन यह SIP द्वारा संरक्षित नहीं है)।
|
||||||
|
|
||||||
> [!WARNING]
|
> [!WARNING]
|
||||||
> पिछले डेटाबेस भी **पढ़ने के लिए TCC संरक्षित** हैं। इसलिए आप **अपनी नियमित उपयोगकर्ता TCC डेटाबेस नहीं पढ़ पाएंगे** जब तक कि यह TCC विशेषाधिकार प्राप्त प्रक्रिया से न हो।
|
> पिछले डेटाबेस भी **पढ़ने की पहुँच के लिए TCC संरक्षित** हैं। इसलिए आप **अपनी नियमित उपयोगकर्ता TCC डेटाबेस नहीं पढ़ पाएंगे** जब तक कि यह TCC विशेषाधिकार प्राप्त प्रक्रिया से न हो।
|
||||||
>
|
>
|
||||||
> हालाँकि, याद रखें कि इन उच्च विशेषाधिकार वाली प्रक्रिया (जैसे **FDA** या **`kTCCServiceEndpointSecurityClient`**) को उपयोगकर्ता TCC डेटाबेस में लिखने की अनुमति होगी।
|
> हालाँकि, याद रखें कि इन उच्च विशेषाधिकार वाली प्रक्रिया (जैसे **FDA** या **`kTCCServiceEndpointSecurityClient`**) को उपयोगकर्ताओं के TCC डेटाबेस में लिखने की अनुमति होगी।
|
||||||
|
|
||||||
- एक **तीसरा** TCC डेटाबेस **`/var/db/locationd/clients.plist`** में है जो उन क्लाइंट्स को इंगित करता है जिन्हें **स्थान सेवाओं** तक पहुँचने की अनुमति है।
|
- एक **तीसरा** TCC डेटाबेस **`/var/db/locationd/clients.plist`** में है जो उन क्लाइंट्स को इंगित करता है जिन्हें **स्थान सेवाओं** तक पहुँचने की अनुमति है।
|
||||||
- SIP संरक्षित फ़ाइल **`/Users/carlospolop/Downloads/REG.db`** (जो पढ़ने की पहुँच से TCC द्वारा भी संरक्षित है), सभी **मान्य TCC डेटाबेस** का **स्थान** रखती है।
|
- SIP संरक्षित फ़ाइल **`/Users/carlospolop/Downloads/REG.db`** (जो TCC के साथ पढ़ने की पहुँच से भी संरक्षित है), सभी **मान्य TCC डेटाबेस** का **स्थान** रखती है।
|
||||||
- SIP संरक्षित फ़ाइल **`/Users/carlospolop/Downloads/MDMOverrides.plist`** (जो पढ़ने की पहुँच से TCC द्वारा भी संरक्षित है), अधिक TCC दी गई अनुमतियों को रखती है।
|
- SIP संरक्षित फ़ाइल **`/Users/carlospolop/Downloads/MDMOverrides.plist`** (जो TCC के साथ पढ़ने की पहुँच से भी संरक्षित है), अधिक TCC दी गई अनुमतियों को रखती है।
|
||||||
- SIP संरक्षित फ़ाइल **`/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist`** (जो किसी के द्वारा पढ़ी जा सकती है) उन अनुप्रयोगों की अनुमति सूची है जिन्हें TCC अपवाद की आवश्यकता है।
|
- SIP संरक्षित फ़ाइल **`/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist`** (जो किसी के द्वारा पढ़ी जा सकती है) उन अनुप्रयोगों की अनुमति सूची है जिन्हें TCC अपवाद की आवश्यकता है।
|
||||||
|
|
||||||
> [!TIP]
|
> [!TIP]
|
||||||
@ -102,7 +102,7 @@ sqlite> select * from access where client LIKE "%telegram%" and auth_value=0;
|
|||||||
{{#endtabs}}
|
{{#endtabs}}
|
||||||
|
|
||||||
> [!TIP]
|
> [!TIP]
|
||||||
> दोनों डेटाबेस की जांच करके आप देख सकते हैं कि किसी ऐप को कौन सी अनुमतियाँ दी गई हैं, कौन सी मना की गई हैं, या कौन सी नहीं हैं (यह इसके लिए पूछेगा)।
|
> दोनों डेटाबेस की जांच करके आप यह देख सकते हैं कि किसी ऐप को कौन सी अनुमतियाँ दी गई हैं, कौन सी मना की गई हैं, या कौन सी नहीं हैं (यह इसके लिए पूछेगा)।
|
||||||
|
|
||||||
- **`service`** TCC **अनुमति** का स्ट्रिंग प्रतिनिधित्व है
|
- **`service`** TCC **अनुमति** का स्ट्रिंग प्रतिनिधित्व है
|
||||||
- **`client`** **बंडल ID** या **बाइनरी का पथ** है जिसमें अनुमतियाँ हैं
|
- **`client`** **बंडल ID** या **बाइनरी का पथ** है जिसमें अनुमतियाँ हैं
|
||||||
@ -153,7 +153,7 @@ sqlite> select * from access where client LIKE "%telegram%" and auth_value=0;
|
|||||||
|
|
||||||
- **`auth_value`** के विभिन्न मान हो सकते हैं: denied(0), unknown(1), allowed(2), या limited(3).
|
- **`auth_value`** के विभिन्न मान हो सकते हैं: denied(0), unknown(1), allowed(2), या limited(3).
|
||||||
- **`auth_reason`** निम्नलिखित मान ले सकता है: Error(1), User Consent(2), User Set(3), System Set(4), Service Policy(5), MDM Policy(6), Override Policy(7), Missing usage string(8), Prompt Timeout(9), Preflight Unknown(10), Entitled(11), App Type Policy(12)
|
- **`auth_reason`** निम्नलिखित मान ले सकता है: Error(1), User Consent(2), User Set(3), System Set(4), Service Policy(5), MDM Policy(6), Override Policy(7), Missing usage string(8), Prompt Timeout(9), Preflight Unknown(10), Entitled(11), App Type Policy(12)
|
||||||
- **csreq** फ़ील्ड यह संकेत करने के लिए है कि बाइनरी को कैसे सत्यापित किया जाए और TCC अनुमतियाँ दी जाएँ:
|
- **csreq** फ़ील्ड यह दर्शाने के लिए है कि बाइनरी को कैसे सत्यापित किया जाए और TCC अनुमतियाँ दी जाएँ:
|
||||||
```bash
|
```bash
|
||||||
# Query to get cserq in printable hex
|
# Query to get cserq in printable hex
|
||||||
select service, client, hex(csreq) from access where auth_value=2;
|
select service, client, hex(csreq) from access where auth_value=2;
|
||||||
@ -186,7 +186,7 @@ tccutil reset All
|
|||||||
```
|
```
|
||||||
### TCC Signature Checks
|
### TCC Signature Checks
|
||||||
|
|
||||||
TCC **database** एप्लिकेशन का **Bundle ID** स्टोर करता है, लेकिन यह **signature** के बारे में **जानकारी** भी **स्टोर** करता है ताकि यह **सुनिश्चित** किया जा सके कि अनुमति का उपयोग करने के लिए ऐप सही है।
|
The TCC **database** stores the **Bundle ID** of the application, but it also **stores** **जानकारी** about the **signature** to **सुनिश्चित करें** the App asking to use the a permission is the correct one.
|
||||||
```bash
|
```bash
|
||||||
# From sqlite
|
# From sqlite
|
||||||
sqlite> select service, client, hex(csreq) from access where auth_value=2;
|
sqlite> select service, client, hex(csreq) from access where auth_value=2;
|
||||||
@ -199,16 +199,16 @@ csreq -t -r /tmp/telegram_csreq.bin
|
|||||||
(anchor apple generic and certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "6N38VWS5BX") and identifier "ru.keepcoder.Telegram"
|
(anchor apple generic and certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "6N38VWS5BX") and identifier "ru.keepcoder.Telegram"
|
||||||
```
|
```
|
||||||
> [!WARNING]
|
> [!WARNING]
|
||||||
> इसलिए, समान नाम और बंडल आईडी वाले अन्य अनुप्रयोगों को अन्य ऐप्स को दिए गए अनुमतियों तक पहुंच प्राप्त नहीं होगी।
|
> इसलिए, समान नाम और बंडल आईडी वाले अन्य एप्लिकेशन को अन्य ऐप्स को दी गई अनुमतियों तक पहुंच प्राप्त नहीं होगी।
|
||||||
|
|
||||||
### अधिकार और TCC अनुमतियाँ
|
### अधिकार और TCC अनुमतियाँ
|
||||||
|
|
||||||
ऐप्स **केवल आवश्यकता नहीं है** कि वे **अनुरोध करें** और कुछ संसाधनों तक **पहुँच प्राप्त करें**, उन्हें **संबंधित अधिकार भी होने चाहिए।**\
|
ऐप्स **केवल आवश्यकता नहीं है** कि वे **अनुरोध करें** और कुछ संसाधनों तक **पहुँच प्राप्त करें**, उन्हें **संबंधित अधिकार भी होने चाहिए**।\
|
||||||
उदाहरण के लिए, **Telegram** के पास **कैमरे तक पहुँच** के लिए `com.apple.security.device.camera` का अधिकार है। एक **ऐप** जो **इस अधिकार** के बिना है, वह कैमरे तक पहुँच **नहीं प्राप्त कर सकेगा** (और उपयोगकर्ता से अनुमतियों के लिए भी नहीं पूछा जाएगा)।
|
उदाहरण के लिए, **Telegram** के पास **कैमरे तक पहुँच** के लिए अधिकार `com.apple.security.device.camera` है। एक **ऐप** जो **इस अधिकार** के बिना है, वह कैमरे तक **पहुँच नहीं प्राप्त कर सकेगा** (और उपयोगकर्ता से अनुमतियों के लिए भी नहीं पूछा जाएगा)।
|
||||||
|
|
||||||
हालांकि, ऐप्स को **कुछ उपयोगकर्ता फ़ोल्डरों** जैसे `~/Desktop`, `~/Downloads` और `~/Documents` तक **पहुँच** प्राप्त करने के लिए किसी विशेष **अधिकार** की आवश्यकता **नहीं है।** सिस्टम स्वचालित रूप से पहुँच को संभालेगा और **उपयोगकर्ता को** आवश्यकतानुसार **प्रॉम्प्ट करेगा।**
|
हालांकि, ऐप्स को **कुछ उपयोगकर्ता फ़ोल्डरों** जैसे `~/Desktop`, `~/Downloads` और `~/Documents` तक **पहुँच** के लिए किसी विशेष **अधिकार** की आवश्यकता नहीं है। सिस्टम स्वचालित रूप से पहुँच को संभालेगा और **उपयोगकर्ता को** आवश्यकतानुसार **प्रेरित करेगा**।
|
||||||
|
|
||||||
Apple के ऐप्स **प्रॉम्प्ट नहीं बनाएंगे।** उनके **अधिकार** सूची में **पूर्व-प्रदान किए गए अधिकार** होते हैं, जिसका अर्थ है कि वे **कभी भी पॉपअप नहीं बनाएंगे**, **न ही** वे किसी भी **TCC डेटाबेस** में दिखाई देंगे। उदाहरण के लिए:
|
Apple के ऐप्स **प्रेरणाएँ उत्पन्न नहीं करेंगे**। उनके **अधिकार** सूची में **पूर्व-प्रदान किए गए अधिकार** होते हैं, जिसका अर्थ है कि वे **कभी भी पॉपअप उत्पन्न नहीं करेंगे**, **न ही** वे किसी भी **TCC डेटाबेस** में दिखाई देंगे। उदाहरण के लिए:
|
||||||
```bash
|
```bash
|
||||||
codesign -dv --entitlements :- /System/Applications/Calendar.app
|
codesign -dv --entitlements :- /System/Applications/Calendar.app
|
||||||
[...]
|
[...]
|
||||||
@ -222,9 +222,9 @@ codesign -dv --entitlements :- /System/Applications/Calendar.app
|
|||||||
यह कैलेंडर को उपयोगकर्ता से अनुस्मारक, कैलेंडर और पते की पुस्तक तक पहुँचने के लिए पूछने से रोकेगा।
|
यह कैलेंडर को उपयोगकर्ता से अनुस्मारक, कैलेंडर और पते की पुस्तक तक पहुँचने के लिए पूछने से रोकेगा।
|
||||||
|
|
||||||
> [!TIP]
|
> [!TIP]
|
||||||
> अधिकारों के बारे में कुछ आधिकारिक दस्तावेज़ों के अलावा, **अनौपचारिक रूप से दिलचस्प जानकारी अधिकारों के बारे में** [**https://newosxbook.com/ent.jl**](https://newosxbook.com/ent.jl) मिलना भी संभव है।
|
> अधिकारों के बारे में कुछ आधिकारिक दस्तावेज़ों के अलावा, **अनौपचारिक रूप से दिलचस्प जानकारी अधिकारों के बारे में** [**https://newosxbook.com/ent.jl**](https://newosxbook.com/ent.jl) पाई जा सकती है।
|
||||||
|
|
||||||
कुछ TCC अनुमतियाँ हैं: kTCCServiceAppleEvents, kTCCServiceCalendar, kTCCServicePhotos... इन सभी को परिभाषित करने वाली कोई सार्वजनिक सूची नहीं है, लेकिन आप इस [**ज्ञात की सूची**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive#service) की जांच कर सकते हैं।
|
कुछ TCC अनुमतियाँ हैं: kTCCServiceAppleEvents, kTCCServiceCalendar, kTCCServicePhotos... सभी को परिभाषित करने वाली कोई सार्वजनिक सूची नहीं है, लेकिन आप इस [**ज्ञात की सूची**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive#service) की जांच कर सकते हैं।
|
||||||
|
|
||||||
### संवेदनशील असुरक्षित स्थान
|
### संवेदनशील असुरक्षित स्थान
|
||||||
|
|
||||||
@ -264,7 +264,7 @@ uuid 769FD8F1-90E0-3206-808C-A8947BEBD6C3
|
|||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>TCC में डालने का उदाहरण</summary>
|
<summary>TCC में डालें उदाहरण</summary>
|
||||||
```sql
|
```sql
|
||||||
INSERT INTO access (
|
INSERT INTO access (
|
||||||
service,
|
service,
|
||||||
@ -308,7 +308,7 @@ strftime('%s', 'now') -- last_reminded with default current timestamp
|
|||||||
|
|
||||||
### TCC Payloads
|
### TCC Payloads
|
||||||
|
|
||||||
यदि आप किसी ऐप में कुछ TCC अनुमतियों के साथ अंदर जाने में सफल रहे हैं, तो उनका दुरुपयोग करने के लिए TCC पेलोड्स के साथ निम्नलिखित पृष्ठ की जांच करें:
|
यदि आप किसी ऐप में कुछ TCC अनुमतियों के साथ प्रवेश करने में सफल रहे हैं, तो उन्हें दुरुपयोग करने के लिए TCC पेलोड के साथ निम्नलिखित पृष्ठ देखें:
|
||||||
|
|
||||||
{{#ref}}
|
{{#ref}}
|
||||||
macos-tcc-payloads.md
|
macos-tcc-payloads.md
|
||||||
@ -325,7 +325,7 @@ macos-apple-events.md
|
|||||||
### Automation (Finder) to FDA\*
|
### Automation (Finder) to FDA\*
|
||||||
|
|
||||||
Automation अनुमति का TCC नाम है: **`kTCCServiceAppleEvents`**\
|
Automation अनुमति का TCC नाम है: **`kTCCServiceAppleEvents`**\
|
||||||
यह विशेष TCC अनुमति यह भी इंगित करती है कि **कौन सा एप्लिकेशन** TCC डेटाबेस के अंदर प्रबंधित किया जा सकता है (इसलिए अनुमतियाँ केवल सब कुछ प्रबंधित करने की अनुमति नहीं देती हैं)।
|
यह विशेष TCC अनुमति यह भी इंगित करती है कि **कौन सा एप्लिकेशन प्रबंधित किया जा सकता है** TCC डेटाबेस के अंदर (इसलिए अनुमतियाँ केवल सब कुछ प्रबंधित करने की अनुमति नहीं देती हैं)।
|
||||||
|
|
||||||
**Finder** एक एप्लिकेशन है जो **हमेशा FDA** रखता है (भले ही यह UI में न दिखाई दे), इसलिए यदि आपके पास इसके ऊपर **Automation** विशेषाधिकार हैं, तो आप इसके विशेषाधिकारों का दुरुपयोग करके **कुछ क्रियाएँ करवा सकते हैं**।\
|
**Finder** एक एप्लिकेशन है जो **हमेशा FDA** रखता है (भले ही यह UI में न दिखाई दे), इसलिए यदि आपके पास इसके ऊपर **Automation** विशेषाधिकार हैं, तो आप इसके विशेषाधिकारों का दुरुपयोग करके **कुछ क्रियाएँ करवा सकते हैं**।\
|
||||||
इस मामले में आपके ऐप को **`com.apple.Finder`** पर **`kTCCServiceAppleEvents`** अनुमति की आवश्यकता होगी।
|
इस मामले में आपके ऐप को **`com.apple.Finder`** पर **`kTCCServiceAppleEvents`** अनुमति की आवश्यकता होगी।
|
||||||
@ -400,7 +400,7 @@ EOD
|
|||||||
|
|
||||||
### स्वचालन (SE) कुछ TCC के लिए
|
### स्वचालन (SE) कुछ TCC के लिए
|
||||||
|
|
||||||
**सिस्टम इवेंट्स फ़ोल्डर क्रियाएँ बना सकते हैं, और फ़ोल्डर क्रियाएँ कुछ TCC फ़ोल्डरों (डेस्कटॉप, दस्तावेज़ और डाउनलोड) तक पहुँच सकती हैं**, इसलिए निम्नलिखित स्क्रिप्ट का उपयोग इस व्यवहार का दुरुपयोग करने के लिए किया जा सकता है:
|
**सिस्टम इवेंट्स फ़ोल्डर क्रियाएँ बना सकते हैं, और फ़ोल्डर क्रियाएँ कुछ TCC फ़ोल्डरों तक पहुँच सकती हैं** (डेस्कटॉप, दस्तावेज़ और डाउनलोड), इसलिए निम्नलिखित स्क्रिप्ट का उपयोग इस व्यवहार का दुरुपयोग करने के लिए किया जा सकता है:
|
||||||
```bash
|
```bash
|
||||||
# Create script to execute with the action
|
# Create script to execute with the action
|
||||||
cat > "/tmp/script.js" <<EOD
|
cat > "/tmp/script.js" <<EOD
|
||||||
@ -444,7 +444,7 @@ rm "$HOME/Desktop/file"
|
|||||||
```
|
```
|
||||||
### Automation (SE) + Accessibility (**`kTCCServicePostEvent`|**`kTCCServiceAccessibility`**)** to FDA\*
|
### Automation (SE) + Accessibility (**`kTCCServicePostEvent`|**`kTCCServiceAccessibility`**)** to FDA\*
|
||||||
|
|
||||||
**`System Events`** पर ऑटोमेशन + एक्सेसिबिलिटी (**`kTCCServicePostEvent`**) **प्रक्रियाओं** को **कीस्ट्रोक्स** भेजने की अनुमति देती है। इस तरह आप फ़ाइंडर का दुरुपयोग करके उपयोगकर्ताओं का TCC.db बदल सकते हैं या किसी मनचाही ऐप को FDA दे सकते हैं (हालांकि इसके लिए पासवर्ड मांगा जा सकता है)।
|
**`System Events`** पर ऑटोमेशन + एक्सेसिबिलिटी (**`kTCCServicePostEvent`**) **प्रक्रियाओं** को **कीस्ट्रोक्स** भेजने की अनुमति देती है। इस तरह आप फ़ाइंडर का दुरुपयोग कर सकते हैं ताकि उपयोगकर्ताओं का TCC.db बदल सकें या किसी मनचाही ऐप को FDA दे सकें (हालांकि इसके लिए पासवर्ड मांगा जा सकता है)।
|
||||||
|
|
||||||
उपयोगकर्ताओं के TCC.db को ओवरराइट करने का फ़ाइंडर उदाहरण:
|
उपयोगकर्ताओं के TCC.db को ओवरराइट करने का फ़ाइंडर उदाहरण:
|
||||||
```applescript
|
```applescript
|
||||||
@ -494,38 +494,38 @@ EOF
|
|||||||
```
|
```
|
||||||
### `kTCCServiceAccessibility` to FDA\*
|
### `kTCCServiceAccessibility` to FDA\*
|
||||||
|
|
||||||
इस पृष्ठ पर कुछ [**पेलोड्स की जांच करें जो एक्सेसिबिलिटी अनुमतियों का दुरुपयोग करते हैं**](macos-tcc-payloads.md#accessibility) ताकि FDA\* तक पहुंच प्राप्त की जा सके या उदाहरण के लिए एक कीलॉगर चलाया जा सके।
|
इस पृष्ठ पर कुछ [**पेलोड्स की जांच करें जो एक्सेसिबिलिटी अनुमतियों का दुरुपयोग करते हैं**](macos-tcc-payloads.md#accessibility) ताकि FDA\* के लिए प्रिवेस्क या उदाहरण के लिए कीलॉगर चलाया जा सके।
|
||||||
|
|
||||||
### **Endpoint Security Client to FDA**
|
### **एंडपॉइंट सुरक्षा क्लाइंट से FDA**
|
||||||
|
|
||||||
यदि आपके पास **`kTCCServiceEndpointSecurityClient`** है, तो आपके पास FDA है। समाप्त।
|
यदि आपके पास **`kTCCServiceEndpointSecurityClient`** है, तो आपके पास FDA है। समाप्त।
|
||||||
|
|
||||||
### System Policy SysAdmin File to FDA
|
### सिस्टम नीति SysAdmin फ़ाइल से FDA
|
||||||
|
|
||||||
**`kTCCServiceSystemPolicySysAdminFiles`** एक उपयोगकर्ता के **`NFSHomeDirectory`** विशेषता को **बदलने** की अनुमति देता है, जो उसके होम फ़ोल्डर को बदलता है और इसलिए **TCC** को **बायपास** करने की अनुमति देता है।
|
**`kTCCServiceSystemPolicySysAdminFiles`** एक उपयोगकर्ता के **`NFSHomeDirectory`** विशेषता को **बदलने** की अनुमति देता है, जो उसके होम फ़ोल्डर को बदलता है और इसलिए **TCC** को **बायपास** करने की अनुमति देता है।
|
||||||
|
|
||||||
### User TCC DB to FDA
|
### उपयोगकर्ता TCC DB से FDA
|
||||||
|
|
||||||
**यूजर TCC** डेटाबेस पर **लिखने की अनुमतियाँ** प्राप्त करने पर आप **`FDA`** अनुमतियाँ नहीं दे सकते, केवल वही जो सिस्टम डेटाबेस में रहता है वह ऐसा कर सकता है।
|
**उपयोगकर्ता TCC** डेटाबेस पर **लिखने की अनुमतियाँ** प्राप्त करने पर आप **`FDA`** अनुमतियाँ नहीं दे सकते, केवल वही जो सिस्टम डेटाबेस में रहता है वह ऐसा कर सकता है।
|
||||||
|
|
||||||
लेकिन आप **`Finder के लिए ऑटोमेशन अधिकार`** दे सकते हैं, और FDA\* तक पहुंच बढ़ाने के लिए पिछले तकनीक का दुरुपयोग कर सकते हैं।
|
लेकिन आप **`Finder के लिए ऑटोमेशन अधिकार`** दे सकते हैं, और FDA\* तक बढ़ाने के लिए पिछले तकनीक का दुरुपयोग कर सकते हैं।
|
||||||
|
|
||||||
### **FDA to TCC permissions**
|
### **FDA से TCC अनुमतियाँ**
|
||||||
|
|
||||||
**पूर्ण डिस्क एक्सेस** का TCC नाम **`kTCCServiceSystemPolicyAllFiles`** है।
|
**पूर्ण डिस्क एक्सेस** का TCC नाम **`kTCCServiceSystemPolicyAllFiles`** है।
|
||||||
|
|
||||||
मुझे नहीं लगता कि यह एक वास्तविक प्रिवेस्क है, लेकिन अगर आप इसे उपयोगी पाते हैं: यदि आप FDA के साथ एक प्रोग्राम को नियंत्रित करते हैं, तो आप **उपयोगकर्ताओं के TCC डेटाबेस को संशोधित कर सकते हैं और अपने लिए कोई भी एक्सेस दे सकते हैं**। यह एक स्थायी तकनीक के रूप में उपयोगी हो सकता है यदि आप अपनी FDA अनुमतियाँ खो देते हैं।
|
मुझे नहीं लगता कि यह एक वास्तविक प्रिवेस्क है, लेकिन अगर आप इसे उपयोगी पाते हैं: यदि आप FDA के साथ एक प्रोग्राम को नियंत्रित करते हैं, तो आप **उपयोगकर्ताओं के TCC डेटाबेस को संशोधित कर सकते हैं और अपने लिए कोई भी एक्सेस दे सकते हैं**। यह एक स्थायी तकनीक के रूप में उपयोगी हो सकता है यदि आप अपनी FDA अनुमतियाँ खो देते हैं।
|
||||||
|
|
||||||
### **SIP Bypass to TCC Bypass**
|
### **SIP बायपास से TCC बायपास**
|
||||||
|
|
||||||
सिस्टम **TCC डेटाबेस** को **SIP** द्वारा सुरक्षित किया गया है, यही कारण है कि केवल **निर्दिष्ट अधिकारों वाले प्रक्रियाएँ इसे संशोधित करने में सक्षम होंगी**। इसलिए, यदि एक हमलावर एक **SIP बायपास** पाता है जो एक **फाइल** पर है (SIP द्वारा प्रतिबंधित एक फ़ाइल को संशोधित करने में सक्षम होना), तो वह सक्षम होगा:
|
सिस्टम **TCC डेटाबेस** **SIP** द्वारा सुरक्षित है, यही कारण है कि केवल वे प्रक्रियाएँ जिनके पास **निर्दिष्ट अधिकार हैं, उसे संशोधित कर सकेंगी**। इसलिए, यदि एक हमलावर एक **SIP बायपास** एक **फाइल** पर पाता है (SIP द्वारा प्रतिबंधित फ़ाइल को संशोधित करने में सक्षम), तो वह सक्षम होगा:
|
||||||
|
|
||||||
- **TCC डेटाबेस की सुरक्षा को हटा दें**, और अपने लिए सभी TCC अनुमतियाँ दें। वह उदाहरण के लिए इन फ़ाइलों में से किसी का दुरुपयोग कर सकता है:
|
- **TCC डेटाबेस की सुरक्षा को हटा दें**, और अपने लिए सभी TCC अनुमतियाँ दें। वह उदाहरण के लिए इन फ़ाइलों में से किसी का दुरुपयोग कर सकता है:
|
||||||
- TCC सिस्टम डेटाबेस
|
- TCC सिस्टम डेटाबेस
|
||||||
- REG.db
|
- REG.db
|
||||||
- MDMOverrides.plist
|
- MDMOverrides.plist
|
||||||
|
|
||||||
हालांकि, इस **SIP बायपास का TCC बायपास करने के लिए** दुरुपयोग करने का एक और विकल्प है, फ़ाइल `/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist` उन अनुप्रयोगों की अनुमति सूची है जिन्हें TCC अपवाद की आवश्यकता होती है। इसलिए, यदि एक हमलावर इस फ़ाइल से **SIP सुरक्षा को हटा सकता है** और अपना **स्वयं का अनुप्रयोग** जोड़ सकता है, तो अनुप्रयोग TCC को बायपास करने में सक्षम होगा।\
|
हालांकि, इस **SIP बायपास का दुरुपयोग करने का एक और विकल्प है**, फ़ाइल `/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist` उन अनुप्रयोगों की अनुमति सूची है जिन्हें TCC अपवाद की आवश्यकता होती है। इसलिए, यदि एक हमलावर इस फ़ाइल से **SIP सुरक्षा को हटा सकता है** और अपना **स्वयं का अनुप्रयोग** जोड़ सकता है, तो अनुप्रयोग TCC को बायपास करने में सक्षम होगा।\
|
||||||
उदाहरण के लिए टर्मिनल जोड़ने के लिए:
|
उदाहरण के लिए टर्मिनल जोड़ने के लिए:
|
||||||
```bash
|
```bash
|
||||||
# Get needed info
|
# Get needed info
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user