14 KiB
iOS Testing Environment
जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!
HackTricks का समर्थन करने के अन्य तरीके:
- यदि आप अपनी कंपनी का विज्ञापन HackTricks में देखना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं तो सदस्यता योजनाएं देखें!
- आधिकारिक PEASS और HackTricks स्वैग प्राप्त करें
- हमारा विशेष NFTs संग्रह, The PEASS Family खोजें
- शामिल हों 💬 डिस्कॉर्ड समूह या टेलीग्राम समूह या हमें ट्विटर 🐦 @carlospolopm** पर फॉलो** करें।
- हैकिंग ट्रिक्स साझा करें द्वारा PRs सबमिट करके HackTricks और HackTricks Cloud github repos.
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" पर क्लिक करें।
ध्यान दें कि एक ही साइनिंग प्रमाणपत्र द्वारा साइन की गई एप्लिकेशनें सुरक्षित तरीके से संसाधन साझा कर सकती हैं, जैसे की keychain आइटम्स।
प्रोविजनिंग प्रोफ़ाइल्स फोन में /Library/MobileDevice/ProvisioningProfiles
में संग्रहित होते हैं।
Simulator
{% hint style="info" %} ध्यान दें कि एक सिम्युलेटर एक एम्युलेटर के समान नहीं है। सिम्युलेटर केवल डिवाइस और कार्यों का व्यवहार नकल करता है लेकिन उन्हें वास्तव में उपयोग नहीं करता। {% endhint %}
सिम्युलेटर
पहली बात जो आपको पता होना चाहिए यह है कि सिम्युलेटर में पेंटेस्ट करना जेलब्रोकन डिवाइस में करने की तुलना में कम होगा।
एक iOS ऐप बनाने और समर्थन करने के लिए सभी उपकरण जोड़ने और समर्थन करने के लिए केवल Mac OS पर आधिकारिक रूप से समर्थित हैं।
Apple का डि फैक्टो उपकरण iOS ऐप्लिकेशन बनाने/डीबगिंग/इंस्ट्रुमेंटेशन के लिए Xcode है। इसका उपयोग करके आप अन्य उपकरणों जैसे कि सिम्युलेटर्स और विभिन्न SDK संस्करण डाउनलोड कर सकते हैं जो आपकी ऐप बनाने और परीक्षण के लिए आवश्यक हैं।
आधिकारिक ऐप स्टोर से Xcode को डाउनलोड करना अत्यंत अनुशंसित है। अन्य संस्करण में मैलवेयर हो सकता है।
सिम्युलेटर फ़ाइलें मिल सकती हैं /Users/<username>/Library/Developer/CoreSimulator/Devices
सिम्युलेटर खोलने के लिए, Xcode चलाएं, फिर Xcode टैब में जाएं --> Open Developer tools --> Simulator
__निम्नलिखित छवि में "iPod touch [...]" पर क्लिक करके आप अन्य डिवाइस का चयन कर सकते हैं:
सिम्युलेटर में एप्लिकेशनें
/Users/<username>/Library/Developer/CoreSimulator/Devices
में आपको सभी इंस्टॉल किए गए सिम्युलेटर्स मिल सकते हैं। यदि आप किसी एप्लिकेशन के फ़ाइलों तक पहुंचना चाहते हैं जो किसी एम्युलेटर में बनाया गया है तो यह मुश्किल हो सकता है कि उसमें किसमें एप्लिकेशन इंस्टॉल है। सही UID पता करने का एक त्वरित तरीका यह है कि सिम्युलेटर में ऐप को चलाएं और निम्नलिखित को निष्पादित करें:
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/
तक पहुंचना होगा
और इस फ़ोल्डर में आप ऐप्लिकेशन का पैकेज पा सकते हैं।
एम्युलेटर
कोरेलियम ही एकमात्र सार्वजनिक रूप से उपलब्ध iOS एम्युलेटर है। यह एक उद्यम SaaS समाधान है जिसमें प्रति उपयोगकर्ता लाइसेंस मॉडल है और कोई परीक्षण लाइसेंस प्रदान नहीं करता।
जेलब्रेकिंग
एप्पल सख्ती से आवश्यकता रखता है कि आईफोन पर चल रहे कोड को एप्पल द्वारा जारी किए गए प्रमाणपत्र द्वारा साइन किया जाना चाहिए। जेलब्रेकिंग उस प्रक्रिया को कहते हैं जिसमें ऐसी प्रतिबंधनों को सक्रिय रूप से टाल दिया जाता है और ओएस द्वारा लगाए गए अन्य सुरक्षा नियंत्रणों को। इसलिए, एक बार डिवाइस को जेलब्रेक कर दिया जाता है, अखंडता जांच जिसका जिम्मेदार है कि ऐप्स की जांच की जाती है, वह पैच हो जाता है ताकि यह छलांग दे सके।
{% hint style="info" %} एंड्रॉयड की तरह, आप "डेवलपर मोड" में स्विच नहीं कर सकते हैं iOS में अप्रमाणित/अविश्वसनीय कोड को डिवाइस पर चलाने के लिए। {% endhint %}
एंड्रॉयड रूटिंग बनाम iOS जेलब्रेकिंग
जबकि अक्सर तुलना की जाती है, एंड्रॉयड पर रूटिंग और iOS पर जेलब्रेकिंग मौलिक रूप से भिन्न प्रक्रियाएँ हैं। एंड्रॉयड डिवाइस पर रूटिंग में su
बाइनरी इंस्टॉल करना या सिस्टम को रूट कस्टम ROM के साथ बदलना शामिल हो सकता है, जो यदि बूटलोडर अनलॉक है तो आवश्यकता नहीं है। कस्टम ROMs फ्लैश करना डिवाइस के ओएस को बदल देता है बूटलोडर को अनलॉक करने के बाद, कभी-कभी एक एक्सप्लॉइट की आवश्यकता होती है।
विपरीतता, iOS डिवाइस कस्टम ROMs फ्लैश नहीं कर सकते क्योंकि बूटलोडर की प्रतिबंधितता केवल एप्पल-साइन किए गए छवियों को बूट करने की अनुमति देती है। iOS जेलब्रेकिंग एप्पल कोड साइनिंग सुरक्षा को छलने के लिए उद्देश्यित है ताकि अप्रमाणित कोड चलाया जा सके, जिसमें एप्पल की निरंतर सुरक्षा सुधारों के कारण प्रक्रिया कठिन हो जाती है।
जेलब्रेकिंग चुनौतियाँ
iOS जेलब्रेकिंग एप्पल जल्दी से वंशावलीयताएँ पैच करते हैं, इसलिए जेलब्रेकिंग समय-संवेदनशील मामला है। सुरक्षा परीक्षण के लिए उपयोग किए जाने वाले डिवाइस को अपडेट नहीं किया जाना चाहिए जब तक पुनः-जेलब्रेकिंग की गारंटी न हो।
iOS अपड