iOS Extracting Entitlements From Compiled Application
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)
Summary of the page https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary
जब एक ऐप के IPA या जेलब्रोकन डिवाइस पर स्थापित ऐप के साथ काम कर रहे हों, तो सीधे .entitlements
फ़ाइलें या embedded.mobileprovision
फ़ाइल खोजना संभव नहीं हो सकता है। हालाँकि, ऐप बाइनरी से एंटाइटलमेंट प्रॉपर्टी लिस्ट को अभी भी निकाला जा सकता है, "iOS Basic Security Testing" अध्याय में वर्णित प्रक्रियाओं का पालन करते हुए, विशेष रूप से "Acquiring the App Binary" अनुभाग।
एन्क्रिप्टेड बाइनरी के साथ भी, इन फ़ाइलों को निकालने के लिए कुछ कदम उठाए जा सकते हैं। यदि ये कदम विफल होते हैं, तो Clutch (यदि iOS संस्करण के साथ संगत हो), frida-ios-dump, या समान उपयोगिताएँ ऐप को डिक्रिप्ट और निकालने के लिए आवश्यक हो सकती हैं।
जब ऐप बाइनरी एक कंप्यूटर पर सुलभ हो, तो binwalk का उपयोग सभी XML फ़ाइलों को निकालने के लिए किया जा सकता है। नीचे दिए गए कमांड से ऐसा करने का तरीका दर्शाया गया है:
वैकल्पिक रूप से, radare2 का उपयोग चुपचाप एक कमांड चलाने और बाहर निकलने के लिए किया जा सकता है, ऐप बाइनरी में "PropertyList" वाले सभी स्ट्रिंग्स की खोज करते हुए:
दोनों विधियाँ, binwalk और radare2, plist
फ़ाइलों को निकालने की अनुमति देती हैं, पहले वाले (0x0015d2a4) की जांच करने पर Telegram से मूल अधिकार फ़ाइल की सफल वसूली का पता चलता है।
जेलब्रोकन उपकरणों पर पहुँची गई ऐप बाइनरीज़ (जैसे, SSH के माध्यम से) के लिए, grep कमांड के साथ -a, --text
ध्वज का उपयोग सभी फ़ाइलों को ASCII पाठ के रूप में मानने के लिए किया जा सकता है:
-A num, --after-context=num
फ्लैग को समायोजित करने से अधिक या कम लाइनों को प्रदर्शित करने की अनुमति मिलती है। यह विधि एन्क्रिप्टेड ऐप बाइनरी के लिए भी व्यवहार्य है और इसे कई ऐप स्टोर ऐप्स के खिलाफ सत्यापित किया गया है। पहले उल्लेखित उपकरणों का उपयोग जेलब्रोकन iOS उपकरणों पर समान उद्देश्यों के लिए भी किया जा सकता है।
नोट: इस कार्य के लिए strings
कमांड का प्रत्यक्ष उपयोग इसकी प्रासंगिक जानकारी खोजने में सीमाओं के कारण अनुशंसित नहीं है। इसके बजाय, बाइनरी पर -a
फ्लैग के साथ grep का उपयोग करना या अधिक प्रभावी परिणामों के लिए radare2 (izz
)/rabin2 (-zz
) का उपयोग करना उचित है।