iOS Extracting Entitlements From Compiled Application

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

पृष्ठ का सारांश 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 मूलभूत सुरक्षा परीक्षण" अध्याय में उल्लिखित प्रक्रियाओं का पालन करके, विशेष रूप से "ऐप बाइनरी प्राप्त करना" अनुभाग में।

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

ऐप बाइनरी से अधिकारों प्लिस्ट निकालना

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

$ 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" शब्द वाली सभी स्ट्रिंग्स की खोज की जा सकती है:

$ 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"?>...

Dono tarike, binwalk aur radare2, plist files ka extraction possible bana dete hain, pehle wale ka (0x0015d2a4) janch ek safal recovery dikhata hai Telegram se original entitlements file.

Jailbroken devices par access ki gayi app binaries ke liye (SSH ke zariye), grep command ka istemal -a, --text flag ke sath ASCII text ke roop mein sabhi files ko treat karne ke liye kiya ja sakta hai:

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

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

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

Last updated