Objection Tutorial
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Bug bounty tip: sign up for Intigriti, a premium bug bounty platform created by hackers, for hackers! Join us at https://go.intigriti.com/hacktricks today, and start earning bounties up to $100,000!
objection - Runtime Mobile Exploration
Objection एक रनटाइम मोबाइल अन्वेषण टूलकिट है, जो Frida द्वारा संचालित है। इसे मोबाइल अनुप्रयोगों और उनकी सुरक्षा स्थिति का आकलन करने में मदद करने के उद्देश्य से बनाया गया था, बिना किसी जेलब्रोकन या रूटेड मोबाइल डिवाइस की आवश्यकता के।
Note: यह जेलब्रेक / रूट बाईपास का कोई रूप नहीं है। objection
का उपयोग करके, आप अभी भी उस लागू सैंडबॉक्स द्वारा लगाए गए सभी प्रतिबंधों से सीमित हैं जिनका आप सामना कर रहे हैं।
objection का लक्ष्य उपयोगकर्ता को Frida द्वारा प्रदान की जाने वाली मुख्य क्रियाओं को कॉल करने देना है। अन्यथा, उपयोगकर्ता को हर अनुप्रयोग के लिए एक एकल स्क्रिप्ट बनानी होगी जिसे वह परीक्षण करना चाहता है।
इस ट्यूटोरियल के लिए मैं उस APK का उपयोग करने जा रहा हूँ जिसे आप यहाँ डाउनलोड कर सकते हैं:
या इसके मूल भंडार से(app-release.apk डाउनलोड करें)
एक सामान्य ADB कनेक्शन बनाएं और डिवाइस में frida सर्वर शुरू करें (और जांचें कि frida क्लाइंट और सर्वर दोनों में काम कर रहा है)।
यदि आप एक रूटेड डिवाइस का उपयोग कर रहे हैं, तो --gadget विकल्प के अंदर उस एप्लिकेशन का चयन करना आवश्यक है जिसे आप परीक्षण करना चाहते हैं। इस मामले में:
इस ट्यूटोरियल में सभी संभावित आदेशों की सूची नहीं दी जाएगी, केवल वे जो मुझे अधिक उपयोगी लगे हैं।
कुछ दिलचस्प जानकारी (जैसे पासवर्ड या पथ) वातावरण के अंदर मिल सकती है।
एक वास्तविक एप्लिकेशन में, हमें इस भाग में खोजी गई सभी जानकारी का ज्ञान होना चाहिए, इससे पहले कि हम objection का उपयोग करें, धन्यवाद स्थैतिक विश्लेषण। खैर, इस तरीके से आप शायद कुछ नया देख सकें क्योंकि यहाँ आपके पास केवल कक्षाओं, विधियों और निर्यातित वस्तुओं की एक पूर्ण सूची होगी।
यह भी उपयोगी है यदि किसी तरह आप ऐप का पढ़ने योग्य स्रोत कोड प्राप्त करने में असमर्थ हैं।
Frida कोई त्रुटि लॉन्च करेगा यदि कोई नहीं पाया गया
आइए अपने एप्लिकेशन के अंदर क्लासेस की खोज करना शुरू करें।
अब हम MainActivity: क्लास के अंदर के तरीकों को निकालते हैं:
आइए पता करते हैं कि क्लास के मेथड्स को कौन से पैरामीटर्स की आवश्यकता है:
आप वर्तमान एप्लिकेशन के अंदर लोड की गई सभी क्लासेस की सूची भी बना सकते हैं:
यह बहुत उपयोगी है यदि आप किसी क्लास के मेथड को हुक करना चाहते हैं और आपको केवल क्लास का नाम पता है। आप इस फ़ंक्शन का उपयोग यह खोजने के लिए कर सकते हैं कि क्लास का मालिक कौन सा मॉड्यूल है और फिर उसके मेथड को हुक कर सकते हैं।
ऐप्लिकेशन के स्रोत कोड से हमें पता है कि फंक्शन sum() से MainActivity हर सेकंड चल रहा है। चलिए कोशिश करते हैं कि हर बार जब फंक्शन को कॉल किया जाए तो सभी संभावित जानकारी को डंप करें (आर्गुमेंट्स, रिटर्न वैल्यू और बैकट्रेस):
वास्तव में, मुझे क्लास MainActivity के सभी मेथड्स बहुत दिलचस्प लगते हैं, चलो उन्हें सभी हुक करें। सावधान रहें, यह एक एप्लिकेशन को क्रैश कर सकता है।
If you play with the application while the class is hooked you will see when प्रत्येक फ़ंक्शन को कॉल किया जा रहा है, इसके आर्गुमेंट्स और रिटर्न वैल्यू।
स्रोत कोड से आप देख सकते हैं कि फ़ंक्शन checkPin एक String को आर्गुमेंट के रूप में लेता है और एक boolean लौटाता है। चलिए फ़ंक्शन को हमेशा true लौटाने के लिए बनाते हैं:
अब, यदि आप PIN कोड के लिए टेक्स्ट बॉक्स में कुछ भी लिखते हैं, तो आप देखेंगे कि कुछ भी मान्य है:
एक विशेष Java क्लास के लाइव इंस्टेंस के लिए खोजें और प्रिंट करें, जिसे पूर्ण रूप से योग्य क्लास नाम द्वारा निर्दिष्ट किया गया है। यह एक खोजे गए ऑब्जेक्शन के लिए एक स्ट्रिंग वैल्यू प्राप्त करने के प्रयास का परिणाम है, जो आमतौर पर ऑब्जेक्ट के लिए प्रॉपर्टी वैल्यूज़ को शामिल करेगा।
आप कीस्टोर और इंटेंट्स के साथ खेल सकते हैं:
सूची के नीचे आप फ्रिडा देख सकते हैं:
चलो देखते हैं कि फ्रिडा क्या निर्यात कर रहा है:
आप objection के साथ मेमोरी के अंदर खोज और लिख भी सकते हैं:
आप sqlite
कमांड का उपयोग sqlite डेटाबेस के साथ इंटरैक्ट करने के लिए कर सकते हैं।
हुकिंग विधियाँ कभी-कभी एप्लिकेशन को क्रैश कर देती हैं (यह Frida के कारण भी है)।
आप कक्षाओं के उदाहरणों का उपयोग करके उदाहरण के कार्यों को कॉल नहीं कर सकते। और आप कक्षाओं के नए उदाहरण नहीं बना सकते और उनका उपयोग करके कार्यों को कॉल नहीं कर सकते।
एप्लिकेशन द्वारा उपयोग किए जा रहे सभी सामान्य क्रिप्टो विधियों को हुक करने के लिए कोई शॉर्टकट नहीं है (जैसे sslpinnin) ताकि आप सिफर टेक्स्ट, प्लेन टेक्स्ट, कुंजी, IVs और उपयोग किए गए एल्गोरिदम देख सकें।
बग बाउंटी टिप: Intigriti के लिए साइन अप करें, एक प्रीमियम बग बाउंटी प्लेटफॉर्म जो हैकर्स द्वारा, हैकर्स के लिए बनाया गया है! आज ही https://go.intigriti.com/hacktricks पर हमारे साथ जुड़ें, और $100,000 तक की बाउंटी कमाना शुरू करें!
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)