Extracting Entitlements from Compiled Application

Reading time: 4 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें

Summary of the page https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary

Extracting Entitlements and Mobile Provision Files

जब किसी ऐप के IPA या जेलब्रोकन डिवाइस पर इंस्टॉल किए गए ऐप के साथ काम कर रहे हों, तो सीधे .entitlements फ़ाइलें या embedded.mobileprovision फ़ाइल खोजना संभव नहीं हो सकता। हालाँकि, ऐप बाइनरी से एंटाइटलमेंट प्रॉपर्टी लिस्ट को अभी भी निकाला जा सकता है, "iOS Basic Security Testing" अध्याय में वर्णित प्रक्रियाओं का पालन करते हुए, विशेष रूप से "Acquiring the App Binary" अनुभाग।

एन्क्रिप्टेड बाइनरी के साथ भी, इन फ़ाइलों को निकालने के लिए कुछ कदम उठाए जा सकते हैं। यदि ये कदम विफल होते हैं, तो Clutch (यदि iOS संस्करण के साथ संगत हो), frida-ios-dump, या समान उपयोगिताओं की आवश्यकता हो सकती है ऐप को डिक्रिप्ट और निकालने के लिए।

Extracting the Entitlements Plist from the App Binary

जब ऐप बाइनरी कंप्यूटर पर उपलब्ध हो, तो binwalk का उपयोग सभी XML फ़ाइलों को निकालने के लिए किया जा सकता है। नीचे दिए गए कमांड से ऐसा करने का तरीका दर्शाया गया है:

bash
$ binwalk -e -y=xml ./Telegram\ X

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
1430180       0x15D2A4        XML document, version: "1.0"
1458814       0x16427E        XML document, version: "1.0"

वैकल्पिक रूप से, radare2 का उपयोग एक कमांड को चुपचाप चलाने और बाहर निकलने के लिए किया जा सकता है, ऐप बाइनरी में "PropertyList" वाले सभी स्ट्रिंग्स की खोज करते हुए:

bash
$ r2 -qc 'izz~PropertyList' ./Telegram\ X

0x0015d2a4 ascii <?xml version="1.0" encoding="UTF-8" standalone="yes"?>...
0x0016427d ascii H<?xml version="1.0" encoding="UTF-8"?>...

दोनों विधियाँ, binwalk और radare2, plist फ़ाइलों को निकालने की अनुमति देती हैं, जिसमें पहले वाले (0x0015d2a4) की जांच करने पर Telegram से मूल अधिकार फ़ाइल की सफल पुनर्प्राप्ति का पता चलता है।

जेलब्रोकन उपकरणों पर पहुँचे गए ऐप बाइनरी के लिए (जैसे, SSH के माध्यम से), grep कमांड के साथ -a, --text ध्वज का उपयोग सभी फ़ाइलों को ASCII पाठ के रूप में मानने के लिए किया जा सकता है:

bash
$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...

-A num, --after-context=num ध्वज को समायोजित करने से अधिक या कम पंक्तियों को प्रदर्शित करने की अनुमति मिलती है। यह विधि एन्क्रिप्टेड ऐप बाइनरी के लिए भी व्यवहार्य है और इसे कई ऐप स्टोर ऐप्स के खिलाफ सत्यापित किया गया है। पहले उल्लेखित उपकरणों का उपयोग जेलब्रोकन iOS उपकरणों पर समान उद्देश्यों के लिए भी किया जा सकता है।

नोट: इस कार्य के लिए strings कमांड का प्रत्यक्ष उपयोग इसकी सीमाओं के कारण अनुशंसित नहीं है। इसके बजाय, बाइनरी पर -a ध्वज के साथ grep का उपयोग करना या अधिक प्रभावी परिणामों के लिए radare2 (izz)/rabin2 (-zz) का उपयोग करना उचित है।

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें