Android Applications Pentesting
Εγγραφείτε στον HackenProof Discord server για να επικοινωνήσετε με έμπειρους hackers και κυνηγούς bug bounty!
Hacking Insights Συμμετάσχετε σε περιεχόμενο που εμβαθύνει στην αδρεναλίνη και τις προκλήσεις του hacking
Real-Time Hack News Μείνετε ενημερωμένοι με τον ταχύτατο κόσμο του hacking μέσω ειδήσεων και πληροφοριών σε πραγματικό χρόνο
Latest Announcements Μείνετε ενημερωμένοι με τις πιο πρόσφατες εκκινήσεις bug bounties και κρίσιμες ενημερώσεις πλατφόρμας
Εγγραφείτε μαζί μας στο Discord και ξεκινήστε να συνεργάζεστε με κορυφαίους hackers σήμερα!
Android Applications Basics
Είναι πολύ σημαντικό να ξεκινήσετε διαβάζοντας αυτή τη σελίδα για να γνωρίσετε τα πιο σημαντικά μέρη που σχετίζονται με την ασφάλεια Android και τα πιο επικίνδυνα στοιχεία σε μια εφαρμογή Android:
Android Applications BasicsADB (Android Debug Bridge)
Αυτό είναι το κύριο εργαλείο που χρειάζεστε για να συνδεθείτε σε μια συσκευή android (εξομοιωμένη ή φυσική). ADB επιτρέπει τον έλεγχο συσκευών είτε μέσω USB είτε μέσω Δικτύου από έναν υπολογιστή. Αυτή η χρησιμότητα επιτρέπει την αντιγραφή αρχείων και στις δύο κατευθύνσεις, την εγκατάσταση και απεγκατάσταση εφαρμογών, την εκτέλεση εντολών shell, την αντίγραφο ασφαλείας δεδομένων, την ανάγνωση καταγραφών, μεταξύ άλλων λειτουργιών.
Ρίξτε μια ματιά στη παρακάτω λίστα με ADB Commands για να μάθετε πώς να χρησιμοποιείτε το adb.
Smali
Μερικές φορές είναι ενδιαφέρον να τροποποιήσετε τον κώδικα της εφαρμογής για να αποκτήσετε πρόσβαση σε κρυφές πληροφορίες (ίσως καλά κρυμμένους κωδικούς ή σημαίες). Στη συνέχεια, θα μπορούσε να είναι ενδιαφέρον να αποσυμπιέσετε το apk, να τροποποιήσετε τον κώδικα και να το ξανασυμπιέσετε. Σε αυτό το tutorial μπορείτε να μάθετε πώς να αποσυμπιέσετε ένα APK, να τροποποιήσετε τον κώδικα Smali και να ξανασυμπιέσετε το APK με τη νέα λειτουργικότητα. Αυτό θα μπορούσε να είναι πολύ χρήσιμο ως εναλλακτική για πολλές δοκιμές κατά τη διάρκεια της δυναμικής ανάλυσης που θα παρουσιαστούν. Στη συνέχεια, κρατήστε πάντα στο μυαλό αυτή την πιθανότητα.
Other interesting tricks
Extract APK from device:
Συγχωνεύστε όλα τα splits και τα base apks με APKEditor:
Στατική Ανάλυση
Πρώτα απ' όλα, για να αναλύσετε ένα APK θα πρέπει να ρίξετε μια ματιά στον κώδικα Java χρησιμοποιώντας έναν decompiler. Παρακαλώ, διαβάστε εδώ για να βρείτε πληροφορίες σχετικά με διάφορους διαθέσιμους decompilers.
Αναζητώντας ενδιαφέροντα στοιχεία
Απλά ρίχνοντας μια ματιά στις αλφαβητικές σειρές του APK μπορείτε να αναζητήσετε κωδικούς πρόσβασης, URLs (https://github.com/ndelphit/apkurlgrep), api κλειδιά, κρυπτογράφηση, bluetooth uuids, tokens και οτιδήποτε άλλο ενδιαφέρον... κοιτάξτε ακόμα και για εκτέλεση κώδικα backdoors ή backdoors αυθεντικοποίησης (σκληρά κωδικοποιημένα διαπιστευτήρια διαχειριστή στην εφαρμογή).
Firebase
Δώστε ιδιαίτερη προσοχή σε firebase URLs και ελέγξτε αν είναι κακώς ρυθμισμένα. Περισσότερες πληροφορίες σχετικά με το τι είναι το Firebase και πώς να το εκμεταλλευτείτε εδώ.
Βασική κατανόηση της εφαρμογής - Manifest.xml, strings.xml
Η εξέταση των αρχείων _Manifest.xml** και **strings.xml_** μπορεί να αποκαλύψει πιθανές ευπάθειες ασφαλείας**. Αυτά τα αρχεία μπορούν να προσπελαστούν χρησιμοποιώντας decompilers ή με την αλλαγή της επέκτασης του αρχείου APK σε .zip και στη συνέχεια αποσυμπιέζοντάς το.
Ευπάθειες που εντοπίζονται από το Manifest.xml περιλαμβάνουν:
Debuggable Εφαρμογές: Οι εφαρμογές που έχουν οριστεί ως debuggable (
debuggable="true"
) στο αρχείο Manifest.xml ενέχουν κίνδυνο καθώς επιτρέπουν συνδέσεις που μπορεί να οδηγήσουν σε εκμετάλλευση. Για περαιτέρω κατανόηση σχετικά με το πώς να εκμεταλλευτείτε debuggable εφαρμογές, ανατρέξτε σε ένα tutorial για την εύρεση και εκμετάλλευση debuggable εφαρμογών σε μια συσκευή.Ρυθμίσεις Αντιγράφων Ασφαλείας: Το χαρακτηριστικό
android:allowBackup="false"
θα πρέπει να ορίζεται ρητά για εφαρμογές που ασχολούνται με ευαίσθητες πληροφορίες για να αποτραπούν μη εξουσιοδοτημένα αντίγραφα ασφαλείας δεδομένων μέσω adb, ειδικά όταν είναι ενεργοποιημένη η αποσφαλμάτωση usb.Ασφάλεια Δικτύου: Προσαρμοσμένες ρυθμίσεις ασφάλειας δικτύου (
android:networkSecurityConfig="@xml/network_security_config"
) στο res/xml/ μπορούν να καθορίσουν λεπτομέρειες ασφαλείας όπως πιστοποιητικά και ρυθμίσεις HTTP traffic. Ένα παράδειγμα είναι η επιτρεπόμενη HTTP traffic για συγκεκριμένα domains.Εξαγόμενες Δραστηριότητες και Υπηρεσίες: Η αναγνώριση εξαγόμενων δραστηριοτήτων και υπηρεσιών στο manifest μπορεί να αναδείξει στοιχεία που μπορεί να κακοποιηθούν. Περαιτέρω ανάλυση κατά τη διάρκεια δυναμικής δοκιμής μπορεί να αποκαλύψει πώς να εκμεταλλευτείτε αυτά τα στοιχεία.
Content Providers και FileProviders: Οι εκτεθειμένοι content providers θα μπορούσαν να επιτρέψουν μη εξουσιοδοτημένη πρόσβαση ή τροποποίηση δεδομένων. Η ρύθμιση των FileProviders θα πρέπει επίσης να εξεταστεί προσεκτικά.
Broadcast Receivers και URL Schemes: Αυτά τα στοιχεία θα μπορούσαν να χρησιμοποιηθούν για εκμετάλλευση, με ιδιαίτερη προσοχή στο πώς διαχειρίζονται τα URL schemes για ευπάθειες εισόδου.
Εκδόσεις SDK: Τα χαρακτηριστικά
minSdkVersion
,targetSDKVersion
, καιmaxSdkVersion
υποδεικνύουν τις υποστηριζόμενες εκδόσεις Android, τονίζοντας τη σημασία της μη υποστήριξης παλαιών, ευάλωτων εκδόσεων Android για λόγους ασφαλείας.
Από το αρχείο strings.xml, ευαίσθητες πληροφορίες όπως API κλειδιά, προσαρμοσμένα σχήματα και άλλες σημειώσεις προγραμματιστών μπορούν να ανακαλυφθούν, υπογραμμίζοντας την ανάγκη προσεκτικής ανασκόπησης αυτών των πόρων.
Tapjacking
Tapjacking είναι μια επίθεση όπου μια κακόβουλη εφαρμογή εκκινείται και τοποθετείται πάνω από μια εφαρμογή θύμα. Μόλις καλύψει ορατά την εφαρμογή θύμα, η διεπαφή χρήστη της είναι σχεδιασμένη με τέτοιο τρόπο ώστε να παραπλανήσει τον χρήστη να αλληλεπιδράσει με αυτήν, ενώ περνά την αλληλεπίδραση στην εφαρμογή θύμα. Στην ουσία, τυφλώνει τον χρήστη από το να γνωρίζει ότι εκτελεί ενέργειες στην εφαρμογή θύμα.
Βρείτε περισσότερες πληροφορίες στο:
TapjackingHijacking Εργασιών
Μια δραστηριότητα με το launchMode
ορισμένο σε singleTask
χωρίς καμία taskAffinity
καθορισμένη είναι ευάλωτη σε hijacking εργασιών. Αυτό σημαίνει ότι μια εφαρμογή μπορεί να εγκατασταθεί και αν εκκινείται πριν από την πραγματική εφαρμογή μπορεί να υφαρπάξει την εργασία της πραγματικής εφαρμογής (έτσι ο χρήστης θα αλληλεπιδρά με την κακόβουλη εφαρμογή νομίζοντας ότι χρησιμοποιεί την πραγματική).
Περισσότερες πληροφορίες στο:
Android Task HijackingΑνασφαλής αποθήκευση δεδομένων
Εσωτερική Αποθήκευση
Στο Android, τα αρχεία που αποθηκεύονται στην εσωτερική αποθήκευση είναι σχεδιασμένα να είναι προσβάσιμα αποκλειστικά από την εφαρμογή που τα δημιούργησε. Αυτό το μέτρο ασφαλείας είναι επιβεβλημένο από το λειτουργικό σύστημα Android και είναι γενικά επαρκές για τις ανάγκες ασφάλειας των περισσότερων εφαρμογών. Ωστόσο, οι προγραμματιστές μερικές φορές χρησιμοποιούν τρόπους όπως MODE_WORLD_READABLE
και MODE_WORLD_WRITABLE
για να επιτρέψουν τα αρχεία να μοιράζονται μεταξύ διαφορετικών εφαρμογών. Ωστόσο, αυτοί οι τρόποι δεν περιορίζουν την πρόσβαση σε αυτά τα αρχεία από άλλες εφαρμογές, συμπεριλαμβανομένων πιθανώς κακόβουλων.
Στατική Ανάλυση:
Βεβαιωθείτε ότι η χρήση των
MODE_WORLD_READABLE
καιMODE_WORLD_WRITABLE
είναι προσεκτικά εξετασμένη. Αυτοί οι τρόποι μπορούν να εκθέσουν τα αρχεία σε μη προγραμματισμένες ή μη εξουσιοδοτημένες προσβάσεις.
Δυναμική Ανάλυση:
Επαληθεύστε τις άδειες που έχουν οριστεί στα αρχεία που δημιουργούνται από την εφαρμογή. Συγκεκριμένα, ελέγξτε αν οποιαδήποτε αρχεία είναι ορισμένα να είναι αναγνώσιμα ή εγγράψιμα παγκοσμίως. Αυτό μπορεί να θέσει σε σημαντικό κίνδυνο την ασφάλεια, καθώς θα επιτρέπει σε οποιαδήποτε εφαρμογή εγκατασταθεί στη συσκευή, ανεξαρτήτως προέλευσης ή προθέσεων, να διαβάσει ή να τροποποιήσει αυτά τα αρχεία.
Εξωτερική Αποθήκευση
Όταν ασχολείστε με αρχεία σε εξωτερική αποθήκευση, όπως οι κάρτες SD, θα πρέπει να ληφθούν ορισμένες προφυλάξεις:
Προσβασιμότητα:
Τα αρχεία στην εξωτερική αποθήκευση είναι παγκοσμίως αναγνώσιμα και εγγράψιμα. Αυτό σημαίνει ότι οποιαδήποτε εφαρμογή ή χρήστης μπορεί να έχει πρόσβαση σε αυτά τα αρχεία.
Ανησυχίες Ασφαλείας:
Δεδομένης της ευκολίας πρόσβασης, συνιστάται να μην αποθηκεύετε ευαίσθητες πληροφορίες στην εξωτερική αποθήκευση.
Η εξωτερική αποθήκευση μπορεί να αφαιρεθεί ή να προσπελαστεί από οποιαδήποτε εφαρμογή, καθιστώντας την λιγότερο ασφαλή.
Διαχείριση Δεδομένων από Εξωτερική Αποθήκευση:
Πάντα εκτελέστε έλεγχο εισόδου στα δεδομένα που ανακτώνται από την εξωτερική αποθήκευση. Αυτό είναι κρίσιμο επειδή τα δεδομένα προέρχονται από μια μη αξιόπιστη πηγή.
Η αποθήκευση εκτελέσιμων ή αρχείων κλάσης στην εξωτερική αποθήκευση για δυναμική φόρτωση αποθαρρύνεται έντονα.
Εάν η εφαρμογή σας πρέπει να ανακτήσει εκτελέσιμα αρχεία από την εξωτερική αποθήκευση, βεβαιωθείτε ότι αυτά τα αρχεία είναι υπογεγραμμένα και κρυπτογραφικά επαληθευμένα πριν φορτωθούν δυναμικά. Αυτό το βήμα είναι ζωτικής σημασίας για τη διατήρηση της ασφάλειας της εφαρμογής σας.
Η εξωτερική αποθήκευση μπορεί να προσεγγιστεί στο /storage/emulated/0
, /sdcard
, /mnt/sdcard
Αρχίζοντας από το Android 4.4 (API 17), η κάρτα SD έχει μια δομή καταλόγου που περιορίζει την πρόσβαση από μια εφαρμογή στον κατάλογο που είναι ειδικά για αυτή την εφαρμογή. Αυτό αποτρέπει την κακόβουλη εφαρμογή από το να αποκτήσει πρόσβαση για ανάγνωση ή εγγραφή στα αρχεία άλλης εφαρμογής.
Ευαίσθητα δεδομένα αποθηκευμένα σε καθαρό κείμενο
Κοινές ρυθμίσεις: Το Android επιτρέπει σε κάθε εφαρμογή να αποθηκεύει εύκολα αρχεία xml στη διαδρομή
/data/data/<packagename>/shared_prefs/
και μερικές φορές είναι δυνατό να βρείτε ευαίσθητες πληροφορίες σε καθαρό κείμενο σε αυτόν τον φάκελο.Βάσεις Δεδομένων: Το Android επιτρέπει σε κάθε εφαρμογή να αποθηκεύει εύκολα βάσεις δεδομένων sqlite στη διαδρομή
/data/data/<packagename>/databases/
και μερικές φορές είναι δυνατό να βρείτε ευαίσθητες πληροφορίες σε καθαρό κείμενο σε αυτόν τον φάκελο.
Σπασμένο TLS
Αποδοχή Όλων των Πιστοποιητικών
Για κάποιο λόγο, μερικές φορές οι προγραμματιστές αποδέχονται όλα τα πιστοποιητικά ακόμα και αν, για παράδειγμα, το hostname δεν ταιριάζει με γραμμές κώδικα όπως η παρακάτω:
A good way to test this is to try to capture the traffic using some proxy like Burp without authorising Burp CA inside the device. Also, you can generate with Burp a certificate for a different hostname and use it.
Broken Cryptography
Poor Key Management Processes
Ορισμένοι προγραμματιστές αποθηκεύουν ευαίσθητα δεδομένα στην τοπική αποθήκευση και τα κρυπτογραφούν με ένα κλειδί σκληρά κωδικοποιημένο/προβλέψιμο στον κώδικα. Αυτό δεν θα έπρεπε να γίνεται καθώς κάποια αναστροφή θα μπορούσε να επιτρέψει στους επιτιθέμενους να εξάγουν τις εμπιστευτικές πληροφορίες.
Use of Insecure and/or Deprecated Algorithms
Οι προγραμματιστές δεν θα πρέπει να χρησιμοποιούν παρωχημένους αλγόριθμους για να εκτελούν ελέγχους εξουσιοδότησης, να αποθηκεύουν ή να στέλνουν δεδομένα. Ορισμένοι από αυτούς τους αλγόριθμους είναι: RC4, MD4, MD5, SHA1... Αν χρησιμοποιούνται hashes για την αποθήκευση κωδικών πρόσβασης, θα πρέπει να χρησιμοποιούνται hashes ανθεκτικά σε brute-force με salt.
Other checks
Είναι προτιμότερο να παραποιείτε το APK για να δυσκολέψετε τη δουλειά του αναστροφέα για τους επιτιθέμενους.
Αν η εφαρμογή είναι ευαίσθητη (όπως οι τραπεζικές εφαρμογές), θα πρέπει να εκτελεί τους δικούς της ελέγχους για να δει αν το κινητό είναι ριζωμένο και να ενεργεί αναλόγως.
Αν η εφαρμογή είναι ευαίσθητη (όπως οι τραπεζικές εφαρμογές), θα πρέπει να ελέγχει αν χρησιμοποιείται emulator.
Αν η εφαρμογή είναι ευαίσθητη (όπως οι τραπεζικές εφαρμογές), θα πρέπει να ελέγχει την ακεραιότητά της πριν την εκτέλεση για να ελέγξει αν έχει τροποποιηθεί.
Χρησιμοποιήστε APKiD για να ελέγξετε ποιος compiler/packer/obfuscator χρησιμοποιήθηκε για την κατασκευή του APK
React Native Application
Read the following page to learn how to easily access javascript code of React applications:
React Native ApplicationXamarin Applications
Read the following page to learn how to easily access C# code of a xamarin applications:
Xamarin AppsSuperpacked Applications
According to this blog post superpacked is a Meta algorithm that compress the content of an application into a single file. The blog talks about the possibility of creating an app that decompress these kind of apps... and a faster way which involves to execute the application and gather the decompressed files from the filesystem.
Automated Static Code Analysis
The tool mariana-trench is capable of finding vulnerabilities by scanning the code of the application. This tool contains a series of known sources (that indicates to the tool the places where the input is controlled by the user), sinks (which indicates to the tool dangerous places where malicious user input could cause damages) and rules. These rules indicates the combination of sources-sinks that indicates a vulnerability.
With this knowledge, mariana-trench will review the code and find possible vulnerabilities on it.
Secrets leaked
An application may contain secrets (API keys, passwords, hidden urls, subdomains...) inside of it that you might be able to discover. You could us a tool such as https://github.com/dwisiswant0/apkleaks
Bypass Biometric Authentication
Bypass Biometric Authentication (Android)Other interesting functions
Code execution:
Runtime.exec(), ProcessBuilder(), native code:system()
Send SMSs:
sendTextMessage, sendMultipartTestMessage
Native functions declared as
native
:public native, System.loadLibrary, System.load
Other tricks
content:// protocolJoin HackenProof Discord server to communicate with experienced hackers and bug bounty hunters!
Hacking Insights Engage with content that delves into the thrill and challenges of hacking
Real-Time Hack News Keep up-to-date with fast-paced hacking world through real-time news and insights
Latest Announcements Stay informed with the newest bug bounties launching and crucial platform updates
Join us on Discord and start collaborating with top hackers today!
Dynamic Analysis
First of all, you need an environment where you can install the application and all the environment (Burp CA cert, Drozer and Frida mainly). Therefore, a rooted device (emulated or not) is extremely recommended.
Online Dynamic analysis
You can create a free account in: https://appetize.io/. This platform allows you to upload and execute APKs, so it is useful to see how an apk is behaving.
You can even see the logs of your application in the web and connect through adb.
Thanks to the ADB connection you can use Drozer and Frida inside the emulators.
Local Dynamic Analysis
Using an emulator
Android Studio (You can create x86 and arm devices, and according to this latest x86 versions support ARM libraries without needing an slow arm emulator).
Learn to set it up in this page:
Genymotion (Free version: Personal Edition, you need to create an account. It's recommend to download the version WITH VirtualBox to avoid potential errors.)
Nox (Free, but it doesn't support Frida or Drozer).
When creating a new emulator on any platform remember that the bigger the screen is, the slower the emulator will run. So select small screens if possible.
To install google services (like AppStore) in Genymotion you need to click on the red marked button of the following image:
Also, notice that in the configuration of the Android VM in Genymotion you can select Bridge Network mode (this will be useful if you will be connecting to the Android VM from a different VM with the tools).
Use a physical device
You need to activate the debugging options and it will be cool if you can root it:
Settings.
(FromAndroid 8.0) Select System.
Select About phone.
Press Build number 7 times.
Go back and you will find the Developer options.
Once you have installed the application, the first thing you should do is to try it and investigate what does it do, how does it work and get comfortable with it. I will suggest to perform this initial dynamic analysis using MobSF dynamic analysis + pidcat, so we will be able to learn how the application works while MobSF captures a lot of interesting data you can review later on.
Unintended Data Leakage
Logging
Οι προγραμματιστές θα πρέπει να είναι προσεκτικοί με την έκθεση πληροφοριών αποσφαλμάτωσης δημόσια, καθώς μπορεί να οδηγήσει σε διαρροές ευαίσθητων δεδομένων. Τα εργαλεία pidcat και adb logcat
συνιστώνται για την παρακολούθηση των καταγραφών εφαρμογών για την αναγνώριση και προστασία ευαίσθητων πληροφοριών. Pidcat προτιμάται για την ευχρηστία και την αναγνωσιμότητά του.
Note that from later newer than Android 4.0, applications are only able to access their own logs. So applications cannot access other apps logs. Anyway, it's still recommended to not log sensitive information.
Copy/Paste Buffer Caching
Το πλαίσιο clipboard-based του Android επιτρέπει τη λειτουργία αντιγραφής-επικόλλησης σε εφαρμογές, ωστόσο θέτει σε κίνδυνο καθώς άλλες εφαρμογές μπορούν να πρόσβαση στο clipboard, εκθέτοντας ενδεχομένως ευαίσθητα δεδομένα. Είναι κρίσιμο να απενεργοποιείτε τις λειτουργίες αντιγραφής/επικόλλησης για ευαίσθητες ενότητες μιας εφαρμογής, όπως λεπτομέρειες πιστωτικών καρτών, για να αποτραπούν οι διαρροές δεδομένων.
Crash Logs
Αν μια εφαρμογή καταρρεύσει και αποθηκεύσει καταγραφές, αυτές οι καταγραφές μπορούν να βοηθήσουν τους επιτιθέμενους, ιδιαίτερα όταν η εφαρμογή δεν μπορεί να αναστραφεί. Για να μετριαστεί αυτός ο κίνδυνος, αποφύγετε την καταγραφή σε περιπτώσεις κατάρρευσης, και αν οι καταγραφές πρέπει να μεταδοθούν μέσω του δικτύου, βεβαιωθείτε ότι αποστέλλονται μέσω καναλιού SSL για ασφάλεια.
As pentester, try to take a look to these logs.
Analytics Data Sent To 3rd Parties
Οι εφαρμογές συχνά ενσωματώνουν υπηρεσίες όπως το Google Adsense, οι οποίες μπορεί να διαρρεύσουν ευαίσθητα δεδομένα λόγω ακατάλληλης υλοποίησης από τους προγραμματιστές. Για να εντοπίσετε πιθανές διαρροές δεδομένων, είναι σκόπιμο να παρεμβάλετε την κίνηση της εφαρμογής και να ελέγξετε αν αποστέλλεται οποιαδήποτε ευαίσθητη πληροφορία σε τρίτες υπηρεσίες.
SQLite DBs
Οι περισσότερες εφαρμογές θα χρησιμοποιούν εσωτερικές βάσεις δεδομένων SQLite για να αποθηκεύσουν πληροφορίες. Κατά τη διάρκεια της pentest, ρίξτε μια ματιά στις βάσεις δεδομένων που δημιουργούνται, τα ονόματα των πινάκων και στηλών και όλα τα δεδομένα που αποθηκεύονται γιατί θα μπορούσατε να βρείτε ευαίσθητες πληροφορίες (που θα ήταν μια ευπάθεια).
Οι βάσεις δεδομένων θα πρέπει να βρίσκονται στο /data/data/the.package.name/databases
όπως /data/data/com.mwr.example.sieve/databases
Αν η βάση δεδομένων αποθηκεύει εμπιστευτικές πληροφορίες και είναι κρυπτογραφημένη αλλά μπορείτε να βρείτε τον κωδικό πρόσβασης μέσα στην εφαρμογή, είναι ακόμα μια ευπάθεια.
Αριθμήστε τους πίνακες χρησιμοποιώντας .tables
και αριθμήστε τις στήλες των πινάκων κάνοντας .schema <table_name>
Drozer (Exploit Activities, Content Providers and Services)
From Drozer Docs: Drozer allows you to assume the role of an Android app and interact with other apps. It can do anything that an installed application can do, such as make use of Android’s Inter-Process Communication (IPC) mechanism and interact with the underlying operating system. . Drozer is s useful tool to exploit exported activities, exported services and Content Providers as you will learn in the following sections.
Exploiting exported Activities
Read this if you want to refresh what is an Android Activity.
Also remember that the code of an activity starts in the onCreate
method.
Authorisation bypass
When an Activity is exported you can invoke its screen from an external app. Therefore, if an activity with sensitive information is exported you could bypass the authentication mechanisms to access it.
Learn how to exploit exported activities with Drozer.
You can also start an exported activity from adb:
PackageName is com.example.demo
Exported ActivityName is com.example.test.MainActivity
ΣΗΜΕΙΩΣΗ: Το MobSF θα ανιχνεύσει ως κακόβουλη τη χρήση του singleTask/singleInstance ως android:launchMode
σε μια δραστηριότητα, αλλά λόγω αυτού, προφανώς αυτό είναι επικίνδυνο μόνο σε παλιές εκδόσεις (API εκδόσεις < 21).
Σημειώστε ότι μια παράκαμψη εξουσιοδότησης δεν είναι πάντα μια ευπάθεια, θα εξαρτηθεί από το πώς λειτουργεί η παράκαμψη και ποιες πληροφορίες εκτίθενται.
Διαρροή ευαίσθητων πληροφοριών
Οι δραστηριότητες μπορούν επίσης να επιστρέφουν αποτελέσματα. Αν καταφέρετε να βρείτε μια εξαγόμενη και μη προστατευμένη δραστηριότητα που καλεί τη μέθοδο setResult
και επιστρέφει ευαίσθητες πληροφορίες, υπάρχει διαρροή ευαίσθητων πληροφοριών.
Tapjacking
Αν το tapjacking δεν προληφθεί, θα μπορούσατε να εκμεταλλευτείτε τη εξαγόμενη δραστηριότητα για να κάνετε τον χρήστη να εκτελεί απροσδόκητες ενέργειες. Για περισσότερες πληροφορίες σχετικά με τι είναι το Tapjacking ακολουθήστε τον σύνδεσμο.
Εκμετάλλευση Παρόχων Περιεχομένου - Πρόσβαση και χειρισμός ευαίσθητων πληροφοριών
Διαβάστε αυτό αν θέλετε να ανανεώσετε τι είναι ένας Πάροχος Περιεχομένου. Οι πάροχοι περιεχομένου χρησιμοποιούνται βασικά για να μοιράζονται δεδομένα. Αν μια εφαρμογή έχει διαθέσιμους παρόχους περιεχομένου, μπορεί να είστε σε θέση να εξάγετε ευαίσθητα δεδομένα από αυτούς. Είναι επίσης ενδιαφέρον να δοκιμάσετε πιθανές SQL injections και Path Traversals καθώς θα μπορούσαν να είναι ευάλωτοι.
Μάθετε πώς να εκμεταλλευτείτε τους Παρόχους Περιεχομένου με το Drozer.
Εκμετάλλευση Υπηρεσιών
Διαβάστε αυτό αν θέλετε να ανανεώσετε τι είναι μια Υπηρεσία.
Θυμηθείτε ότι οι ενέργειες μιας Υπηρεσίας ξεκινούν στη μέθοδο onStartCommand
.
Μια υπηρεσία είναι βασικά κάτι που μπορεί να λάβει δεδομένα, να τα επεξεργαστεί και να επιστρέψει (ή όχι) μια απάντηση. Έτσι, αν μια εφαρμογή εξάγει κάποιες υπηρεσίες, θα πρέπει να ελέγξετε τον κώδικα για να κατανοήσετε τι κάνει και να δοκιμάσετε το δυναμικά για να εξάγετε εμπιστευτικές πληροφορίες, παρακάμπτοντας μέτρα αυθεντικοποίησης... Μάθετε πώς να εκμεταλλευτείτε τις Υπηρεσίες με το Drozer.
Εκμετάλλευση Δέκτες Εκπομπών
Διαβάστε αυτό αν θέλετε να ανανεώσετε τι είναι ένας Δέκτης Εκπομπών.
Θυμηθείτε ότι οι ενέργειες ενός Δέκτη Εκπομπών ξεκινούν στη μέθοδο onReceive
.
Ένας δέκτης εκπομπών θα περιμένει για έναν τύπο μηνύματος. Ανάλογα με το πώς ο δέκτης χειρίζεται το μήνυμα, θα μπορούσε να είναι ευάλωτος. Μάθετε πώς να εκμεταλλευτείτε τους Δέκτες Εκπομπών με το Drozer.
Εκμετάλλευση Σχημάτων / Deep links
Μπορείτε να αναζητήσετε deep links χειροκίνητα, χρησιμοποιώντας εργαλεία όπως το MobSF ή σενάρια όπως αυτό. Μπορείτε να ανοίξετε ένα δηλωμένο σχήμα χρησιμοποιώντας adb ή έναν περιηγητή:
Σημειώστε ότι μπορείτε να παραλείψετε το όνομα πακέτου και το κινητό θα καλέσει αυτόματα την εφαρμογή που θα πρέπει να ανοίξει αυτόν τον σύνδεσμο.
Κώδικας που εκτελείται
Για να βρείτε τον κώδικα που θα εκτελείται στην εφαρμογή, πηγαίνετε στη δραστηριότητα που καλείται από το deeplink και αναζητήστε τη συνάρτηση onNewIntent
.
Ευαίσθητες πληροφορίες
Κάθε φορά που βρίσκετε ένα deep link ελέγξτε ότι δεν λαμβάνει ευαίσθητα δεδομένα (όπως κωδικούς πρόσβασης) μέσω παραμέτρων URL, γιατί οποιαδήποτε άλλη εφαρμογή θα μπορούσε να προσποιηθεί το deep link και να κλέψει αυτά τα δεδομένα!
Παράμετροι στη διαδρομή
Πρέπει επίσης να ελέγξετε αν κάποιο deep link χρησιμοποιεί μια παράμετρο μέσα στη διαδρομή του URL όπως: https://api.example.com/v1/users/{username}
, σε αυτή την περίπτωση μπορείτε να αναγκάσετε μια διαδρομή traversal αποκτώντας πρόσβαση σε κάτι όπως: example://app/users?username=../../unwanted-endpoint%3fparam=value
.
Σημειώστε ότι αν βρείτε τα σωστά endpoints μέσα στην εφαρμογή μπορεί να είστε σε θέση να προκαλέσετε μια Open Redirect (αν μέρος της διαδρομής χρησιμοποιείται ως όνομα τομέα), κατάληψη λογαριασμού (αν μπορείτε να τροποποιήσετε λεπτομέρειες χρηστών χωρίς CSRF token και το ευάλωτο endpoint χρησιμοποίησε τη σωστή μέθοδο) και οποιαδήποτε άλλη ευπάθεια. Περισσότερες πληροφορίες σχετικά με αυτό εδώ.
Περισσότερα παραδείγματα
Ένα ενδιαφέρον bug bounty report σχετικά με συνδέσμους (/.well-known/assetlinks.json).
Αποτυχίες Επιθεώρησης και Επαλήθευσης Επίπεδου Μεταφοράς
Οι πιστοποιήσεις δεν ελέγχονται πάντα σωστά από τις εφαρμογές Android. Είναι συνηθισμένο αυτές οι εφαρμογές να παραβλέπουν προειδοποιήσεις και να αποδέχονται αυτο-υπογεγραμμένες πιστοποιήσεις ή, σε ορισμένες περιπτώσεις, να επιστρέφουν στη χρήση HTTP συνδέσεων.
Οι διαπραγματεύσεις κατά τη διάρκεια του SSL/TLS handshake είναι μερικές φορές αδύναμες, χρησιμοποιώντας ανασφαλείς κρυπτογραφικές σουίτες. Αυτή η ευπάθεια καθιστά τη σύνδεση ευάλωτη σε επιθέσεις man-in-the-middle (MITM), επιτρέποντας στους επιτιθέμενους να αποκρυπτογραφήσουν τα δεδομένα.
Διαρροή ιδιωτικών πληροφοριών είναι ένας κίνδυνος όταν οι εφαρμογές πιστοποιούν χρησιμοποιώντας ασφαλείς διαύλους αλλά στη συνέχεια επικοινωνούν μέσω μη ασφαλών διαύλων για άλλες συναλλαγές. Αυτή η προσέγγιση αποτυγχάνει να προστατεύσει ευαίσθητα δεδομένα, όπως cookies συνεδρίας ή λεπτομέρειες χρηστών, από την παρεμβολή κακόβουλων οντοτήτων.
Επαλήθευση Πιστοποιητικού
Θα επικεντρωθούμε στην επαλήθευση πιστοποιητικού. Η ακεραιότητα του πιστοποιητικού του διακομιστή πρέπει να επαληθεύεται για να ενισχυθεί η ασφάλεια. Αυτό είναι κρίσιμο γιατί οι ανασφαλείς ρυθμίσεις TLS και η μετάδοση ευαίσθητων δεδομένων μέσω μη κρυπτογραφημένων καναλιών μπορεί να θέσουν σημαντικούς κινδύνους. Για λεπτομερείς οδηγίες σχετικά με την επαλήθευση πιστοποιητικών διακομιστή και την αντιμετώπιση ευπαθειών, αυτή η πηγή παρέχει εκτενή καθοδήγηση.
SSL Pinning
Το SSL Pinning είναι ένα μέτρο ασφαλείας όπου η εφαρμογή επαληθεύει το πιστοποιητικό του διακομιστή με μια γνωστή αντίγραφο που αποθηκεύεται μέσα στην ίδια την εφαρμογή. Αυτή η μέθοδος είναι απαραίτητη για την αποτροπή επιθέσεων MITM. Συνιστάται έντονα η εφαρμογή SSL Pinning για εφαρμογές που χειρίζονται ευαίσθητες πληροφορίες.
Επιθεώρηση Κίνησης
Για να επιθεωρήσετε την κίνηση HTTP, είναι απαραίτητο να εγκαταστήσετε το πιστοποιητικό του εργαλείου proxy (π.χ., Burp). Χωρίς την εγκατάσταση αυτού του πιστοποιητικού, η κρυπτογραφημένη κίνηση μπορεί να μην είναι ορατή μέσω του proxy. Για οδηγίες σχετικά με την εγκατάσταση ενός προσαρμοσμένου πιστοποιητικού CA, κάντε κλικ εδώ.
Οι εφαρμογές που στοχεύουν API Level 24 και άνω απαιτούν τροποποιήσεις στη Ρύθμιση Ασφαλείας Δικτύου για να αποδεχτούν το πιστοποιητικό CA του proxy. Αυτό το βήμα είναι κρίσιμο για την επιθεώρηση κρυπτογραφημένης κίνησης. Για οδηγίες σχετικά με την τροποποίηση της Ρύθμισης Ασφαλείας Δικτύου, ανατρέξτε σε αυτό το tutorial.
Παράκαμψη SSL Pinning
Όταν έχει εφαρμοστεί το SSL Pinning, η παράκαμψή του γίνεται απαραίτητη για την επιθεώρηση της κίνησης HTTPS. Διατίθενται διάφορες μέθοδοι για αυτόν τον σκοπό:
Αυτόματα τροποποιήστε το apk για να παράκαμψετε το SSLPinning με apk-mitm. Το καλύτερο πλεονέκτημα αυτής της επιλογής είναι ότι δεν θα χρειαστείτε root για να παρακάμψετε το SSL Pinning, αλλά θα χρειαστεί να διαγράψετε την εφαρμογή και να εγκαταστήσετε τη νέα, και αυτό δεν θα λειτουργήσει πάντα.
Μπορείτε να χρησιμοποιήσετε Frida (που συζητείται παρακάτω) για να παρακάμψετε αυτή την προστασία. Εδώ έχετε έναν οδηγό για τη χρήση Burp+Frida+Genymotion: https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/
Μπορείτε επίσης να προσπαθήσετε να παρακάμψετε αυτόματα το SSL Pinning χρησιμοποιώντας objection:
objection --gadget com.package.app explore --startup-command "android sslpinning disable"
Μπορείτε επίσης να προσπαθήσετε να παρακάμψετε αυτόματα το SSL Pinning χρησιμοποιώντας MobSF dynamic analysis (εξηγείται παρακάτω)
Αν νομίζετε ότι υπάρχει κάποια κίνηση που δεν καταγράφετε, μπορείτε να προσπαθήσετε να προωθήσετε την κίνηση στο burp χρησιμοποιώντας iptables. Διαβάστε αυτό το blog: https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62
Αναζητώντας Κοινές Ευπάθειες Ιστού
Είναι σημαντικό να αναζητήσετε επίσης κοινές ευπάθειες ιστού μέσα στην εφαρμογή. Λεπτομερείς πληροφορίες σχετικά με την αναγνώριση και την αντιμετώπιση αυτών των ευπαθειών είναι πέρα από το πεδίο αυτής της σύνοψης αλλά καλύπτονται εκτενώς αλλού.
Frida
Frida είναι ένα εργαλείο δυναμικής οργάνωσης για προγραμματιστές, αναλυτές αντίστροφης μηχανικής και ερευνητές ασφαλείας. Μπορείτε να αποκτήσετε πρόσβαση σε εκτελούμενες εφαρμογές και να συνδέσετε μεθόδους σε πραγματικό χρόνο για να αλλάξετε τη συμπεριφορά, να αλλάξετε τιμές, να εξάγετε τιμές, να εκτελέσετε διαφορετικό κώδικα... Αν θέλετε να κάνετε pentest σε εφαρμογές Android πρέπει να ξέρετε πώς να χρησιμοποιείτε το Frida.
Μάθετε πώς να χρησιμοποιείτε το Frida: Frida tutorial
Μερικά "GUI" για ενέργειες με το Frida: https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security
Ojection είναι εξαιρετικό για την αυτοματοποίηση της χρήσης του Frida: https://github.com/sensepost/objection , https://github.com/dpnishant/appmon
Μπορείτε να βρείτε μερικά καταπληκτικά σενάρια Frida εδώ: https://codeshare.frida.re/
Προσπαθήστε να παρακάμψετε μηχανισμούς anti-debugging / anti-frida φορτώνοντας το Frida όπως υποδεικνύεται στο https://erfur.github.io/blog/dev/code-injection-without-ptrace (εργαλείο linjector)
Dump Memory - Fridump
Ελέγξτε αν η εφαρμογή αποθηκεύει ευαίσθητες πληροφορίες μέσα στη μνήμη που δεν θα έπρεπε να αποθηκεύει, όπως κωδικούς πρόσβασης ή μνημονικά.
Χρησιμοποιώντας Fridump3 μπορείτε να κάνετε dump τη μνήμη της εφαρμογής με:
Αυτό θα εκφορτώσει τη μνήμη στον φάκελο ./dump, και εκεί μπορείτε να κάνετε grep με κάτι όπως:
Ευαίσθητα δεδομένα στο Keystore
Στο Android, το Keystore είναι το καλύτερο μέρος για να αποθηκεύσετε ευαίσθητα δεδομένα, ωστόσο, με αρκετά δικαιώματα είναι ακόμα δυνατό να αποκτηθεί πρόσβαση σε αυτό. Καθώς οι εφαρμογές τείνουν να αποθηκεύουν εδώ ευαίσθητα δεδομένα σε καθαρό κείμενο, οι pentests θα πρέπει να ελέγχουν γι' αυτό ως χρήστης root ή κάποιος με φυσική πρόσβαση στη συσκευή θα μπορούσε να είναι σε θέση να κλέψει αυτά τα δεδομένα.
Ακόμα και αν μια εφαρμογή αποθηκεύει δεδομένα στο keystore, τα δεδομένα θα πρέπει να είναι κρυπτογραφημένα.
Για να αποκτήσετε πρόσβαση στα δεδομένα μέσα στο keystore, μπορείτε να χρησιμοποιήσετε αυτό το σενάριο Frida: https://github.com/WithSecureLabs/android-keystore-audit/blob/master/frida-scripts/tracer-cipher.js
Απαγόρευση Δακτυλικών Αποτυπωμάτων/Βιομετρικών
Χρησιμοποιώντας το παρακάτω σενάριο Frida, θα μπορούσε να είναι δυνατό να παρακαμφθεί η αυθεντικοποίηση δακτυλικών αποτυπωμάτων που ενδέχεται να εκτελούν οι εφαρμογές Android προκειμένου να προστατεύσουν ορισμένες ευαίσθητες περιοχές:
Εικόνες Φόντου
Όταν βάζετε μια εφαρμογή στο παρασκήνιο, το Android αποθηκεύει μια στιγμιότυπο της εφαρμογής έτσι ώστε όταν ανακτηθεί στο προσκήνιο να αρχίσει να φορτώνει την εικόνα πριν από την εφαρμογή, ώστε να φαίνεται ότι η εφαρμογή φορτώθηκε πιο γρήγορα.
Ωστόσο, αν αυτό το στιγμιότυπο περιέχει ευαίσθητες πληροφορίες, κάποιος με πρόσβαση στο στιγμιότυπο μπορεί να κλέψει αυτές τις πληροφορίες (σημειώστε ότι χρειάζεστε root για να έχετε πρόσβαση σε αυτό).
Τα στιγμιότυπα συνήθως αποθηκεύονται γύρω από: /data/system_ce/0/snapshots
Το Android παρέχει έναν τρόπο να αποτρέψει τη λήψη στιγμιότυπων οθόνης ρυθμίζοντας την παράμετρο διάταξης FLAG_SECURE. Χρησιμοποιώντας αυτή τη σημαία, το περιεχόμενο του παραθύρου θεωρείται ασφαλές, αποτρέποντας την εμφάνιση σε στιγμιότυπα οθόνης ή την προβολή σε μη ασφαλείς οθόνες.
Αναλυτής Εφαρμογών Android
Αυτό το εργαλείο μπορεί να σας βοηθήσει να διαχειριστείτε διάφορα εργαλεία κατά τη διάρκεια της δυναμικής ανάλυσης: https://github.com/NotSoSecure/android_application_analyzer
Εισαγωγή Intent
Οι προγραμματιστές συχνά δημιουργούν proxy components όπως activities, services και broadcast receivers που χειρίζονται αυτά τα Intents και τα περνούν σε μεθόδους όπως startActivity(...)
ή sendBroadcast(...)
, οι οποίες μπορεί να είναι επικίνδυνες.
Ο κίνδυνος έγκειται στην επιτρεπτικότητα στους επιτιθέμενους να ενεργοποιούν μη εξαγόμενα components εφαρμογών ή να έχουν πρόσβαση σε ευαίσθητους content providers παραπλανώντας αυτά τα Intents. Ένα αξιοσημείωτο παράδειγμα είναι το component WebView
που μετατρέπει URLs σε αντικείμενα Intent
μέσω Intent.parseUri(...)
και στη συνέχεια τα εκτελεί, ενδεχομένως οδηγώντας σε κακόβουλες εισαγωγές Intent.
Βασικά Σημεία
Εισαγωγή Intent είναι παρόμοια με το πρόβλημα Open Redirect του ιστού.
Οι εκμεταλλεύσεις περιλαμβάνουν την παράδοση αντικειμένων
Intent
ως extras, τα οποία μπορούν να ανακατευθυνθούν για να εκτελέσουν μη ασφαλείς λειτουργίες.Μπορεί να εκθέσει μη εξαγόμενα components και content providers στους επιτιθέμενους.
Η μετατροπή URL σε
Intent
τουWebView
μπορεί να διευκολύνει ακούσιες ενέργειες.
Εισαγωγές από την πλευρά του πελάτη Android και άλλα
Πιθανώς γνωρίζετε για αυτούς τους τύπους ευπαθειών από τον Ιστό. Πρέπει να είστε ιδιαίτερα προσεκτικοί με αυτές τις ευπάθειες σε μια εφαρμογή Android:
SQL Injection: Όταν ασχολείστε με δυναμικά queries ή Content-Providers, βεβαιωθείτε ότι χρησιμοποιείτε παραμετροποιημένα queries.
JavaScript Injection (XSS): Ελέγξτε ότι η υποστήριξη JavaScript και Plugin είναι απενεργοποιημένη για οποιαδήποτε WebViews (απενεργοποιημένη από προεπιλογή). Περισσότερες πληροφορίες εδώ.
Τοπική Συμπερίληψη Αρχείων: Οι WebViews θα πρέπει να έχουν απενεργοποιημένη την πρόσβαση στο σύστημα αρχείων (ενεργοποιημένη από προεπιλογή) -
(webview.getSettings().setAllowFileAccess(false);)
. Περισσότερες πληροφορίες εδώ.Διαρκή cookies: Σε πολλές περιπτώσεις, όταν η εφαρμογή android ολοκληρώνει τη συνεδρία, το cookie δεν ανακαλείται ή μπορεί ακόμη και να αποθηκευτεί στον δίσκο.
Εγγραφείτε στον HackenProof Discord server για να επικοινωνήσετε με έμπειρους hackers και κυνηγούς bug bounty!
Ενημερώσεις για το Hacking Ασχοληθείτε με περιεχόμενο που εμβαθύνει στη συγκίνηση και τις προκλήσεις του hacking
Νέα Hack σε Πραγματικό Χρόνο Μείνετε ενημερωμένοι με τον ταχύτατο κόσμο του hacking μέσω ειδήσεων και πληροφοριών σε πραγματικό χρόνο
Τελευταίες Ανακοινώσεις Μείνετε ενημερωμένοι με τις πιο πρόσφατες bug bounties που ξεκινούν και κρίσιμες ενημερώσεις πλατφορμών
Ελάτε μαζί μας στο Discord και ξεκινήστε να συνεργάζεστε με κορυφαίους hackers σήμερα!
Αυτόματη Ανάλυση
Στατική ανάλυση
Αξιολόγηση ευπαθειών της εφαρμογής χρησιμοποιώντας ένα ωραίο web-based frontend. Μπορείτε επίσης να εκτελέσετε δυναμική ανάλυση (αλλά πρέπει να προετοιμάσετε το περιβάλλον).
Notice that MobSF can analyse Android(apk), IOS(ipa) and Windows(apx) applications (Οι εφαρμογές Windows πρέπει να αναλυθούν από ένα MobSF εγκατεστημένο σε έναν υπολογιστή Windows). Also, if you create a ZIP file with the source code if an Android or an IOS app (go to the root folder of the application, select everything and create a ZIPfile), it will be able to analyse it also.
MobSF also allows you to diff/Compare analysis and to integrate VirusTotal (θα χρειαστεί να ρυθμίσετε το API key σας στο MobSF/settings.py και να το ενεργοποιήσετε: VT_ENABLED = TRUE
VT_API_KEY = <Your API key>
VT_UPLOAD = TRUE
). You can also set VT_UPLOAD
to False
, then the hash will be upload instead of the file.
Assisted Dynamic analysis with MobSF
MobSF can also be very helpful for dynamic analysis in Android, but in that case you will need to install MobSF and genymotion in your host (a VM or Docker won't work). Σημείωση: Πρέπει να ξεκινήσετε πρώτα μια VM στο genymotion και μετά το MobSF. The MobSF dynamic analyser can:
Dump application data (URLs, logs, clipboard, screenshots made by you, screenshots made by "Exported Activity Tester", emails, SQLite databases, XML files, and other created files). All of this is done automatically except for the screenshots, you need to press when you want a screenshot or you need to press "Exported Activity Tester" to obtain screenshots of all the exported activities.
Capture HTTPS traffic
Use Frida to obtain runtime information
From android versions > 5, it will automatically start Frida and will set global proxy settings to capture traffic. It will only capture traffic from the tested application.
Frida
By default, it will also use some Frida Scripts to bypass SSL pinning, root detection and debugger detection and to monitor interesting APIs. MobSF can also invoke exported activities, grab screenshots of them and save them for the report.
To start the dynamic testing press the green bottom: "Start Instrumentation". Press the "Frida Live Logs" to see the logs generated by the Frida scripts and "Live API Monitor" to see all the invocation to hooked methods, arguments passed and returned values (this will appear after pressing "Start Instrumentation").
MobSF also allows you to load your own Frida scripts (to send the results of your Friday scripts to MobSF use the function send()
). It also has several pre-written scripts you can load (you can add more in MobSF/DynamicAnalyzer/tools/frida_scripts/others/
), just select them, press "Load" and press "Start Instrumentation" (you will be able to see the logs of that scripts inside "Frida Live Logs").
Moreover, you have some Auxiliary Frida functionalities:
Enumerate Loaded Classes: It will print all the loaded classes
Capture Strings: It will print all the capture strings while using the application (super noisy)
Capture String Comparisons: Could be very useful. It will show the 2 strings being compared and if the result was True or False.
Enumerate Class Methods: Put the class name (like "java.io.File") and it will print all the methods of the class.
Search Class Pattern: Search classes by pattern
Trace Class Methods: Trace a whole class (see inputs and outputs of all methods of th class). Remember that by default MobSF traces several interesting Android Api methods.
Once you have selected the auxiliary module you want to use you need to press "Start Intrumentation" and you will see all the outputs in "Frida Live Logs".
Shell
Mobsf also brings you a shell with some adb commands, MobSF commands, and common shell commands at the bottom of the dynamic analysis page. Some interesting commands:
HTTP εργαλεία
Όταν η κίνηση http καταγράφεται, μπορείτε να δείτε μια άσχημη προβολή της καταγεγραμμένης κίνησης στο "HTTP(S) Traffic" κάτω ή μια πιο ωραία προβολή στο "Start HTTPTools" πράσινο κουμπί. Από τη δεύτερη επιλογή, μπορείτε να στείλετε τα καταγεγραμμένα αιτήματα σε proxy όπως το Burp ή το Owasp ZAP. Για να το κάνετε αυτό, ενεργοποιήστε το Burp --> απενεργοποιήστε την Παρεμβολή --> στο MobSB HTTPTools επιλέξτε το αίτημα --> πατήστε "Send to Fuzzer" --> επιλέξτε τη διεύθυνση proxy (http://127.0.0.1:8080\).
Αφού ολοκληρώσετε την δυναμική ανάλυση με το MobSF, μπορείτε να πατήσετε το "Start Web API Fuzzer" για να fuzz http αιτήματα και να αναζητήσετε ευπάθειες.
Μετά την εκτέλεση μιας δυναμικής ανάλυσης με το MobSF, οι ρυθμίσεις proxy μπορεί να είναι λανθασμένες και δεν θα μπορείτε να τις διορθώσετε από το GUI. Μπορείτε να διορθώσετε τις ρυθμίσεις proxy κάνοντας:
Assisted Dynamic Analysis with Inspeckage
Μπορείτε να αποκτήσετε το εργαλείο από Inspeckage. Αυτό το εργαλείο θα χρησιμοποιήσει μερικά Hooks για να σας ενημερώσει τι συμβαίνει στην εφαρμογή ενώ εκτελείτε μια dynamic analysis.
Αυτό είναι ένα υπέροχο εργαλείο για να εκτελέσετε στατική ανάλυση με GUI
Αυτό το εργαλείο έχει σχεδιαστεί για να αναζητά αρκετές σχετικές με την ασφάλεια ευπάθειες εφαρμογών Android, είτε στον κώδικα πηγής είτε σε πακεταρισμένα APKs. Το εργαλείο είναι επίσης ικανό να δημιουργεί ένα "Proof-of-Concept" deployable APK και ADB commands, για να εκμεταλλευτεί ορισμένες από τις ευπάθειες που βρέθηκαν (Εκτεθειμένες δραστηριότητες, intents, tapjacking...). Όπως και με το Drozer, δεν υπάρχει ανάγκη να κάνετε root τη συσκευή δοκιμής.
Εμφανίζει όλα τα εξαγόμενα αρχεία για εύκολη αναφορά
Αυτόματα αποσυμπιέζει αρχεία APK σε μορφή Java και Smali
Αναλύει το AndroidManifest.xml για κοινές ευπάθειες και συμπεριφορές
Στατική ανάλυση πηγαίου κώδικα για κοινές ευπάθειες και συμπεριφορές
Πληροφορίες συσκευής
και άλλα
SUPER είναι μια εφαρμογή γραμμής εντολών που μπορεί να χρησιμοποιηθεί σε Windows, MacOS X και Linux, που αναλύει .apk αρχεία αναζητώντας ευπάθειες. Το κάνει αυτό αποσυμπιέζοντας τα APK και εφαρμόζοντας μια σειρά κανόνων για να ανιχνεύσει αυτές τις ευπάθειες.
Όλοι οι κανόνες είναι κεντραρισμένοι σε ένα αρχείο rules.json
, και κάθε εταιρεία ή δοκιμαστής θα μπορούσε να δημιουργήσει τους δικούς της κανόνες για να αναλύσει ό,τι χρειάζεται.
Κατεβάστε τα τελευταία δυαδικά αρχεία από τη σελίδα λήψης
Το StaCoAn είναι ένα crossplatform εργαλείο που βοηθά προγραμματιστές, κυνηγούς bugbounty και ηθικούς χάκερ να εκτελούν static code analysis σε κινητές εφαρμογές.
Η έννοια είναι ότι σύρετε και αποθέτετε το αρχείο της κινητής σας εφαρμογής (ένα αρχείο .apk ή .ipa) στην εφαρμογή StaCoAn και θα δημιουργήσει μια οπτική και φορητή αναφορά για εσάς. Μπορείτε να προσαρμόσετε τις ρυθμίσεις και τις λίστες λέξεων για να αποκτήσετε μια εξατομικευμένη εμπειρία.
Κατεβάστε την τελευταία έκδοση:
Το AndroBugs Framework είναι ένα σύστημα ανάλυσης ευπαθειών Android που βοηθά τους προγραμματιστές ή τους χάκερ να εντοπίσουν πιθανές ευπάθειες ασφαλείας σε εφαρμογές Android. Windows releases
Androwarn είναι ένα εργαλείο του οποίου ο κύριος στόχος είναι να ανιχνεύσει και να προειδοποιήσει τον χρήστη για πιθανές κακόβουλες συμπεριφορές που αναπτύσσονται από μια εφαρμογή Android.
Η ανίχνευση πραγματοποιείται με την στατική ανάλυση του Dalvik bytecode της εφαρμογής, που εκπροσωπείται ως Smali, με τη βιβλιοθήκη androguard
.
Αυτό το εργαλείο αναζητά συνηθισμένες συμπεριφορές "κακών" εφαρμογών όπως: Εξαγωγή τηλεφωνικών αναγνωριστικών, Παρεμβολή ροής ήχου/βίντεο, Τροποποίηση δεδομένων PIM, Εκτέλεση αυθαίρετου κώδικα...
MARA είναι ένα Mobile Application Reverse engineering και Analysis Framework. Είναι ένα εργαλείο που συγκεντρώνει κοινώς χρησιμοποιούμενα εργαλεία αντίστροφης μηχανικής και ανάλυσης εφαρμογών κινητών, για να βοηθήσει στη δοκιμή εφαρμογών κινητών ενάντια στις απειλές ασφάλειας κινητών του OWASP. Σκοπός του είναι να διευκολύνει αυτή την εργασία και να την κάνει πιο φιλική προς τους προγραμματιστές εφαρμογών κινητών και τους επαγγελματίες ασφάλειας.
Είναι ικανό να:
Εξάγει κώδικα Java και Smali χρησιμοποιώντας διάφορα εργαλεία
Αναλύει APKs χρησιμοποιώντας: smalisca, ClassyShark, androbugs, androwarn, APKiD
Εξάγει ιδιωτικές πληροφορίες από το APK χρησιμοποιώντας regexps.
Αναλύει το Manifest.
Αποκωδικοποιεί APK μέσω apk-deguard.com
Koodous
Χρήσιμο για την ανίχνευση κακόβουλου λογισμικού: https://koodous.com/
Obfuscating/Deobfuscating code
Σημειώστε ότι ανάλογα με την υπηρεσία και τη διαμόρφωση που χρησιμοποιείτε για να αποκρύψετε τον κώδικα. Τα μυστικά μπορεί να είναι ή να μην είναι αποκρυπτογραφημένα.
Από Wikipedia: ProGuard είναι ένα εργαλείο γραμμής εντολών ανοιχτού κώδικα που μειώνει, βελτιστοποιεί και αποκρύπτει τον κώδικα Java. Είναι ικανό να βελτιστοποιεί τον bytecode καθώς και να ανιχνεύει και να αφαιρεί μη χρησιμοποιούμενες εντολές. Το ProGuard είναι δωρεάν λογισμικό και διανέμεται υπό την άδεια GNU General Public License, έκδοση 2.
Το ProGuard διανέμεται ως μέρος του Android SDK και εκτελείται κατά την κατασκευή της εφαρμογής σε λειτουργία κυκλοφορίας.
Βρείτε έναν οδηγό βήμα προς βήμα για να αποκωδικοποιήσετε το apk στο https://blog.lexfo.fr/dexguard.html
(Από αυτόν τον οδηγό) Την τελευταία φορά που ελέγξαμε, η λειτουργία του Dexguard ήταν:
φορτώστε έναν πόρο ως InputStream;
τροφοδοτήστε το αποτέλεσμα σε μια κλάση που κληρονομεί από FilterInputStream για να το αποκρυπτογραφήσετε;
κάντε κάποια άχρηστη απόκρυψη για να σπαταλήσετε λίγα λεπτά χρόνου από έναν αναλυτή;
τροφοδοτήστε το αποκρυπτογραφημένο αποτέλεσμα σε ένα ZipInputStream για να αποκτήσετε ένα αρχείο DEX;
τελικά φορτώστε το προκύπτον DEX ως Πόρο χρησιμοποιώντας τη μέθοδο
loadDex
.
Το DeGuard αντιστρέφει τη διαδικασία απόκρυψης που εκτελούν τα εργαλεία απόκρυψης του Android. Αυτό επιτρέπει πολλές αναλύσεις ασφάλειας, συμπεριλαμβανομένης της επιθεώρησης κώδικα και της πρόβλεψης βιβλιοθηκών.
Μπορείτε να ανεβάσετε ένα αποκρυπτογραφημένο APK στην πλατφόρμα τους.
Είναι ένα γενικό android deobfuscator. Το Simplify εκτελεί εικονικά μια εφαρμογή για να κατανοήσει τη συμπεριφορά της και στη συνέχεια προσπαθεί να βελτιστοποιήσει τον κώδικα ώστε να συμπεριφέρεται ταυτόχρονα αλλά να είναι πιο εύκολο για έναν άνθρωπο να κατανοήσει. Κάθε τύπος βελτιστοποίησης είναι απλός και γενικός, οπότε δεν έχει σημασία ποιος είναι ο συγκεκριμένος τύπος απόκρυψης που χρησιμοποιείται.
Το APKiD σας δίνει πληροφορίες για το πώς δημιουργήθηκε ένα APK. Αναγνωρίζει πολλούς μεταγλωττιστές, πακεταριστές, αποκρυπτογραφητές και άλλα περίεργα πράγματα. Είναι το PEiD για Android.
Manual
Labs
Το AndroL4b είναι μια εικονική μηχανή ασφάλειας Android βασισμένη στο ubuntu-mate που περιλαμβάνει τη συλλογή των τελευταίων πλαισίων, tutorials και εργαστηρίων από διάφορους ειδικούς και ερευνητές ασφάλειας για αντίστροφη μηχανική και ανάλυση κακόβουλου λογισμικού.
References
https://appsecwiki.com/#/ Είναι μια εξαιρετική λίστα πόρων
https://maddiestone.github.io/AndroidAppRE/ Γρήγορο μάθημα Android
Yet to try
Join HackenProof Discord server to communicate with experienced hackers and bug bounty hunters!
Hacking Insights Engage with content that delves into the thrill and challenges of hacking
Real-Time Hack News Keep up-to-date with fast-paced hacking world through real-time news and insights
Latest Announcements Stay informed with the newest bug bounties launching and crucial platform updates
Join us on Discord and start collaborating with top hackers today!
Last updated