mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-13 14:53:03 +00:00
86 lines
14 KiB
Markdown
86 lines
14 KiB
Markdown
# iOS Testing Environment
|
|
|
|
<details>
|
|
|
|
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
|
|
|
HackTricks का समर्थन करने के अन्य तरीके:
|
|
|
|
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सदस्यता योजनाएं देखें**](https://github.com/sponsors/carlospolop)!
|
|
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
|
* हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
|
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
|
|
* **हैकिंग ट्रिक्स साझा करें द्वारा PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
|
|
|
</details>
|
|
|
|
## 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 \[...]" पर क्लिक करके आप अन्य डिवाइस का चयन कर सकते हैं:
|
|
|
|
![](<../../.gitbook/assets/image (457).png>)
|
|
|
|
![](<../../.gitbook/assets/image (458).png>)
|
|
|
|
### सिम्युलेटर में एप्लिकेशनें
|
|
|
|
`/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/` तक पहुंचना होगा
|
|
|
|
और इस फ़ोल्डर में आप **ऐप्लिकेशन का पैकेज पा सकते हैं।**
|
|
|
|
## एम्युलेटर
|
|
|
|
कोरेलियम ही एकमात्र सार्वजनिक रूप से उपलब्ध iOS एम्युलेटर है। यह एक उद्यम SaaS समाधान है जिसमें प्रति उपयोगकर्ता लाइसेंस मॉडल है और कोई परीक्षण लाइसेंस प्रदान नहीं करता।
|
|
|
|
## जेलब्रेकिंग
|
|
|
|
एप्पल सख्ती से आवश्यकता रखता है कि आईफोन पर चल रहे कोड को **एप्पल द्वारा जारी किए गए प्रमाणपत्र द्वारा साइन किया जाना चाहिए**। **जेलब्रेकिंग** उस प्रक्रिया को कहते हैं जिसमें ऐसी प्रतिबंधनों को सक्रिय रूप से **टाल दिया जाता है** और ओएस द्वारा लगाए गए अन्य सुरक्षा नियंत्रणों को। इसलिए, एक बार डिवाइस को जेलब्रेक कर दिया जाता है, **अखंडता जांच** जिसका जिम्मेदार है कि ऐप्स की जांच की जाती है, वह पैच हो जाता है ताकि यह **छलांग दे सके**।
|
|
|
|
{% hint style="info" %}
|
|
एंड्रॉयड की तरह, **आप "डेवलपर मोड" में स्विच नहीं कर सकते** हैं iOS में अप्रमाणित/अविश्वसनीय कोड को डिवाइस पर चलाने के लिए।
|
|
{% endhint %}
|
|
|
|
### एंड्रॉयड रूटिंग बनाम iOS जेलब्रेकिंग
|
|
|
|
जबकि अक्सर तुलना की जाती है, एंड्रॉयड पर रूटिंग और iOS पर जेलब्रेकिंग मौलिक रूप से भिन्न प्रक्रियाएँ हैं। एंड्रॉयड डिवाइस पर रूटिंग में **`su` बाइनरी इंस्टॉल करना** या **सिस्टम को रूट कस्टम ROM के साथ बदलना** शामिल हो सकता है, जो यदि बूटलोडर अनलॉक है तो आवश्यकता नहीं है। **कस्टम ROMs फ्लैश करना** डिवाइस के ओएस को बदल देता है बूटलोडर को अनलॉक करने के बाद, कभी-कभी एक एक्सप्लॉइट की आवश्यकता होती है।
|
|
|
|
विपरीतता, iOS डिवाइस कस्टम ROMs फ्लैश नहीं कर सकते क्योंकि बूटलोडर की प्रतिबंधितता केवल एप्पल-साइन किए गए छवियों को बूट करने की अनुमति देती है। **iOS जेलब्रेकिंग** एप्पल कोड साइनिंग सुरक्षा को छलने के लिए उद्देश्यित है ताकि अप्रमाणित कोड चलाया जा सके, जिसमें एप्पल की निरंतर सुरक्षा सुधारों के कारण प्रक्रिया कठिन हो जाती है।
|
|
|
|
### जेलब्रेकिंग चुनौतियाँ
|
|
|
|
iOS जेलब्रेकिंग एप्पल जल्दी से वंशावलीयताएँ पैच करते हैं, इसलिए जेलब्रेकिंग समय-संवेदनशील मामला है। सुरक्षा परीक्षण के लिए उपयोग किए जाने वाले डिवाइस को अपडेट नहीं किया जाना चाहिए जब तक पुनः-जेलब्रेकिंग की गारंटी न हो।
|
|
|
|
iOS अपड
|