hacktricks/mobile-pentesting/ios-pentesting/extracting-entitlements-from-compiled-application.md
Translator workflow 75e8745ba3 Translated to Hindi
2023-11-06 08:38:02 +00:00

10 KiB

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

पृष्ठ की प्रतिलिपि https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#universal-links

यदि आपके पास केवल ऐप का IPA है या फिर जेलब्रोकन डिवाइस पर स्थापित ऐप है, तो आप आमतौर पर .entitlements फ़ाइलें नहीं ढूंढ पाएंगे। इसका कारण यह भी हो सकता है कि embedded.mobileprovision फ़ाइल के लिए भी ऐसा हो। फिर भी, आपको ऐप बाइनरी से अधिकारिती संपत्ति सूची को निकालने की क्षमता होनी चाहिए (जिसे आपने "iOS Basic Security Testing" अध्याय, अनुभाग "Acquiring the App Binary" में समझाया गया है)।

निम्नलिखित चरणों का उपयोग एक्सप्लोरर बाइनरी पर भी काम करना चाहिए। यदि किसी कारण से वे काम नहीं करते हैं, तो आपको ऐप को डिक्रिप्ट और निकालने के लिए उदाहरण के लिए Clutch (यदि आपके iOS संस्करण के साथ संगत है), frida-ios-dump या किसी अन्य से उपयोग करना होगा।

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

यदि आपके पास कंप्यूटर में ऐप बाइनरी है, तो एक दृष्टिकोण है कि आप बिनवॉक का उपयोग करें ताकि आप सभी XML फ़ाइलें (-y=xml) निकाल सकें:

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

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

या आप रेडार2 (-qc ताकि एक कमांड चलाएं और बाहर निकलें) का उपयोग कर सकते हैं ऐप बाइनरी पर सभी स्ट्रिंग्स (izz) की खोज करने के लिए जिनमें "PropertyList" (~PropertyList) हो।

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

0x0015d2a4 ascii <?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<!DOCTYPE plist PUBLIC
"-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">\n<plist version="1.0">
...<key>com.apple.security.application-groups</key>\n\t\t<array>
\n\t\t\t<string>group.ph.telegra.Telegraph</string>...

0x0016427d ascii H<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE plist PUBLIC
"-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">\n<plist version="1.0">\n
<dict>\n\t<key>cdhashes</key>...

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

ध्यान दें: strings कमांड यहां मदद नहीं करेगा क्योंकि यह यह जानकारी ढूंढ़ नहीं पाएगा। बेहतर है कि आप बाइनरी पर सीधे -a फ़्लैग के साथ grep का उपयोग करें या radare2 (izz) / rabin2 (-zz) का उपयोग करें।

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

$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/
15E6A58F-1CA7-44A4-A9E0-6CA85B65FA35/Telegram X.app/Telegram\ X

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.application-groups</key>
<array>
...

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

यह विधि काम करनी चाहिए, यदि ऐप बाइनरी अभी भी एन्क्रिप्टेड है (इसे कई App Store ऐप्स के खिलाफ परीक्षण किया गया था)।

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥