iOS Testing Environment
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
एक प्रावधान पहचान एक Apple डेवलपर खाते से संबंधित सार्वजनिक और निजी कुंजियों का संग्रह है। ऐप्स पर हस्ताक्षर करने के लिए आपको 99$/वर्ष का भुगतान करना होगा ताकि आप Apple Developer Program में पंजीकरण कर सकें और अपनी प्रावधान पहचान प्राप्त कर सकें। इसके बिना, आप भौतिक डिवाइस पर स्रोत कोड से एप्लिकेशन नहीं चला सकेंगे। ऐसा करने का एक और विकल्प जेलब्रोकन डिवाइस का उपयोग करना है।
Xcode 7.2 से Apple ने एक विकल्प प्रदान किया है जिससे आप एक मुफ्त iOS विकास प्रावधान प्रोफ़ाइल बना सकते हैं जो आपको एक असली iPhone पर अपने एप्लिकेशन को लिखने और परीक्षण करने की अनुमति देती है। Xcode पर जाएं --> Preferences --> Accounts --> + (अपने क्रेडेंशियल्स के साथ नया एप्लि ID जोड़ें) --> निर्मित Apple ID पर क्लिक करें --> Manage Certificates --> + (Apple Development) --> Done __फिर, अपने iPhone पर अपने एप्लिकेशन को चलाने के लिए आपको पहले iPhone को कंप्यूटर पर भरोसा करने के लिए संकेत देना होगा। फिर, आप Xcode से मोबाइल पर एप्लिकेशन चलाने की कोशिश कर सकते हैं, लेकिन एक त्रुटि दिखाई देगी। इसलिए Settings --> General --> Profiles and Device Management पर जाएं --> अविश्वसनीय प्रोफ़ाइल का चयन करें और "Trust" पर क्लिक करें।
ध्यान दें कि एक ही हस्ताक्षर प्रमाणपत्र द्वारा हस्ताक्षरित एप्लिकेशन सुरक्षित तरीके से संसाधनों को साझा कर सकते हैं, जैसे कि कीचेन आइटम।
प्रावधान प्रोफ़ाइल फोन के अंदर /Library/MobileDevice/ProvisioningProfiles
में संग्रहीत होती हैं।
ध्यान दें कि एक सिम्युलेटर एक एमुलेटर के समान नहीं है। सिम्युलेटर केवल डिवाइस के व्यवहार और कार्यों का अनुकरण करता है लेकिन वास्तव में उनका उपयोग नहीं करता।
आपको जो पहली बात जाननी है वह यह है कि सिम्युलेटर के अंदर एक पेंटेस्ट करना जेलब्रोकन डिवाइस पर करने की तुलना में बहुत अधिक सीमित होगा।
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 खोजने का एक त्वरित तरीका है कि सिम्युलेटर में ऐप को चलाएं और निष्पादित करें:
एक बार जब आप 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 द्वारा लगाए गए अन्य सुरक्षा नियंत्रणों को बायपास किया जाता है। इसलिए, एक बार जब डिवाइस जेलब्रेक हो जाता है, तो अखंडता जांच जो स्थापित ऐप्स की जांच के लिए जिम्मेदार होती है, पैच की जाती है ताकि इसे बायपास किया जा सके।
Android की तरह, आप iOS में "डेवलपर मोड" में स्विच नहीं कर सकते ताकि डिवाइस पर असाइन किए गए/अविश्वसनीय कोड को चलाया जा सके।
हालांकि अक्सर इसकी तुलना की जाती है, Android पर रूटिंग और iOS पर जेलब्रेकिंग मौलिक रूप से अलग प्रक्रियाएं हैं। Android डिवाइस को रूट करने में su
बाइनरी स्थापित करना या रूटेड कस्टम ROM के साथ सिस्टम को बदलना शामिल हो सकता है, जिसके लिए अनलॉक किए गए बूटलोडर की आवश्यकता नहीं होती है। कस्टम ROM फ्लैश करना बूटलोडर को अनलॉक करने के बाद डिवाइस के OS को बदलता है, कभी-कभी एक एक्सप्लॉइट की आवश्यकता होती है।
इसके विपरीत, iOS डिवाइस कस्टम ROM को फ्लैश नहीं कर सकते हैं क्योंकि बूटलोडर केवल Apple द्वारा हस्ताक्षरित छवियों को बूट करने की अनुमति देता है। iOS को जेलब्रेक करना Apple के कोड साइनिंग सुरक्षा को बायपास करने का लक्ष्य रखता है ताकि असाइन किए गए कोड को चलाया जा सके, यह प्रक्रिया Apple के निरंतर सुरक्षा सुधारों द्वारा जटिल होती है।
iOS को जेलब्रेक करना तेजी से कठिन होता जा रहा है क्योंकि Apple जल्दी से कमजोरियों को पैच करता है। iOS को डाउनग्रेड करना केवल एक रिलीज के बाद सीमित समय के लिए संभव है, जिससे जेलब्रेकिंग एक समय-संवेदनशील मामला बन जाता है। सुरक्षा परीक्षण के लिए उपयोग किए जाने वाले डिवाइस को अपडेट नहीं किया जाना चाहिए जब तक कि फिर से जेलब्रेक करना सुनिश्चित न हो।
iOS अपडेट एक चुनौती-प्रतिक्रिया तंत्र (SHSH ब्लॉब) द्वारा नियंत्रित होते हैं, जो केवल Apple द्वारा हस्ताक्षरित प्रतिक्रियाओं के लिए स्थापना की अनुमति देता है। इस तंत्र को "साइनिंग विंडो" के रूप में जाना जाता है, जो OTA फर्मवेयर पैकेज को स्टोर करने और बाद में उपयोग करने की क्षमता को सीमित करता है। IPSW डाउनलोड वेबसाइट वर्तमान साइनिंग विंडो की जांच करने के लिए एक संसाधन है।
टेथर्ड जेलब्रेक प्रत्येक रिबूट के लिए कंप्यूटर कनेक्शन की आवश्यकता होती है।
सेमी-टेथर्ड जेलब्रेक बिना कंप्यूटर के गैर-जेलब्रेक मोड में बूट करने की अनुमति देता है।
सेमी-अनटेदर्ड जेलब्रेक बिना कंप्यूटर की आवश्यकता के मैन्युअल रूप से फिर से जेलब्रेक करने की आवश्यकता होती है।
अनटेदर्ड जेलब्रेक बिना फिर से आवेदन की आवश्यकता के एक स्थायी जेलब्रेक समाधान प्रदान करता है।
जेलब्रेकिंग उपकरण iOS संस्करण और डिवाइस के अनुसार भिन्न होते हैं। संसाधन जैसे क्या मैं जेलब्रेक कर सकता हूँ?, iPhone विकी, और Reddit जेलब्रेक अद्यतन जानकारी प्रदान करते हैं। उदाहरणों में शामिल हैं:
Checkra1n A7-A11 चिप डिवाइस के लिए।
Palera1n Checkm8 डिवाइस (A8-A11) के लिए iOS 15.0-16.5 पर।
Unc0ver iOS संस्करण 14.8 तक के लिए।
अपने डिवाइस को संशोधित करना जोखिम उठाता है, और जेलब्रेकिंग को सावधानी के साथ किया जाना चाहिए।
जेलब्रेकिंग OS द्वारा लगाए गए सैंडबॉक्सिंग को हटा देती है, जिससे ऐप्स को पूरे फाइल सिस्टम तक पहुंच मिलती है। यह स्वतंत्रता अस्वीकृत ऐप्स को स्थापित करने और अधिक API तक पहुंचने की अनुमति देती है। हालांकि, नियमित उपयोगकर्ताओं के लिए, संभावित सुरक्षा जोखिमों और डिवाइस की अस्थिरता के कारण जेलब्रेकिंग अनुशंसित नहीं है।
कई एप्लिकेशन यह पता लगाने की कोशिश करेंगे कि क्या मोबाइल जेलब्रेक किया गया है और इस मामले में एप्लिकेशन नहीं चलेगा।
जेलब्रेकिंग के बाद iOS फाइलें और फ़ोल्डर आमतौर पर स्थापित होते हैं, इन्हें यह निर्धारित करने के लिए खोजा जा सकता है कि क्या डिवाइस जेलब्रेक किया गया है।
एक जेलब्रेक किए गए डिवाइस में एप्लिकेशन को नए फ़ाइलों तक पढ़ने/लिखने की पहुंच मिलती है जो सैंडबॉक्स के बाहर होती हैं।
कुछ API कॉल अलग तरीके से व्यवहार करेंगी।
OpenSSH सेवा की उपस्थिति।
/bin/sh
को कॉल करने पर 0 के बजाय 1 लौटेगा।
जेलब्रेकिंग का पता लगाने के तरीके के बारे में अधिक जानकारी यहाँ।
आप objection's ios jailbreak disable
का उपयोग करके इन डिटेक्शनों से बचने की कोशिश कर सकते हैं।
आप objection's ios jailbreak disable
का उपयोग करके इन डिटेक्शनों से बचने की कोशिश कर सकते हैं।
आप Liberty Lite (https://ryleyangus.com/repo/) उपकरण भी स्थापित कर सकते हैं। एक बार जब रिपॉजिटरी जोड़ी जाती है, तो ऐप 'सर्च' टैब में दिखाई देना चाहिए।
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)