Objection Tutorial
बग बाउंटी टिप: Intigriti के लिए साइन अप करें, एक प्रीमियम बग बाउंटी प्लेटफॉर्म जो हैकर्स द्वारा बनाई गई है! आज हमारे साथ शामिल हों https://go.intigriti.com/hacktricks और शुरू करें बाउंटी अप टू $100,000 तक कमाना!
परिचय
objection - रनटाइम मोबाइल एक्सप्लोरेशन
Objection एक रनटाइम मोबाइल एक्सप्लोरेशन टूलकिट है, जिसे Frida द्वारा संचालित किया जाता है। इसका उद्देश्य मोबाइल एप्लिकेशनों का मूल्यांकन करने और उनकी सुरक्षा स्थिति का मूल्यांकन करने में मदद करना था बिना किसी जेलब्रोकन या रूट किए गए मोबाइल डिवाइस की आवश्यकता के बिना।
ध्यान दें: यह किसी भी जेलब्रेक / रूट बाईपास का कोई प्रकार नहीं है। objection
का उपयोग करके, आपको फिर भी उन सभी प्रतिबंधों से प्रतिबंधित किया जाएगा जिन्होंने आपको सामने आने वाले सैंडबॉक्स द्वारा लगाए गए हैं।
रिज्यूम
objection का लक्ष्य उपयोगकर्ता को Frida द्वारा प्रस्तावित मुख्य क्रियाएं कॉल करने देना है। अन्यथा, उपयोगकर्ता को हर एप्लिकेशन के लिए एक एकल स्क्रिप्ट बनाने की आवश्यकता होगी जिसे वह टेस्ट करना चाहता है।
ट्यूटोरियल
इस ट्यूटोरियल के लिए मैं उस APK का उपयोग करूंगा जिसे आप यहां से डाउनलोड कर सकते हैं:
या इसके मूल संग्रह से (app-release.apk डाउनलोड करें)
कनेक्शन
एक सामान्य ADB कनेक्शन बनाएं और उपकरण में frida सर्वर शुरू करें (और सुनिश्चित करें कि frida कार्यरत है क्लाइंट और सर्वर दोनों में).
यदि आप रूट किया हुआ उपकरण उपयोग कर रहे हैं तो आवश्यक है कि आप --gadget विकल्प के अंदर जांचना चाहें कि आप किस एप्लिकेशन का परीक्षण करना चाहते हैं। इस मामले में:
मूल एक्शन
इस ट्यूटोरियल में ऑब्जेक्शन के सभी संभावित कमांड नहीं दिए जाएंगे, केवल वे जो मुझे अधिक उपयोगी लगे हैं।
पर्यावरण
कुछ दिलचस्प जानकारी (जैसे पासवर्ड या पथ) पर्यावरण के अंदर मिल सकती है।
फ्रिडा जानकारी
अपलोड/डाउनलोड
फ्रिडा स्क्रिप्ट आयात
SSLPinning
रूट डिटेक्शन
कमांड निष्पादित
वैशिष्ट्यिकताएँ
स्थैतिक विश्लेषण को गतिशील बनाया गया
एक वास्तविक एप्लिकेशन में, हमें स्थैतिक विश्लेषण के माध्यम से प्राप्त सभी जानकारी को objection का उपयोग करने से पहले जानना चाहिए। फिर भी, इस तरीके से शायद आप कुछ नया देख सकते हैं क्योंकि यहाँ आपको केवल वर्गों, विधियों और निर्यात किए गए ऑब्जेक्ट्स की पूरी सूची मिलेगी।
यह भी उपयोगी है अगर किसी प्रकार से आप ऐप के कुछ पठनीय स्रोत को प्राप्त करने में असमर्थ हैं।
सूची गतिविधियों, प्राप्तकर्ताओं और सेवाएं
Frida एक त्रुटि लॉन्च करेगा अगर कोई भी नहीं मिला
वर्तमान गतिविधि प्राप्त करना
वर्गों की खोज
हमारे एप्लिकेशन में वर्गों की खोज शुरू करते हैं
कक्षा की खोज विधियाँ
अब हम MainActivity: कक्षा के अंदर की विधियों को निकालते हैं:
किसी कक्षा के घोषित विधियों की सूची उनके पैरामीटर के साथ
चलो देखते हैं कि कक्षा के विधियों को कौन-कौन से पैरामीटर चाहिए:
सूची कक्षाएँ
आप वर्तमान एप्लिकेशन में लोड की गई सभी कक्षाओं की भी सूची बना सकते हैं:
यह बहुत उपयोगी है अगर आप किसी कक्षा की विधि को हुक करना चाहते हैं और आपको केवल कक्षा का नाम पता है। आप इस फ़ंक्शन का उपयोग करके खोज सकते हैं कि कौन सा मॉड्यूल कक्षा का मालिक है और फिर इसकी विधि को हुक कर सकते हैं।
हुकिंग बहुत आसान है
एक विधि को हुक करना (देखना)
एप्लिकेशन के स्रोत कोड से हम जानते हैं कि MainActivity से sum() नामक फ़ंक्शन हर सेकंड चलाया जा रहा है। चलो कोशिश करते हैं कि जब भी फ़ंक्शन को कॉल किया जाता है तो सभी संभावित जानकारी डंप करें (आर्ग्यूमेंट्स, रिटर्न मान और बैकट्रेस):
पूरी क्लास को हुक करना (देखना)
वास्तव में मुझे MainActivity की सभी विधियों को वास्तव में दिलचस्प पाया, चलो सभी को हुक करते हैं। सावधान रहें, यह एक एप्लिकेशन को क्रैश कर सकता है।
यदि आप क्लास हुक किए गए अनुप्रयोग के साथ खेलते हैं तो आप देखेंगे कि प्रत्येक फ़ंक्शन को कब बुलाया जा रहा है, इसके आर्ग्यूमेंट्स और रिटर्न मान।
एक फ़ंक्शन के बूलियन रिटर्न मान को बदलना
स्रोत कोड से आप देख सकते हैं कि फ़ंक्शन checkPin को एक String के रूप में आर्ग्यूमेंट मिलता है और एक boolean को रिटर्न करता है। चलो फ़ंक्शन को हमेशा true रिटर्न करने के लिए:
अब, यदि आप पिन कोड के लिए पाठ बॉक्स में कुछ भी लिखते हैं तो आप देखेंगे कि कुछ भी मान्य है:
क्लास इंस्टेंसेस
एक विशिष्ट जावा क्लास की लाइव इंस्टेंसेस की खोज और प्रिंट करें, जिसे पूरी तरह से योग्य क्लास नाम द्वारा निर्दिष्ट किया गया है। आउट एक प्रयास का परिणाम है जिसमें एक पाए गए आपत्ति के लिए एक स्ट्रिंग मान प्राप्त करने की कोशिश की गई है जिसमें सामान्य रूप से ऑब्जेक्ट के लिए संपत्ति मान होती है।
कीस्टोर/इंटेंट्स
आप निम्नलिखित का उपयोग करके कीस्टोर और इंटेंट्स के साथ खेल सकते हैं:
मेमोरी
डंप
सूची
सूची के निचले हिस्से में आप फ्रिडा देख सकते हैं:
चलो देखते हैं कि फ्रिडा क्या निर्यात कर रहा है:
खोज/लिखें
आप विरोध में मेमोरी के अंदर भी खोज सकते हैं और लिख सकते हैं।
SQLite
आप sqlite
कमांड का उपयोग sqlite डेटाबेस के साथ बातचीत करने के लिए कर सकते हैं।
Exit
वह क्या है जिसकी मुझे कमी महसूस होती है Objection
हुकिंग विधियाँ कभी-कभी एप्लिकेशन को क्रैश कर देती हैं (यह भी फ्रिडा की वजह से है)।
आप क्लासेस के इंस्टेंस का उपयोग करके उनकी फ़ंक्शन को कॉल करने के लिए नहीं कर सकते। और आप नए क्लासेस के इंस्टेंस बना कर उन्हें उपयोग करके फ़ंक्शन को कॉल नहीं कर सकते।
एक शॉर्टकट (जैसे sslpinnin के लिए एक) नहीं है जो एप्लिकेशन द्वारा उपयोग की जाने वाली सभी सामान्य क्रिप्टो विधियों को हुक करने के लिए उपयोग किया जा सकता है ताकि चिपर टेक्स्ट, सादा टेक्स्ट, कुंजी, IVs और एल्गोरिदम्स देख सकें।
बग बाउंटी टिप: Intigriti के लिए साइन अप करें, एक प्रीमियम बग बाउंटी प्लेटफ़ॉर्म जो हैकर्स द्वारा बनाया गया है, हैकर्स के लिए! हमारे साथ जुड़ें https://go.intigriti.com/hacktricks आज ही, और शुरू करें बाउंटी कमाना तक $100,000 तक!
Last updated