` का उपयोग करके रूट में बढ़ता है, तो `~/.zshenv` फ़ाइल ट्रिगर होगी, प्रभावी रूप से रूट में बढ़ते हुए।
#### [**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/)
[**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/) में यह पता चला कि वही **`system_installd`** प्रक्रिया अभी भी दुरुपयोग की जा सकती है क्योंकि यह **`/tmp`** के अंदर SIP द्वारा संरक्षित एक यादृच्छिक नामित फ़ोल्डर के अंदर **पोस्ट-इंस्टॉल स्क्रिप्ट** डाल रही थी। समस्या यह है कि **`/tmp` स्वयं SIP द्वारा संरक्षित नहीं है**, इसलिए एक **वर्चुअल इमेज को उस पर माउंट** करना संभव था, फिर **इंस्टॉलर** वहां **पोस्ट-इंस्टॉल स्क्रिप्ट** डालता, **वर्चुअल इमेज को अनमाउंट** करता, **सभी फ़ोल्डरों को फिर से बनाता** और **पेलोड** के साथ **पोस्ट इंस्टॉलेशन** स्क्रिप्ट को निष्पादित करने के लिए जोड़ता।
#### [fsck_cs उपयोगिता](https://www.theregister.com/2016/03/30/apple_os_x_rootless/)
एक भेद्यता की पहचान की गई जहां **`fsck_cs`** को एक महत्वपूर्ण फ़ाइल को भ्रष्ट करने के लिए गुमराह किया गया, इसकी **सांकेतिक लिंक** का पालन करने की क्षमता के कारण। विशेष रूप से, हमलावरों ने _`/dev/diskX`_ से फ़ाइल `/System/Library/Extensions/AppleKextExcludeList.kext/Contents/Info.plist` के लिए एक लिंक तैयार किया। _`/dev/diskX`_ पर **`fsck_cs`** को निष्पादित करने से `Info.plist` का भ्रष्टाचार हुआ। इस फ़ाइल की अखंडता ऑपरेटिंग सिस्टम के SIP (सिस्टम इंटीग्रिटी प्रोटेक्शन) के लिए महत्वपूर्ण है, जो कर्नेल एक्सटेंशन के लोडिंग को नियंत्रित करता है। एक बार भ्रष्ट होने पर, SIP की कर्नेल अपवाद प्रबंधन की क्षमता प्रभावित होती है।
इस भेद्यता का लाभ उठाने के लिए आदेश हैं:
```bash
ln -s /System/Library/Extensions/AppleKextExcludeList.kext/Contents/Info.plist /dev/diskX
fsck_cs /dev/diskX 1>&-
touch /Library/Extensions/
reboot
```
इस कमजोरियों के शोषण के गंभीर परिणाम हैं। `Info.plist` फ़ाइल, जो सामान्यतः कर्नेल एक्सटेंशन के लिए अनुमतियों का प्रबंधन करने के लिए जिम्मेदार होती है, अप्रभावी हो जाती है। इसमें कुछ एक्सटेंशनों, जैसे `AppleHWAccess.kext` को ब्लैकलिस्ट करने की असमर्थता शामिल है। परिणामस्वरूप, SIP के नियंत्रण तंत्र के खराब होने के कारण, इस एक्सटेंशन को लोड किया जा सकता है, जो सिस्टम की RAM तक अनधिकृत पढ़ने और लिखने की पहुंच प्रदान करता है।
#### [SIP संरक्षित फ़ोल्डरों पर माउंट करें](https://www.slideshare.net/i0n1c/syscan360-stefan-esser-os-x-el-capitan-sinking-the-ship)
**सुरक्षा को बायपास करने के लिए SIP संरक्षित फ़ोल्डरों पर एक नया फ़ाइल सिस्टम माउंट करना संभव था।**
```bash
mkdir evil
# Add contento to the folder
hdiutil create -srcfolder evil evil.dmg
hdiutil attach -mountpoint /System/Library/Snadbox/ evil.dmg
```
#### [Upgrader bypass (2016)](https://objective-see.org/blog/blog_0x14.html)
सिस्टम को OS को अपग्रेड करने के लिए `Install macOS Sierra.app` के भीतर एक एम्बेडेड इंस्टॉलर डिस्क इमेज से बूट करने के लिए सेट किया गया है, `bless` उपयोगिता का उपयोग करते हुए। उपयोग की जाने वाली कमांड इस प्रकार है:
```bash
/usr/sbin/bless -setBoot -folder /Volumes/Macintosh HD/macOS Install Data -bootefi /Volumes/Macintosh HD/macOS Install Data/boot.efi -options config="\macOS Install Data\com.apple.Boot" -label macOS Installer
```
इस प्रक्रिया की सुरक्षा को खतरा हो सकता है यदि एक हमलावर बूट करने से पहले अपग्रेड इमेज (`InstallESD.dmg`) को बदलता है। रणनीति में एक डायनामिक लोडर (dyld) को एक दुर्भावनापूर्ण संस्करण (`libBaseIA.dylib`) के साथ प्रतिस्थापित करना शामिल है। यह प्रतिस्थापन तब होता है जब इंस्टॉलर शुरू होता है, हमलावर के कोड का निष्पादन होता है।
हमलावर का कोड अपग्रेड प्रक्रिया के दौरान नियंत्रण प्राप्त करता है, इंस्टॉलर पर सिस्टम के विश्वास का लाभ उठाते हुए। हमला `InstallESD.dmg` इमेज को मेथड स्विज़लिंग के माध्यम से बदलने के द्वारा आगे बढ़ता है, विशेष रूप से `extractBootBits` मेथड को लक्षित करता है। यह डिस्क इमेज के उपयोग से पहले दुर्भावनापूर्ण कोड को इंजेक्ट करने की अनुमति देता है।
इसके अलावा, `InstallESD.dmg` के भीतर, एक `BaseSystem.dmg` है, जो अपग्रेड कोड की रूट फ़ाइल प्रणाली के रूप में कार्य करता है। इसमें एक डायनामिक लाइब्रेरी इंजेक्ट करने से दुर्भावनापूर्ण कोड को OS-स्तरीय फ़ाइलों को बदलने में सक्षम प्रक्रिया के भीतर कार्य करने की अनुमति मिलती है, जिससे सिस्टम के समझौते की संभावना काफी बढ़ जाती है।
#### [systemmigrationd (2023)](https://www.youtube.com/watch?v=zxZesAN-TEk)
इस [**DEF CON 31**](https://www.youtube.com/watch?v=zxZesAN-TEk) की बात में दिखाया गया है कि **`systemmigrationd`** (जो SIP को बायपास कर सकता है) एक **bash** और एक **perl** स्क्रिप्ट को निष्पादित करता है, जिसे env वेरिएबल **`BASH_ENV`** और **`PERL5OPT`** के माध्यम से दुरुपयोग किया जा सकता है।
#### CVE-2023-42860
जैसा कि [**इस ब्लॉग पोस्ट में विस्तृत**](https://blog.kandji.io/apple-mitigates-vulnerabilities-installer-scripts) किया गया है, `InstallAssistant.pkg` पैकेज से एक `postinstall` स्क्रिप्ट निष्पादित हो रही थी:
```bash
/usr/bin/chflags -h norestricted "${SHARED_SUPPORT_PATH}/SharedSupport.dmg"
```
and यह संभव था कि `${SHARED_SUPPORT_PATH}/SharedSupport.dmg` में एक symlink बनाया जाए जो एक उपयोगकर्ता को **किसी भी फ़ाइल को अनरिस्ट्रिक्ट करने, SIP सुरक्षा को बायपास करने** की अनुमति देगा।
### **com.apple.rootless.install**
> [!CAUTION]
> अधिकार **`com.apple.rootless.install`** SIP को बायपास करने की अनुमति देता है
अधिकार `com.apple.rootless.install` macOS पर सिस्टम इंटीग्रिटी प्रोटेक्शन (SIP) को बायपास करने के लिए जाना जाता है। यह विशेष रूप से [**CVE-2022-26712**](https://jhftss.github.io/CVE-2022-26712-The-POC-For-SIP-Bypass-Is-Even-Tweetable/) के संदर्भ में उल्लेखित किया गया था।
इस विशेष मामले में, `/System/Library/PrivateFrameworks/ShoveService.framework/Versions/A/XPCServices/SystemShoveService.xpc` पर स्थित सिस्टम XPC सेवा के पास यह अधिकार है। यह संबंधित प्रक्रिया को SIP प्रतिबंधों को दरकिनार करने की अनुमति देता है। इसके अलावा, यह सेवा विशेष रूप से एक विधि प्रस्तुत करती है जो किसी भी सुरक्षा उपायों को लागू किए बिना फ़ाइलों को स्थानांतरित करने की अनुमति देती है।
## सील किए गए सिस्टम स्नैपशॉट
सील किए गए सिस्टम स्नैपशॉट एक विशेषता है जिसे Apple ने **macOS Big Sur (macOS 11)** में **सिस्टम इंटीग्रिटी प्रोटेक्शन (SIP)** तंत्र के हिस्से के रूप में सुरक्षा और सिस्टम स्थिरता की एक अतिरिक्त परत प्रदान करने के लिए पेश किया। ये मूल रूप से सिस्टम वॉल्यूम के केवल पढ़ने योग्य संस्करण हैं।
यहाँ एक अधिक विस्तृत नज़र है:
1. **अपरिवर्तनीय सिस्टम**: सील किए गए सिस्टम स्नैपशॉट macOS सिस्टम वॉल्यूम को "अपरिवर्तनीय" बनाते हैं, जिसका अर्थ है कि इसे संशोधित नहीं किया जा सकता। यह सुरक्षा या सिस्टम स्थिरता को खतरे में डालने वाले किसी भी अनधिकृत या आकस्मिक परिवर्तनों को रोकता है।
2. **सिस्टम सॉफ़्टवेयर अपडेट**: जब आप macOS अपडेट या अपग्रेड स्थापित करते हैं, तो macOS एक नया सिस्टम स्नैपशॉट बनाता है। फिर macOS स्टार्टअप वॉल्यूम इस नए स्नैपशॉट पर स्विच करने के लिए **APFS (Apple File System)** का उपयोग करता है। अपडेट लागू करने की पूरी प्रक्रिया अधिक सुरक्षित और विश्वसनीय हो जाती है क्योंकि यदि अपडेट के दौरान कुछ गलत होता है, तो सिस्टम हमेशा पिछले स्नैपशॉट पर वापस लौट सकता है।
3. **डेटा पृथक्करण**: macOS कैटालिना में पेश किए गए डेटा और सिस्टम वॉल्यूम पृथक्करण के सिद्धांत के साथ, सील किए गए सिस्टम स्नैपशॉट सुविधा सुनिश्चित करती है कि आपके सभी डेटा और सेटिंग्स एक अलग "**डेटा**" वॉल्यूम पर संग्रहीत हैं। यह पृथक्करण आपके डेटा को सिस्टम से स्वतंत्र बनाता है, जो सिस्टम अपडेट की प्रक्रिया को सरल बनाता है और सिस्टम सुरक्षा को बढ़ाता है।
याद रखें कि ये स्नैपशॉट macOS द्वारा स्वचालित रूप से प्रबंधित होते हैं और आपके डिस्क पर अतिरिक्त स्थान नहीं लेते हैं, APFS की स्थान साझा करने की क्षमताओं के कारण। यह भी महत्वपूर्ण है कि ये स्नैपशॉट **टाइम मशीन स्नैपशॉट** से भिन्न होते हैं, जो पूरे सिस्टम के उपयोगकर्ता-सुलभ बैकअप होते हैं।
### स्नैपशॉट की जांच करें
कमांड **`diskutil apfs list`** **APFS वॉल्यूम** और उनके लेआउट के **विवरण** सूचीबद्ध करता है:
+-- Container disk3 966B902E-EDBA-4775-B743-CF97A0556A13
| ====================================================
| APFS Container Reference: disk3
| Size (Capacity Ceiling): 494384795648 B (494.4 GB)
| Capacity In Use By Volumes: 219214536704 B (219.2 GB) (44.3% used)
| Capacity Not Allocated: 275170258944 B (275.2 GB) (55.7% free)
| |
| +-< Physical Store disk0s2 86D4B7EC-6FA5-4042-93A7-D3766A222EBE
| | -----------------------------------------------------------
| | APFS Physical Store Disk: disk0s2
| | Size: 494384795648 B (494.4 GB)
| |
| +-> Volume disk3s1 7A27E734-880F-4D91-A703-FB55861D49B7
| | ---------------------------------------------------
| | APFS Volume Disk (Role): disk3s1 (System)
| | Name: Macintosh HD (Case-insensitive)
| | Mount Point: /System/Volumes/Update/mnt1
| | Capacity Consumed: 12819210240 B (12.8 GB)
| | Sealed: Broken
| | FileVault: Yes (Unlocked)
| | Encrypted: No
| | |
| | Snapshot: FAA23E0C-791C-43FF-B0E7-0E1C0810AC61
| | Snapshot Disk: disk3s1s1
| | Snapshot Mount Point: /
| | Snapshot Sealed: Yes
[...]
+-> Volume disk3s5 281959B7-07A1-4940-BDDF-6419360F3327
| ---------------------------------------------------
| APFS Volume Disk (Role): disk3s5 (Data)
| Name: Macintosh HD - Data (Case-insensitive)
| Mount Point: /System/Volumes/Data
| Capacity Consumed: 412071784448 B (412.1 GB)
| Sealed: No
| FileVault: Yes (Unlocked)
पिछले आउटपुट में यह देखना संभव है कि **उपयोगकर्ता-सुलभ स्थान** `/System/Volumes/Data` के तहत माउंट किए गए हैं।
इसके अलावा, **macOS सिस्टम वॉल्यूम स्नैपशॉट** `/` में माउंट किया गया है और यह **सील** है (OS द्वारा क्रिप्टोग्राफिक रूप से हस्ताक्षरित)। इसलिए, यदि SIP को बायपास किया जाता है और इसे संशोधित किया जाता है, तो **OS अब बूट नहीं होगा**।
यह भी संभव है कि **सत्यापित करें कि सील सक्षम है** चलाकर:
```bash
csrutil authenticated-root status
Authenticated Root status: enabled
```
इसके अलावा, स्नैपशॉट डिस्क को **केवल-पढ़ने** के रूप में भी माउंट किया गया है:
```bash
mount
/dev/disk3s1s1 on / (apfs, sealed, local, read-only, journaled)
```
{{#include ../../../banners/hacktricks-training.md}}