Drozer 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)
Tip για bug bounty: εγγραφείτε στο Intigriti, μια premium πλατφόρμα bug bounty που δημιουργήθηκε από hackers, για hackers! Ελάτε μαζί μας στο https://go.intigriti.com/hacktricks σήμερα, και αρχίστε να κερδίζετε βραβεία έως $100,000!
Sieve (from mrwlabs)
Μέρη αυτού του tutorial εξήχθησαν από το Drozer documentation pdf.
Εγκαταστήστε τον Drozer Client μέσα στον υπολογιστή σας. Κατεβάστε τον από τις latest releases.
Κατεβάστε και εγκαταστήστε το drozer APK από τις τελευταίες εκδόσεις. Αυτή τη στιγμή είναι αυτή.
Ο πράκτορας εκτελείται στη θύρα 31415, πρέπει να port forward για να καθιερώσουμε την επικοινωνία μεταξύ του Drozer Client και του Agent, εδώ είναι η εντολή για να το κάνουμε:
Τέλος, εκκινήστε την εφαρμογή και πατήστε το κουμπί "ON"
Και συνδεθείτε σε αυτήν:
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 για εκτέλεση στη συσκευή. drozer exploit list
payload
Τα exploits χρειάζονται ένα payload. drozer payload list
Βρείτε το όνομα του πακέτου φιλτράροντας με βάση ένα μέρος του ονόματος:
Βασικές Πληροφορίες του πακέτου:
Διαβάστε Manifest:
Επιφάνεια επίθεσης του πακέτου:
Δραστηριότητες: Ίσως μπορείτε να ξεκινήσετε μια δραστηριότητα και να παρακάμψετε κάποιο είδος εξουσιοδότησης που θα έπρεπε να σας αποτρέπει από το να την εκκινήσετε.
Πάροχοι περιεχομένου: Ίσως μπορείτε να αποκτήσετε πρόσβαση σε ιδιωτικά δεδομένα ή να εκμεταλλευτείτε κάποια ευπάθεια (SQL Injection ή Path Traversal).
Υπηρεσίες:
is debuggable: Μάθετε περισσότερα
Η τιμή “android:exported” ενός εξαγόμενου συστατικού δραστηριότητας είναι ρυθμισμένη σε “true” στο αρχείο AndroidManifest.xml:
Λίστα εξαγόμενων δραστηριοτήτων:
Έναρξη δραστηριότητας:
Ίσως μπορείτε να ξεκινήσετε μια δραστηριότητα και να παρακάμψετε κάποιο είδος εξουσιοδότησης που θα έπρεπε να σας αποτρέπει από το να την εκκινήσετε.
Μπορείτε επίσης να ξεκινήσετε μια εξαγόμενη δραστηριότητα από το adb:
PackageName είναι com.example.demo
Exported ActivityName είναι com.example.test.MainActivity
Αυτή η ανάρτηση ήταν τόσο μεγάλη ώστε να είναι εδώ, οπότε μπορείτε να την αποκτήσετε στη δική της σελίδα εδώ.
Μια εξαγόμενη υπηρεσία δηλώνεται μέσα στο 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)
Στην ενότητα βασικών πληροφοριών Android μπορείτε να δείτε τι είναι ένας Broadcast Receiver.
Αφού ανακαλύψετε αυτούς τους Broadcast Receivers θα πρέπει να ελέγξετε τον κώδικα τους. Δώστε ιδιαίτερη προσοχή στη λειτουργία onReceive
καθώς θα διαχειρίζεται τα μηνύματα που λαμβάνονται.
Σε αυτό το παράδειγμα, εκμεταλλευόμενοι το FourGoats apk Content Provider, μπορείτε να στείλετε ένα αυθαίρετο SMS σε οποιονδήποτε μη premium προορισμό χωρίς να ζητήσετε άδεια από τον χρήστη.
Αν διαβάσετε τον κώδικα, οι παράμετροι "phoneNumber" και "message" πρέπει να σταλούν στο Content Provider.
Ένα παραγωγικό APK δεν θα πρέπει ποτέ να είναι debuggeable. Αυτό σημαίνει ότι μπορείτε να συνδέσετε τον java debugger στην τρέχουσα εφαρμογή, να την επιθεωρήσετε σε πραγματικό χρόνο, να ορίσετε σημεία διακοπής, να προχωρήσετε βήμα προς βήμα, να συγκεντρώσετε τιμές μεταβλητών και ακόμη και να τις αλλάξετε. Το InfoSec institute έχει ένα εξαιρετικό άρθρο για το πώς να εμβαθύνετε όταν η εφαρμογή σας είναι debuggeable και να εισάγετε κώδικα σε πραγματικό χρόνο.
Όταν μια εφαρμογή είναι debuggeable, θα εμφανίζεται στο Manifest:
Μπορείτε να βρείτε όλες τις εφαρμογές που μπορούν να αποσφαλματωθούν με Drozer:
Bug bounty tip: εγγραφείτε για Intigriti, μια premium πλατφόρμα bug bounty που δημιουργήθηκε από hackers, για hackers! Ελάτε μαζί μας στο https://go.intigriti.com/hacktricks σήμερα, και αρχίστε να κερδίζετε βραβεία έως $100,000!
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)