iOS Pentesting बिना Jailbreak के

Reading time: 5 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

मुख्य विचार

ऐप्लिकेशन जो entitlement get_task_allow के साथ साइन किए गए हैं, तीसरे पक्ष के ऐप्लिकेशनों को task_for_pid() नामक एक फ़ंक्शन को प्रारंभिक ऐप्लिकेशन के प्रक्रिया आईडी के साथ तर्क के रूप में चलाने की अनुमति देते हैं ताकि उस पर कार्य पोर्ट प्राप्त किया जा सके (इसे नियंत्रित करने और इसकी मेमोरी तक पहुंचने में सक्षम होना)।

हालांकि, यह केवल IPA को खींचने, इसे entitlement के साथ फिर से साइन करने और इसे अपने डिवाइस पर फ्लैश करने जितना आसान नहीं है। इसका कारण FairPlay सुरक्षा है। जब ऐप का सिग्नेचर बदलता है, तो DRM (Digital Rights Management) कुंजी अमान्य हो जाती है और ऐप काम नहीं करेगा

एक पुराने जेलब्रोकन डिवाइस के साथ, IPA को स्थापित करना संभव है, इसे अपने पसंदीदा टूल का उपयोग करके डिक्रिप्ट करना (जैसे Iridium या frida-ios-dump), और इसे डिवाइस से वापस खींचना। हालांकि, यदि संभव हो, तो डिक्रिप्टेड IPA के लिए क्लाइंट से ही पूछना बेहतर है।

डिक्रिप्टेड IPA प्राप्त करें

इसे Apple से प्राप्त करें

  1. iPhone में pentest करने के लिए ऐप इंस्टॉल करें
  2. अपने macos में Apple Configurator इंस्टॉल और लॉन्च करें
  3. अपने Mac पर Terminal खोलें, और /Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps में cd करें। IPA बाद में इस फ़ोल्डर में दिखाई देगा।
  4. आपको अपना iOS डिवाइस दिखाई देना चाहिए। उस पर डबल-क्लिक करें, और फिर शीर्ष मेनू बार से Add + → Apps पर क्लिक करें।
  5. Add पर क्लिक करने के बाद, Configurator Apple से IPA डाउनलोड करेगा, और इसे आपके डिवाइस पर पुश करने का प्रयास करेगा। यदि आपने पहले मेरी सिफारिश का पालन किया और IPA पहले से ही इंस्टॉल किया है, तो ऐप को फिर से इंस्टॉल करने के लिए एक प्रॉम्प्ट दिखाई देगा।
  6. IPA को /Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps के अंदर डाउनलोड किया जाना चाहिए, जहाँ से आप इसे प्राप्त कर सकते हैं।

इस प्रक्रिया के बारे में अधिक विस्तृत जानकारी के लिए https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed देखें।

ऐप को डिक्रिप्ट करना

IPA को डिक्रिप्ट करने के लिए हम इसे इंस्टॉल करने जा रहे हैं। हालाँकि, यदि आपके पास एक पुराना जेलब्रोकन iPhone है, तो संभावित रूप से इसका संस्करण ऐप द्वारा समर्थित नहीं होगा क्योंकि आमतौर पर ऐप्स केवल नवीनतम संस्करणों का समर्थन करते हैं।

तो, इसे इंस्टॉल करने के लिए, बस IPA को अनज़िप करें:

bash
unzip redacted.ipa -d unzipped

Info.plist में न्यूनतम समर्थित संस्करण के लिए जांचें और यदि आपका डिवाइस उससे पुराना है, तो मान को बदलें ताकि यह समर्थित हो सके।

IPA को फिर से ज़िप करें:

bash
cd unzipped
zip -r ../no-min-version.ipa *

फिर, उदाहरण के लिए IPA स्थापित करें:

bash
ideviceinstaller -i no-min-version.ipa -w

ध्यान दें कि आपको किसी भी invalid signature त्रुटियों को रोकने के लिए Cydia से AppSync Unified tweak की आवश्यकता हो सकती है।

एक बार स्थापित होने के बाद, आप Cydia से Iridium tweak का उपयोग करके डिक्रिप्टेड IPA प्राप्त कर सकते हैं।

पैच अधिकार और फिर से साइन करें

get-task-allow अधिकार के साथ एप्लिकेशन को फिर से साइन करने के लिए कई उपकरण उपलब्ध हैं जैसे app-signer, codesign, और iResignapp-signer का एक बहुत उपयोगकर्ता-अनुकूल इंटरफ़ेस है जो एक IPA फ़ाइल को फिर से साइन करने की अनुमति देता है, जिसमें फिर से साइन करने के लिए IPA, get-taks-allow डालने और उपयोग करने के लिए प्रमाणपत्र और प्रोविजनिंग प्रोफ़ाइल को इंगित करना शामिल है।

प्रमाणपत्र और साइनिंग प्रोफाइल के संबंध में, Apple सभी खातों के लिए Xcode के माध्यम से मुफ्त डेवलपर साइनिंग प्रोफाइल प्रदान करता है। बस एक ऐप बनाएं और एक कॉन्फ़िगर करें। फिर, SettingsPrivacy & Security पर जाकर iPhone को डेवलपर ऐप्स पर भरोसा करने के लिए कॉन्फ़िगर करें और Developer Mode पर क्लिक करें।

फिर से साइन की गई IPA के साथ, इसे डिवाइस में स्थापित करने का समय है ताकि इसे पेंटेस्ट किया जा सके:

bash
ideviceinstaller -i resigned.ipa -w

Hook

आप आसानी से अपने ऐप को सामान्य उपकरणों जैसे frida और objection का उपयोग करके हुक कर सकते हैं:

bash
objection -g [your app bundle ID] explore

संदर्भ

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें