hacktricks/mobile-pentesting/ios-pentesting/extracting-entitlements-from-compiled-application.md

6.6 KiB

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

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

  • अगर आप अपनी कंपनी को HackTricks में विज्ञापित देखना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं तो SUBSCRIPTION PLANS देखें!
  • आधिकारिक PEASS & HackTricks swag प्राप्त करें
  • हमारे विशेष NFTs संग्रह The PEASS Family की खोज करें
  • Join the 💬 Discord group या telegram group में शामिल हों या मुझे Twitter पर फॉलो करें 🐦 @carlospolopm
  • HackTricks और HackTricks Cloud github repos में PR जमा करके अपने हैकिंग ट्रिक्स साझा करें।

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

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

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

कंप्यूटर पर ऐप बाइनरी तक पहुंचने पर, 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) inspection karke Telegram se original entitlements file ka safal recovery pata chalta hai.

Jailbroken devices par app binaries tak pahunchne ke liye grep command ka istemal -a, --text flag ke sath kiya ja sakta hai jisse sabhi files ko ASCII text ke roop mein treat kiya ja sake:

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

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

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