iOS Pentesting बिना Jailbreak के

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() नामक एक फ़ंक्शन को प्रारंभिक एप्लिकेशन के प्रक्रिया ID के साथ तर्क के रूप में चलाने की अनुमति देती हैं ताकि उस पर कार्य पोर्ट प्राप्त किया जा सके (इसे नियंत्रित करने और इसकी मेमोरी तक पहुँचने में सक्षम होना)।

हालांकि, यह केवल 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

डेवलपर मोड सक्षम करें (iOS 16+)

iOS 16 से Apple ने डेवलपर मोड पेश किया: कोई भी बाइनरी जो get_task_allow ले जाती है या एक विकास प्रमाणपत्र के साथ हस्ताक्षरित है, तब तक लॉन्च करने से मना कर देगी जब तक कि डिवाइस पर डेवलपर मोड सक्षम नहीं किया गया है। आप इस फ्लैग के चालू होने तक Frida/LLDB को भी संलग्न नहीं कर पाएंगे।

  1. फोन पर कोई भी डेवलपर-हस्ताक्षरित IPA स्थापित या पुश करें।
  2. सेटिंग्स → गोपनीयता और सुरक्षा → डेवलपर मोड पर जाएं और इसे चालू करें।
  3. डिवाइस पुनरारंभ होगा; पासकोड दर्ज करने के बाद आपसे डेवलपर मोड चालू करें के लिए कहा जाएगा।

डेवलपर मोड सक्रिय रहता है जब तक आप इसे बंद नहीं करते या फोन को मिटाते नहीं हैं, इसलिए यह कदम प्रति डिवाइस केवल एक बार करना होता है। Apple दस्तावेज़ सुरक्षा निहितार्थों को समझाता है।

आधुनिक साइडलोडिंग विकल्प

अब कई परिपक्व तरीके हैं जिनसे बिना जेलब्रेक के साइडलोड और फिर से हस्ताक्षरित IPAs को अद्यतित रखा जा सकता है:

उपकरणआवश्यकताएँताकतसीमाएँ
AltStore 2 / SideStoremacOS/Windows/Linux साथी जो हर 7 दिन में IPA को मुफ्त विकास प्रोफ़ाइल के साथ फिर से हस्ताक्षरित करता हैWi-Fi पर स्वचालित पुनः लोड, iOS 17 तक काम करता हैएक ही नेटवर्क पर कंप्यूटर की आवश्यकता, Apple द्वारा 3-ऐप सीमा लागू
TrollStore 1/2CoreTrust बग के प्रति संवेदनशील iOS 14 – 15.4.1 पर डिवाइसस्थायी हस्ताक्षर (7-दिन की सीमा नहीं); एक बार स्थापित होने के बाद कंप्यूटर की आवश्यकता नहींiOS 15.5+ पर समर्थित नहीं (बग पैच किया गया)

वर्तमान iOS संस्करणों पर नियमित पेंटेस्ट के लिए Alt/Side-Store आमतौर पर सबसे व्यावहारिक विकल्प होते हैं।

हुकिंग / डायनामिक इंस्ट्रुमेंटेशन

आप अपने ऐप को ठीक उसी तरह हुक कर सकते हैं जैसे एक जेलब्रोकन डिवाइस पर जब यह get_task_allow के साथ हस्ताक्षरित हो और डेवलपर मोड चालू हो:

bash
# Spawn & attach with objection
objection -g "com.example.target" explore

# Or plain Frida
frida -U -f com.example.target -l my_script.js --no-pause

हाल की Frida रिलीज़ (>=16) स्वचालित रूप से पॉइंटर ऑथेंटिकेशन और अन्य iOS 17 निवारणों को संभालती हैं, इसलिए अधिकांश मौजूदा स्क्रिप्ट बिना किसी बदलाव के काम करती हैं।

स्वचालित डायनामिक विश्लेषण MobSF के साथ (कोई जेलब्रेक नहीं)

MobSF एक वास्तविक डिवाइस पर एक डेवलपर-साइन किए गए IPA को उसी तकनीक (get_task_allow) का उपयोग करके इंस्ट्रूमेंट कर सकता है और फाइल सिस्टम ब्राउज़र, ट्रैफ़िक कैप्चर और Frida कंसोल के साथ एक वेब UI प्रदान करता है【】। सबसे तेज़ तरीका यह है कि MobSF को Docker में चलाएं और फिर अपने iPhone को USB के माध्यम से कनेक्ट करें:

bash
docker pull opensecurity/mobile-security-framework-mobsf:latest
docker run -p 8000:8000 --privileged \
-v /var/run/usbmuxd:/var/run/usbmuxd \
opensecurity/mobile-security-framework-mobsf:latest
# Browse to http://127.0.0.1:8000 and upload your resigned IPA

MobSF स्वचालित रूप से बाइनरी को तैनात करेगा, ऐप सैंडबॉक्स के अंदर एक Frida सर्वर सक्षम करेगा और एक इंटरैक्टिव रिपोर्ट उत्पन्न करेगा।

iOS 17 & लॉकडाउन मोड चेतावनियाँ

  • लॉकडाउन मोड (सेटिंग्स → गोपनीयता और सुरक्षा) अस्वीकृत या बाहरी रूप से हस्ताक्षरित गतिशील पुस्तकालयों को लोड करने से गतिशील लिंक को रोकता है। उन उपकरणों का परीक्षण करते समय जिनमें यह मोड सक्षम हो सकता है, सुनिश्चित करें कि यह अक्षम है या आपकी Frida/objection सत्र तुरंत समाप्त हो जाएंगे।
  • पॉइंटर ऑथेंटिकेशन (PAC) A12+ उपकरणों पर प्रणाली-व्यापी लागू किया गया है। Frida ≥16 पारदर्शी रूप से PAC स्ट्रिपिंग को संभालता है — बस सुनिश्चित करें कि frida-server और Python/CLI टूलचेन नवीनतम रहें जब एक नया प्रमुख iOS संस्करण जारी हो।

संदर्भ

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 का समर्थन करें