hacktricks/mobile-pentesting/ios-pentesting/ios-testing-environment.md

81 lines
13 KiB
Markdown
Raw Normal View History

# iOS Testing Environment
2022-04-28 16:01:33 +00:00
<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>
2022-04-28 16:01:33 +00:00
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://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** पर फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
2022-04-28 16:01:33 +00:00
</details>
## Apple Developer Program
2021-05-14 22:25:03 +00:00
एक **प्रोविजनिंग आईडेंटिटी** एक संग्रह है जिसमें सार्वजनिक और निजी कुंजी होती हैं जो एक Apple डेवलपर खाते से संबंधित होती हैं। एप्लिकेशनों को **साइन करने** के लिए आपको **99 डॉलर/वर्ष** चुकानी पड़ती है ताकि आप **Apple Developer Program** में पंजीकृत हो सकें और अपनी प्रोविजनिंग आईडेंटिटी प्राप्त कर सकें। इसके बिना आप वास्तविक उपकरण में स्रोत कोड से एप्लिकेशन चला नहीं सकेंगे। इसे करने का एक और विकल्प है **जेलब्रोकन उपकरण** का उपयोग करना।
2021-05-14 22:25:03 +00:00
Xcode 7.2 से शुरू करके Apple ने एक **मुफ्त iOS विकास प्रोविजनिंग प्रोफाइल** बनाने का विकल्प प्रदान किया है जिससे आप अपने एप्लिकेशन को एक वास्तविक iPhone पर लिखकर और परीक्षण कर सकते हैं। _Xcode_ --> _Preferences_ --> _Accounts_ --> _+_ (नया Appli ID जोड़ें अपने क्रेडेंशियल्स में) --> _बनाए गए Apple ID पर क्लिक करें_ --> _प्रमाण पत्र प्रबंधित करें_ --> _+_ (Apple Development) --> _Done_\
\_\_फिर, अपने iPhone में अपने एप्लिकेशन को चलाने के लिए आपको पहले **यह दिखाना होगा कि iPhone कंप्यूटर को विश्वसनीय मानता है।** फिर, आप **Xcode से मोबाइल में एप्लिकेशन चलाने की कोशिश कर सकते हैं,** लेकिन एक त्रुटि आ जाएगी। तो _Settings_ --> _General_ --> _Profiles and Device Management_ --> अविश्वसनीय प्रोफ़ाइल का चयन करें और "**विश्वसनीय**" पर क्लिक करें।
2021-05-14 22:25:03 +00:00
ध्यान दें कि **एक ही साइनिंग प्रमाण पत्र द्वारा साइन की गई एप्लिकेशनें सुरक्षित तरीके से संसाधन साझा कर सकती हैं, जैसे की keychain आइटम्स**
2021-05-14 22:25:03 +00:00
प्रोविजनिंग प्रोफाइल फोन में **`/Library/MobileDevice/ProvisioningProfiles`** में संग्रहीत होते हैं।
2021-05-14 22:25:03 +00:00
2023-11-06 08:38:02 +00:00
## **सिम्युलेटर**
{% hint style="info" %}
ध्यान दें कि **सिम्युलेटर एक एम्युलेटर के समान नहीं है**। सिम्युलेटर केवल उपकरण और कार्यों का व्यवहार नकल करता है लेकिन उन्हें वास्तव में उपयोग नहीं करता।
{% endhint %}
2023-11-06 08:38:02 +00:00
### **सिम्युलेटर**
पहली बात जो आपको पता होना चाहिए यह है कि **सिम्युलेटर में पेंटेस्ट करना जेलब्रोकन उपकरण में करने की तुलना में कम होगा**
एक iOS ऐप बनाने और समर्थन करने के लिए सभी उपकरण जो आवश्यक हैं **केवल मैक OS पर आधिकारिक रूप से समर्थित हैं**।\
Apple का डि फैक्टो उपकरण iOS ऐप्लिकेशन बनाने/डीबगिंग/इंस्ट्रुमेंटेशन के लिए **Xcode** है। इसका उपयोग करके आप अन्य उपकरणों जैसे कि **सिम्युलेटर्स** और विभिन्न **SDK** **संस्करण** डाउनलोड कर सकते हैं जो आपकी ऐप बनाने और **परीक्षण** के लिए आवश्यक हैं।\
आधिकारिक ऐप स्टोर से Xcode को **डाउनलोड** करना अत्यंत अनुशंसित है। अन्य संस्करण मेलवेयर ले सकते हैं।
सिम्युलेटर फ़ाइलें मिल सकती हैं `/Users/<username>/Library/Developer/CoreSimulator/Devices`
सिम्युलेटर खोलने के लिए, Xcode चलाएं, फिर _Xcode टैब_ में जाएं --> _डेवलपर टूल्स खोलें_ --> _सिम्युलेटर_\
\_\_निम्नलिखित छवि में "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
2023-11-06 08:38:02 +00:00
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/` तक पहुंचना होगा।
2023-11-06 08:38:02 +00:00
और इस फ़ोल्डर में आप **ऐप्लिकेशन की पैकेज पाएंगे।**
2023-11-06 08:38:02 +00:00
## एम्युलेटर
कोरेलियम ही एकमात्र सार्वजनिक रूप से उपलब्ध iOS एम्युलेटर है। यह एक उद्यम SaaS समाधान है जिसमें प्रति उपयोगकर्ता लाइसेंस मॉडल है और कोई परीक्षण लाइसेंस नहीं उपलब्ध कराता है।
2023-11-06 08:38:02 +00:00
## जेलब्रेकिंग
एप्पल सख्ती से आवश्यकता रखता है कि आईफोन पर चल रहे कोड को **एप्पल द्वारा जारी किए गए प्रमाणपत्र द्वारा साइन किया गया हो****जेलब्रेकिंग** उस प्रक्रिया को कहते हैं जिसमें ऐसी प्रतिबंधन और अन्य सुरक्षा नियंत्रणों को सक्रिय रूप से **टाल दिया जाता है** जो ओएस द्वारा लगाए गए हैं। इसलिए, एक बार डिवाइस को जेलब्रेक कर दिया गया है, **अखंडता जांच** जिसका जिम्मेदार है कि क्या ऐप्स इंस्टॉल किए गए हैं, उसे **बाईपास** कर दिया जाता है।
{% hint style="info" %}
एंड्रॉइड की तुलना में, iOS में "डेवलपर मोड" पर स्विच करना **संभव नहीं है** ताकि डिवाइस पर असाइन किए गए/अविश्वसनीय कोड चलाया जा सके।
{% endhint %}
### एंड्रॉइड रूटिंग बनाम iOS जेलब्रेकिंग
जबकि अक्सर तुलना की जाती है, एंड्रॉइड पर रूटिंग और iOS पर जेलब्रेकिंग मौलिक रूप से भिन्न प्रक्रियाएं हैं। एंड्रॉइड डिवाइस पर रूटिंग में **`su` बाइनरी इंस्टॉल करना** या **सिस्टम को रूट कस्टम ROM के साथ बदलना** शामिल हो सकता है, जो यदि बूटलोडर अनलॉक है तो आवश्यकता नहीं है। **कस्टम ROMs फ्लैश करना** डिवाइस के ओएस को बदल देता है बूटलोडर को अनलॉक करने के बाद, कभी-कभी एक एक्सप्लॉइट की आवश्यकता होती है।
विपरीत, iOS डिवाइस कस्टम ROMs फ्लैश नहीं कर सकते क्योंकि बूटलोडर की प्रतिबंधितता केवल एप्पल-साइन किए गए छवियों को बूट करने की अनुमति देती है। **iOS जेलब्रेकिंग** एप्पल कोड साइनिंग सुरक्षा की रक्षा को बाईपास करने का उद्देश्य रखती है, जिसे एप्पल की निरंतर सुरक्षा सुधारने की कठिनाई के कारण जटिल किया जाता है।