Drozer Tutorial
Bug bounty tip: sign up for Intigriti, μια 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!
APKs to test
Sieve (from mrwlabs)
Parts of this tutorial were extracted from the Drozer documentation pdf.
Installation
Install Drozer Client inside your host. Download it from the latest releases.
Κατεβάστε και εγκαταστήστε το drozer APK από τις τελευταίες εκδόσεις. Αυτή τη στιγμή είναι αυτή.
Starting the Server
Ο πράκτορας εκτελείται στη θύρα 31415, πρέπει να port forward για να καθιερώσουμε την επικοινωνία μεταξύ του Drozer Client και του Agent, εδώ είναι η εντολή για να το κάνουμε:
Τέλος, εκκινήστε την εφαρμογή και πατήστε το κουμπί "ON"
Και συνδεθείτε σε αυτήν:
Interesting Commands
Commands | Description |
Help MODULE | Εμφανίζει βοήθεια για το επιλεγμένο module |
list | Εμφανίζει μια λίστα με όλα τα drozer modules που μπορούν να εκτελούνται στην τρέχουσα συνεδρία. Αυτό κρύβει modules που δεν έχετε κατάλληλες άδειες για να εκτελέσετε. |
shell | Ξεκινά μια διαδραστική Linux shell στη συσκευή, στο πλαίσιο του Agent. |
clean | Αφαιρεί τα προσωρινά αρχεία που αποθηκεύει το drozer στη συσκευή Android. |
load | Φορτώνει ένα αρχείο που περιέχει drozer commands και τα εκτελεί διαδοχικά. |
module | Βρίσκει και εγκαθιστά επιπλέον drozer modules από το Διαδίκτυο. |
unset | Αφαιρεί μια ονομαστική μεταβλητή που το drozer περνά σε οποιαδήποτε Linux shells που δημιουργεί. |
set | Αποθηκεύει μια τιμή σε μια μεταβλητή που θα περαστεί ως περιβαλλοντική μεταβλητή σε οποιαδήποτε Linux shells που δημιουργεί το drozer. |
shell | Ξεκινά μια διαδραστική Linux shell στη συσκευή, στο πλαίσιο του Agent |
run MODULE | Εκτελεί ένα drozer module |
exploit | Το Drozer μπορεί να δημιουργήσει exploits για εκτέλεση στη συσκευή. |
payload | Τα exploits χρειάζονται ένα payload. |
Package
Βρείτε το όνομα του πακέτου φιλτράροντας με βάση ένα μέρος του ονόματος:
Βασικές Πληροφορίες του πακέτου:
Διαβάστε Manifest:
Επιφάνεια επίθεσης του πακέτου:
Δραστηριότητες: Ίσως μπορείτε να ξεκινήσετε μια δραστηριότητα και να παρακάμψετε κάποιο είδος εξουσιοδότησης που θα έπρεπε να σας αποτρέπει από το να την εκκινήσετε.
Παροχείς περιεχομένου: Ίσως μπορείτε να αποκτήσετε πρόσβαση σε ιδιωτικά δεδομένα ή να εκμεταλλευτείτε κάποια ευπάθεια (SQL Injection ή Path Traversal).
Υπηρεσίες:
is debuggable: Μάθετε περισσότερα
Δραστηριότητες
Η τιμή “android:exported” ενός εξαγόμενου συστατικού δραστηριότητας είναι ρυθμισμένη σε “true” στο αρχείο AndroidManifest.xml:
Λίστα εξαγόμενων δραστηριοτήτων:
Έναρξη δραστηριότητας:
Ίσως μπορείτε να ξεκινήσετε μια δραστηριότητα και να παρακάμψετε κάποιο είδος εξουσιοδότησης που θα έπρεπε να σας αποτρέπει από το να την εκκινήσετε.
Μπορείτε επίσης να ξεκινήσετε μια εξαγόμενη δραστηριότητα από το adb:
PackageName είναι com.example.demo
Exported ActivityName είναι com.example.test.MainActivity
Content Providers
Αυτή η ανάρτηση ήταν τόσο μεγάλη ώστε να είναι εδώ, οπότε μπορείτε να την αποκτήσετε στη δική της σελίδα εδώ.
Services
Μια εξαγόμενη υπηρεσία δηλώνεται μέσα στο Manifest.xml:
Μέσα στον κώδικα έλεγξε τη **handleMessage
** συνάρτηση η οποία θα λάβει το μήνυμα:
Λίστα υπηρεσίας
Αλληλεπίδραση με μια υπηρεσία
Παράδειγμα
Take a look to the drozer help for app.service.send
:
Note that you will be sending first the data inside "msg.what", then "msg.arg1" and "msg.arg2", you should check inside the code ποια πληροφορία χρησιμοποιείται και πού.
Using the --extra
option you can send something interpreted by "msg.replyTo", and using --bundle-as-obj
you create and object with the provided details.
In the following example:
what == 2354
arg1 == 9234
arg2 == 1
replyTo == object(string com.mwr.example.sieve.PIN 1337)
Broadcast Receivers
Στην ενότητα βασικών πληροφοριών του Android μπορείτε να δείτε τι είναι ένας Broadcast Receiver.
Αφού ανακαλύψετε αυτούς τους Broadcast Receivers, θα πρέπει να ελέγξετε τον κώδικα τους. Δώστε ιδιαίτερη προσοχή στη λειτουργία onReceive
καθώς θα διαχειρίζεται τα μηνύματα που λαμβάνονται.
Ανιχνεύστε όλους τους broadcast receivers
Έλεγχος των broadcast receivers μιας εφαρμογής
Broadcast Αλληλεπιδράσεις
Στείλτε ένα μήνυμα
Σε αυτό το παράδειγμα, εκμεταλλευόμενοι τον FourGoats apk Content Provider, μπορείτε να στείλετε ένα αυθαίρετο SMS σε οποιονδήποτε μη premium προορισμό χωρίς να ζητήσετε άδεια από τον χρήστη.
Αν διαβάσετε τον κώδικα, οι παράμετροι "phoneNumber" και "message" πρέπει να σταλούν στον Content Provider.
Is debuggeable
Ένα παραγωγικό APK δεν θα πρέπει ποτέ να είναι debuggeable. Αυτό σημαίνει ότι μπορείτε να συνδέσετε τον java debugger στην τρέχουσα εφαρμογή, να την επιθεωρήσετε σε πραγματικό χρόνο, να ορίσετε σημεία διακοπής, να προχωρήσετε βήμα προς βήμα, να συγκεντρώσετε τιμές μεταβλητών και ακόμη και να τις αλλάξετε. Το InfoSec institute έχει ένα εξαιρετικό άρθρο για το πώς να εμβαθύνετε όταν η εφαρμογή σας είναι debuggeable και να εισάγετε κώδικα σε πραγματικό χρόνο.
Όταν μια εφαρμογή είναι debuggeable, θα εμφανίζεται στο Manifest:
Μπορείτε να βρείτε όλες τις εφαρμογές που μπορούν να αποσφαλματωθούν με Drozer:
Tutorials
More info
Bug bounty tip: εγγραφείτε για Intigriti, μια premium πλατφόρμα bug bounty που δημιουργήθηκε από hackers, για hackers! Ελάτε μαζί μας στο https://go.intigriti.com/hacktricks σήμερα, και αρχίστε να κερδίζετε βραβεία έως $100,000!
Last updated