Drozer Tutorial
Bug bounty tip: sign up for Intigriti, एक प्रीमियम bug bounty platform जो हैकर्स द्वारा, हैकर्स के लिए बनाई गई है! आज ही हमारे साथ जुड़ें https://go.intigriti.com/hacktricks पर, और $100,000 तक के बाउंटी कमाना शुरू करें!
APKs to test
Sieve (mrwlabs से)
इस ट्यूटोरियल के कुछ भाग Drozer documentation pdf** से निकाले गए हैं।**
Installation
Drozer Client को अपने होस्ट के अंदर इंस्टॉल करें। इसे latest releases से डाउनलोड करें।
Download और install करें drozer APK को latest releases से। इस समय यह यह है।
सर्वर शुरू करना
एजेंट पोर्ट 31415 पर चल रहा है, हमें पोर्ट फॉरवर्ड करना होगा ताकि Drozer क्लाइंट और एजेंट के बीच संचार स्थापित किया जा सके, इसे करने के लिए कमांड है:
अंत में, लॉन्च करें एप्लिकेशन और नीचे "ON" दबाएं
और इससे कनेक्ट करें:
Interesting Commands
Commands | Description |
Help MODULE | चयनित मॉड्यूल की मदद दिखाता है |
list | वर्तमान सत्र में निष्पादित किए जा सकने वाले सभी drozer मॉड्यूल की सूची दिखाता है। यह उन मॉड्यूल को छिपाता है जिनके लिए आपके पास उचित अनुमतियाँ नहीं हैं। |
shell | एजेंट के संदर्भ में डिवाइस पर एक इंटरैक्टिव लिनक्स शेल शुरू करें। |
clean | Android डिवाइस पर drozer द्वारा संग्रहीत अस्थायी फ़ाइलें हटा दें। |
load | drozer कमांड वाले फ़ाइल को लोड करें और उन्हें अनुक्रम में निष्पादित करें। |
module | इंटरनेट से अतिरिक्त drozer मॉड्यूल खोजें और स्थापित करें। |
unset | एक नामित चर को हटा दें जिसे drozer किसी भी लिनक्स शेल में पास करता है जिसे यह उत्पन्न करता है। |
set | एक मान को एक चर में संग्रहीत करें जिसे drozer द्वारा उत्पन्न किसी भी लिनक्स शेल में पर्यावरणीय चर के रूप में पास किया जाएगा। |
shell | एजेंट के संदर्भ में डिवाइस पर एक इंटरैक्टिव लिनक्स शेल शुरू करें। |
run MODULE | एक drozer मॉड्यूल निष्पादित करें |
exploit | Drozer निर्णय में निष्पादित करने के लिए शोषण बना सकता है। |
payload | शोषण को एक पेलोड की आवश्यकता होती है। |
Package
नाम का पता लगाएँ जो नाम के भाग द्वारा फ़िल्टर किया गया है:
पैकेज की मूल जानकारी:
पढ़ें Manifest:
पैकेज की हमले की सतह:
गतिविधियाँ: शायद आप एक गतिविधि शुरू कर सकते हैं और किसी प्रकार की प्राधिकरण को बायपास कर सकते हैं जो आपको इसे लॉन्च करने से रोकनी चाहिए।
सामग्री प्रदाता: शायद आप निजी डेटा तक पहुँच सकते हैं या कुछ कमजोरियों (SQL Injection या Path Traversal) का लाभ उठा सकते हैं।
सेवाएँ:
is debuggable: अधिक जानें
गतिविधियाँ
एक निर्यातित गतिविधि घटक का “android:exported” मान AndroidManifest.xml फ़ाइल में “true” पर सेट किया गया है:
निर्यातित गतिविधियों की सूची:
गतिविधि शुरू करें:
शायद आप एक गतिविधि शुरू कर सकते हैं और कुछ प्रकार की प्राधिकरण को बायपास कर सकते हैं जो आपको इसे लॉन्च करने से रोकनी चाहिए।
आप adb से एक निर्यातित गतिविधि भी शुरू कर सकते हैं:
PackageName com.example.demo है
Exported ActivityName com.example.test.MainActivity है
Content Providers
यह पोस्ट यहाँ इतनी बड़ी थी कि आप इसे यहाँ अपनी पृष्ठ पर एक्सेस कर सकते हैं.
Services
एक निर्यातित सेवा Manifest.xml के अंदर घोषित की जाती है:
कोड के अंदर check करें **handleMessage
** फ़ंक्शन के लिए जो message को receive करेगा:
सूची सेवा
एक सेवा के साथ इंटरैक्ट करें
Example
Take a look to the drozer help for app.service.send
:
ध्यान दें कि आप पहले "msg.what" के अंदर डेटा भेजेंगे, फिर "msg.arg1" और "msg.arg2"। आपको कोड के अंदर कौन सी जानकारी का उपयोग किया जा रहा है और कहाँ यह जांचना चाहिए।
--extra
विकल्प का उपयोग करके आप "msg.replyTo" द्वारा व्याख्यायित कुछ भेज सकते हैं, और --bundle-as-obj
का उपयोग करके आप प्रदान की गई विवरणों के साथ एक ऑब्जेक्ट बना सकते हैं।
In the following example:
what == 2354
arg1 == 9234
arg2 == 1
replyTo == object(string com.mwr.example.sieve.PIN 1337)
Broadcast Receivers
एंड्रॉइड बेसिक जानकारी अनुभाग में आप देख सकते हैं कि Broadcast Receiver क्या है।
इन Broadcast Receivers का पता लगाने के बाद आपको उनका कोड चेक करना चाहिए। विशेष ध्यान दें onReceive
फ़ंक्शन पर क्योंकि यह प्राप्त संदेशों को संभाल रहा होगा।
सभी ब्रॉडकास्ट रिसीवर्स का पता लगाएं
एक ऐप के ब्रॉडकास्ट रिसीवर्स की जांच करें
ब्रॉडकास्ट इंटरैक्शंस
संदेश भेजें
इस उदाहरण में FourGoats apk Content Provider का दुरुपयोग करते हुए आप किसी भी गैर-प्रीमियम गंतव्य को मनचाहा SMS बिना अनुमति मांगे भेज सकते हैं।
यदि आप कोड पढ़ते हैं, तो "phoneNumber" और "message" पैरामीटर Content Provider को भेजे जाने चाहिए।
Is debuggeable
एक प्रोडक्शन APK कभी भी डिबग करने योग्य नहीं होना चाहिए। इसका मतलब है कि आप जावा डिबगर को चल रहे एप्लिकेशन से जोड़ सकते हैं, इसे रन टाइम में निरीक्षण कर सकते हैं, ब्रेकपॉइंट सेट कर सकते हैं, कदम से कदम आगे बढ़ सकते हैं, वेरिएबल के मान इकट्ठा कर सकते हैं और यहां तक कि उन्हें बदल भी सकते हैं। InfoSec institute has an excellent article जब आपका एप्लिकेशन डिबग करने योग्य हो और रनटाइम कोड इंजेक्ट करने पर गहराई से खुदाई करने के लिए।
जब एक एप्लिकेशन डिबग करने योग्य होता है, तो यह मैनिफेस्ट में दिखाई देगा:
आप सभी डिबग करने योग्य अनुप्रयोगों को Drozer के साथ ढूंढ सकते हैं:
Tutorials
More info
Bug bounty tip: साइन अप करें Intigriti के लिए, एक प्रीमियम bug bounty प्लेटफार्म जो हैकर्स द्वारा, हैकर्स के लिए बनाया गया है! आज ही https://go.intigriti.com/hacktricks पर हमारे साथ जुड़ें, और $100,000 तक के बाउंटी कमाना शुरू करें!
Last updated