iOS Testing Environment

Reading time: 9 minutes

tip

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

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

Apple Developer Program

एक प्रावधान पहचान एक Apple डेवलपर खाते से संबंधित सार्वजनिक और निजी कुंजियों का संग्रह है। ऐप्स पर हस्ताक्षर करने के लिए आपको 99$/वर्ष का भुगतान करना होगा ताकि आप Apple Developer Program में पंजीकरण कर सकें और अपनी प्रावधान पहचान प्राप्त कर सकें। इसके बिना, आप भौतिक डिवाइस पर स्रोत कोड से एप्लिकेशन नहीं चला सकेंगे। ऐसा करने का एक और विकल्प जेलब्रोकन डिवाइस का उपयोग करना है।

Xcode 7.2 से Apple ने एक मुफ्त iOS विकास प्रावधान प्रोफ़ाइल बनाने का विकल्प प्रदान किया है जो आपको एक असली iPhone पर अपने एप्लिकेशन को लिखने और परीक्षण करने की अनुमति देता है। Xcode --> Preferences --> Accounts --> + (अपने क्रेडेंशियल्स के लिए नया Appli ID जोड़ें) --> बनाए गए Apple ID पर क्लिक करें --> Manage Certificates --> + (Apple Development) --> Done
__फिर, अपने iPhone पर एप्लिकेशन चलाने के लिए आपको पहले iPhone को कंप्यूटर पर भरोसा करने के लिए इंगित करना होगा। फिर, आप Xcode से मोबाइल में एप्लिकेशन चलाने की कोशिश कर सकते हैं, लेकिन एक त्रुटि दिखाई देगी। इसलिए Settings --> General --> Profiles and Device Management पर जाएं --> अविश्वसनीय प्रोफ़ाइल का चयन करें और "Trust" पर क्लिक करें।

ध्यान दें कि एक ही हस्ताक्षर प्रमाणपत्र द्वारा हस्ताक्षरित एप्लिकेशन सुरक्षित तरीके से संसाधनों को साझा कर सकते हैं, जैसे कि कीचेन आइटम

प्रावधान प्रोफाइल फोन के अंदर /Library/MobileDevice/ProvisioningProfiles में संग्रहीत होते हैं।

Simulator

note

ध्यान दें कि सिम्युलेटर एक एमुलेटर के समान नहीं है। सिम्युलेटर केवल डिवाइस के व्यवहार और कार्यों का अनुकरण करता है लेकिन वास्तव में उनका उपयोग नहीं करता है।

Simulator

आपको जो पहली बात जाननी है वह यह है कि सिम्युलेटर के अंदर पेंटेस्ट करना जेलब्रोकन डिवाइस की तुलना में बहुत अधिक सीमित होगा

iOS ऐप बनाने और समर्थन के लिए आवश्यक सभी उपकरण केवल आधिकारिक रूप से Mac OS पर समर्थित हैं
Apple का वास्तविक उपकरण iOS एप्लिकेशन बनाने/डीबग करने/इंस्ट्रूमेंट करने के लिए Xcode है। इसका उपयोग अन्य घटकों को डाउनलोड करने के लिए किया जा सकता है जैसे कि सिम्युलेटर और विभिन्न SDK संस्करण जो आपके ऐप को बनाने और परीक्षण करने के लिए आवश्यक हैं।
आधिकारिक ऐप स्टोर से Xcode डाउनलोड करने की अत्यधिक सिफारिश की जाती है। अन्य संस्करणों में मैलवेयर हो सकता है।

सिम्युलेटर फ़ाइलें /Users/<username>/Library/Developer/CoreSimulator/Devices में पाई जा सकती हैं।

सिम्युलेटर खोलने के लिए, Xcode चलाएँ, फिर Xcode टैब में दबाएँ --> Open Developer tools --> Simulator
__अगली छवि में "iPod touch [...]" पर क्लिक करके आप परीक्षण के लिए अन्य डिवाइस का चयन कर सकते हैं:

Applications in the Simulator

/Users/<username>/Library/Developer/CoreSimulator/Devices के अंदर आप सभी स्थापित सिम्युलेटर पा सकते हैं। यदि आप उन फ़ाइलों तक पहुँच प्राप्त करना चाहते हैं जो एक एमुलेटर के अंदर बनाई गई एप्लिकेशन की हैं, तो यह जानना मुश्किल हो सकता है कि किसमें ऐप स्थापित हैसही UID खोजने का एक त्वरित तरीका है कि आप सिम्युलेटर में ऐप चलाएँ और निष्पादित करें:

bash
xcrun simctl list | grep Booted
iPhone 8 (BF5DA4F8-6BBE-4EA0-BA16-7E3AFD16C06C) (Booted)

एक बार जब आप UID जान लेते हैं, तो इसके भीतर स्थापित ऐप्स को /Users/<username>/Library/Developer/CoreSimulator/Devices/{UID}/data/Containers/Data/Application में पाया जा सकता है।

हालांकि, आश्चर्यजनक रूप से, आप यहां एप्लिकेशन नहीं पाएंगे। आपको /Users/<username>/Library/Developer/Xcode/DerivedData/{Application}/Build/Products/Debug-iphonesimulator/ तक पहुंचने की आवश्यकता है।

और इस फ़ोल्डर में आप एप्लिकेशन का पैकेज ढूंढ सकते हैं।

एमुलेटर

Corellium एकमात्र सार्वजनिक रूप से उपलब्ध iOS एमुलेटर है। यह एक एंटरप्राइज SaaS समाधान है जिसमें प्रति उपयोगकर्ता लाइसेंस मॉडल है और कोई परीक्षण लाइसेंस प्रदान नहीं करता है।

जेलब्रेक की आवश्यकता नहीं

इस ब्लॉग पोस्ट को देखें कि कैसे एक iOS एप्लिकेशन का परीक्षण किया जाए गैर-जेलब्रेक किए गए डिवाइस में: https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed

जेलब्रेकिंग

Apple सख्ती से आवश्यक करता है कि iPhone पर चलने वाला कोड Apple द्वारा जारी किए गए प्रमाणपत्र द्वारा हस्ताक्षरित होना चाहिएजेलब्रेकिंग उस प्रक्रिया को कहते हैं जिसमें सक्रिय रूप से ऐसी प्रतिबंधों और OS द्वारा लगाए गए अन्य सुरक्षा नियंत्रणों को बायपास किया जाता है। इसलिए, एक बार जब डिवाइस जेलब्रेक हो जाता है, तो अखंडता जांच जो स्थापित ऐप्स की जांच के लिए जिम्मेदार होती है, पैच की जाती है ताकि इसे बायपास किया जा सके।

note

Android के विपरीत, आप iOS में "डेवलपर मोड" में स्विच नहीं कर सकते ताकि डिवाइस पर असाइन किए गए/अविश्वसनीय कोड चल सके।

Android रूटिंग बनाम iOS जेलब्रेकिंग

हालांकि अक्सर इसकी तुलना की जाती है, Android पर रूटिंग और iOS पर जेलब्रेकिंग मौलिक रूप से अलग प्रक्रियाएँ हैं। Android उपकरणों पर रूटिंग में su बाइनरी स्थापित करना या रूटेड कस्टम ROM के साथ सिस्टम को बदलना शामिल हो सकता है, जिसे अनलॉक किए गए बूटलोडर के साथ आवश्यक रूप से शोषण की आवश्यकता नहीं होती है। कस्टम ROM को फ्लैश करना बूटलोडर को अनलॉक करने के बाद डिवाइस के OS को बदलता है, कभी-कभी शोषण की आवश्यकता होती है।

इसके विपरीत, iOS उपकरण कस्टम ROM को फ्लैश नहीं कर सकते हैं क्योंकि बूटलोडर केवल Apple द्वारा हस्ताक्षरित छवियों को बूट करने की अनुमति देता है। iOS को जेलब्रेक करना Apple के कोड साइनिंग सुरक्षा को बायपास करने का लक्ष्य रखता है ताकि असाइन किए गए कोड को चलाया जा सके, यह प्रक्रिया Apple के निरंतर सुरक्षा सुधारों द्वारा जटिल होती है।

जेलब्रेकिंग चुनौतियाँ

iOS को जेलब्रेक करना तेजी से कठिन होता जा रहा है क्योंकि Apple जल्दी से कमजोरियों को पैच करता है। iOS को डाउनग्रेड करना केवल एक रिलीज के बाद सीमित समय के लिए संभव है, जिससे जेलब्रेकिंग एक समय-संवेदनशील मामला बन जाता है। सुरक्षा परीक्षण के लिए उपयोग किए जाने वाले उपकरणों को अपडेट नहीं किया जाना चाहिए जब तक कि फिर से जेलब्रेकिंग की गारंटी न हो।

iOS अपडेट एक चुनौती-प्रतिक्रिया तंत्र (SHSH ब्लॉब) द्वारा नियंत्रित होते हैं, जो केवल Apple द्वारा हस्ताक्षरित प्रतिक्रियाओं के लिए स्थापना की अनुमति देता है। इस तंत्र को "साइनिंग विंडो" के रूप में जाना जाता है, जो OTA फर्मवेयर पैकेज को स्टोर करने और बाद में उपयोग करने की क्षमता को सीमित करता है। IPSW Downloads वेबसाइट वर्तमान साइनिंग विंडो की जांच करने के लिए एक संसाधन है।

जेलब्रेक की विविधताएँ

  • टेथर्ड जेलब्रेक प्रत्येक रिबूट के लिए कंप्यूटर कनेक्शन की आवश्यकता होती है।
  • सेमी-टेथर्ड जेलब्रेक बिना कंप्यूटर के गैर-जेलब्रेक मोड में बूट करने की अनुमति देता है।
  • सेमी-अनटेदर्ड जेलब्रेक बिना कंप्यूटर की आवश्यकता के मैन्युअल रूप से फिर से जेलब्रेकिंग की आवश्यकता होती है।
  • अनटेदर्ड जेलब्रेक बिना फिर से आवेदन की आवश्यकता के एक स्थायी जेलब्रेक समाधान प्रदान करता है।

जेलब्रेकिंग उपकरण और संसाधन

जेलब्रेकिंग उपकरण iOS संस्करण और डिवाइस के अनुसार भिन्न होते हैं। Can I Jailbreak?, The iPhone Wiki, और Reddit Jailbreak जैसे संसाधन अद्यतन जानकारी प्रदान करते हैं। उदाहरणों में शामिल हैं:

  • Checkra1n A7-A11 चिप उपकरणों के लिए।
  • Palera1n Checkm8 उपकरणों (A8-A11) के लिए iOS 15.0-16.5 पर।
  • Unc0ver iOS संस्करणों के लिए 14.8 तक।

अपने डिवाइस को संशोधित करना जोखिम उठाता है, और जेलब्रेकिंग को सावधानी के साथ किया जाना चाहिए।

जेलब्रेकिंग के लाभ और जोखिम

जेलब्रेकिंग OS द्वारा लगाए गए सैंडबॉक्सिंग को हटा देती है, जिससे ऐप्स को पूरे फाइल सिस्टम तक पहुंच मिलती है। यह स्वतंत्रता अस्वीकृत ऐप्स को स्थापित करने और अधिक API तक पहुंचने की अनुमति देती है। हालांकि, नियमित उपयोगकर्ताओं के लिए, जेलब्रेकिंग अनुशंसित नहीं है क्योंकि इससे संभावित सुरक्षा जोखिम और डिवाइस की अस्थिरता हो सकती है।

जेलब्रेकिंग के बाद

iOS Basic Testing Operations

जेलब्रेक डिटेक्शन

कई एप्लिकेशन यह पता लगाने की कोशिश करेंगे कि क्या मोबाइल जेलब्रेक किया गया है और इस मामले में एप्लिकेशन नहीं चलेगा।

  • जेलब्रेकिंग के बाद iOS फाइलें और फ़ोल्डर आमतौर पर स्थापित होते हैं, इन्हें यह निर्धारित करने के लिए खोजा जा सकता है कि क्या डिवाइस जेलब्रेक किया गया है।
  • एक जेलब्रेक किए गए डिवाइस में एप्लिकेशन को नए फ़ाइलों तक पढ़ने/लिखने की पहुंच मिलती है जो सैंडबॉक्स के बाहर होती हैं।
  • कुछ API कॉल अलग तरीके से व्यवहार करेंगी।
  • OpenSSH सेवा की उपस्थिति।
  • /bin/sh को कॉल करने पर 1 लौटाएगा, 0 के बजाय।

जेलब्रेकिंग का पता लगाने के बारे में अधिक जानकारी यहां

आप objection's ios jailbreak disable का उपयोग करके इन डिटेक्शनों से बचने की कोशिश कर सकते हैं।

जेलब्रेक डिटेक्शन बायपास

  • आप objection's ios jailbreak disable का उपयोग करके इन डिटेक्शनों से बचने की कोशिश कर सकते हैं।
  • आप Liberty Lite (https://ryleyangus.com/repo/) उपकरण भी स्थापित कर सकते हैं। एक बार जब रिपॉजिटरी जोड़ी जाती है, तो ऐप 'सर्च' टैब में दिखाई देना चाहिए।

संदर्भ

tip

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

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