
प्रूफ-ऑफ-कॉन्सेप्ट Python स्क्रिप्ट जो iOS फ़ाइल एक्सफिल्ट्रेशन को डिवाइस बैकअप रिस्टोरेशन में मैलिशियस सिमलिंक के माध्यम से प्रदर्शित करती है, जो कॉम.एप्पल.मोबाइल.MCInstall सेवा को लक्षित करके मनमानी फ़ाइल पढ़ने की अनुमति देती है।
बहुत महत्वपूर्ण चेतावनी: यह सॉफ़्टवेयर केवल शैक्षिक और सुरक्षा अनुसंधान उद्देश्यों के लिए एक अवधारणा प्रमाण (PoC) है।
यह Python स्क्रिप्ट एक भेद्यता (काल्पनिक या पिछली भेद्यताओं पर आधारित, जिसे यहां मूल PoC के अनुसार उदाहरणात्मक रूप से 'iOS 18.3 से पहले' के रूप में संदर्भित किया गया है) प्रदर्शित करती है जो iOS डिवाइस से मनमानी फ़ाइलों को एक्सफिल्ट्रेट करने की अनुमति देती है। यह विधि डिवाइस के बैकअप में हेरफेर, उस बैकअप के अंदर एक दुर्भावनापूर्ण सिम्बोलिक लिंक (symlink) बनाने और फिर इस संशोधित बैकअप को डिवाइस पर पुनर्स्थापित करने पर आधारित है। अंत में, सिस्टम सेवा (com.apple.mobile.MCInstall) के साथ इंटरैक्ट किया जाता है ताकि वह अनजाने में symlink द्वारा इंगित फ़ाइल को पढ़े।
यह स्क्रिप्ट एक सुरक्षा शोधकर्ता के दृष्टिकोण से 'बेहतर' की गई है जिसमें शामिल हैं:
शोषित भेद्यता कमजोरियों की निम्नलिखित श्रृंखला का लाभ उठाती है (पुराने iOS संस्करणों में मौजूद):
CloudConfigurationDetails.plist) को एक सिम्बोलिक लिंक द्वारा प्रतिस्थापित किया जाता है जो डिवाइस के फ़ाइल सिस्टम में एक संवेदनशील फ़ाइल (जैसे /private/etc/passwd) को इंगित करता है।com.apple.mobile.MCInstall इस PoC में) जिसके पास मूल कॉन्फ़िगरेशन फ़ाइल (CloudConfigurationDetails.plist) को पढ़ने की अनुमति है, को आमंत्रित किया जा सकता है। फ़ाइल को पढ़ने का प्रयास करते समय, ऑपरेटिंग सिस्टम सिम्बोलिक लिंक का अनुसरण करता है और इसके बजाय symlink द्वारा इंगित संवेदनशील फ़ाइल की सामग्री पढ़ता है।iOS संस्करण पर ध्यान दें: मूल PoC में 'iOS < 18.3' का उल्लेख है। यह अंकन असामान्य है। Apple ने iOS संस्करणों में बैकअप और कॉन्फ़िगरेशन प्रोफ़ाइल में symlinks के प्रबंधन से संबंधित भेद्यताओं को काफी पहले (आमतौर पर इस प्रकार के सबसे प्रत्यक्ष वैक्टर के लिए iOS 15/16 से पहले) पैच कर दिया है। यह संस्करण संदर्भ स्क्रिप्ट के मूल के अनुरूप बनाए रखा गया है, लेकिन इसे 'एक अपैच्ड कमजोर संस्करण' के उदाहरणात्मक रूप से समझा जाना चाहिए।
idevicebackup2 की उपस्थिति की पुष्टि करता है।idevicebackup2 की आवश्यकता है।
brew install libimobiledevicesudo apt-get install libimobiledevice-utils (पैकेज का नाम भिन्न हो सकता है)pip install usbmux-python python-lockdown packaging
git clone <url-del-repositorio>
cd <nombre-del-directorio>
libimobiledevice स्थापित है और idevicebackup2 सुलभ है।pip install -r requirements.txt # (Si creas un requirements.txt con usbmux-python, python-lockdown, packaging)
# o manualmente:
# pip install usbmux-python python-lockdown packaging
./exploit_ios_file_read.py [OPCIONES]