Android Applications Pentesting
Last updated
Last updated
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Εγγραφείτε στον HackenProof Discord server για να επικοινωνήσετε με έμπειρους hackers και κυνηγούς bug bounty!
Hacking Insights Συμμετάσχετε σε περιεχόμενο που εμβαθύνει στην αδρεναλίνη και τις προκλήσεις του hacking
Real-Time Hack News Μείνετε ενημερωμένοι με τον ταχύτατο κόσμο του hacking μέσω ειδήσεων και πληροφοριών σε πραγματικό χρόνο
Latest Announcements Μείνετε ενημερωμένοι με τις πιο πρόσφατες εκκινήσεις bug bounties και κρίσιμες ενημερώσεις πλατφόρμας
Εγγραφείτε μαζί μας στο Discord και ξεκινήστε να συνεργάζεστε με κορυφαίους hackers σήμερα!
Είναι πολύ σημαντικό να ξεκινήσετε διαβάζοντας αυτή τη σελίδα για να γνωρίσετε τα πιο σημαντικά μέρη που σχετίζονται με την ασφάλεια Android και τα πιο επικίνδυνα στοιχεία σε μια εφαρμογή Android:
Αυτό είναι το κύριο εργαλείο που χρειάζεστε για να συνδεθείτε σε μια συσκευή android (εξομοιωμένη ή φυσική). ADB επιτρέπει τον έλεγχο συσκευών είτε μέσω USB είτε μέσω Δικτύου από έναν υπολογιστή. Αυτή η χρησιμότητα επιτρέπει την αντιγραφή αρχείων και στις δύο κατευθύνσεις, εγκατάσταση και απεγκατάσταση εφαρμογών, εκτέλεση εντολών shell, δημιουργία αντιγράφων ασφαλείας δεδομένων, ανάγνωση καταγραφών, μεταξύ άλλων λειτουργιών.
Ρίξτε μια ματιά στη παρακάτω λίστα με ADB Commands για να μάθετε πώς να χρησιμοποιείτε το adb.
Μερικές φορές είναι ενδιαφέρον να τροποποιήσετε τον κώδικα της εφαρμογής για να αποκτήσετε πρόσβαση σε κρυφές πληροφορίες (ίσως καλά κρυμμένους κωδικούς ή σημαίες). Στη συνέχεια, θα μπορούσε να είναι ενδιαφέρον να αποσυμπιέσετε το apk, να τροποποιήσετε τον κώδικα και να το ξανασυμπιέσετε. Σε αυτό το tutorial μπορείτε να μάθετε πώς να αποσυμπιέσετε ένα APK, να τροποποιήσετε τον κώδικα Smali και να ξανασυμπιέσετε το APK με τη νέα λειτουργικότητα. Αυτό θα μπορούσε να είναι πολύ χρήσιμο ως εναλλακτική για πολλές δοκιμές κατά τη διάρκεια της δυναμικής ανάλυσης που θα παρουσιαστούν. Στη συνέχεια, κρατήστε πάντα στο μυαλό σας αυτή την πιθανότητα.
Extract APK from device:
Συγχωνεύστε όλα τα διαχωρισμένα και βασικά 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_** μπορεί να αποκαλύψει πιθανές ευπάθειες ασφαλείας**. Αυτά τα αρχεία μπορούν να προσπελαστούν χρησιμοποιώντας 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/ μπορούν να καθορίσουν λεπτομέρειες ασφαλείας όπως pins πιστοποιητικών και ρυθμίσεις 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 είναι μια επίθεση όπου μια κακόβουλη εφαρμογή εκκινείται και τοποθετείται πάνω από μια εφαρμογή θύμα. Μόλις καλύψει ορατά την εφαρμογή θύμα, η διεπαφή χρήστη της είναι σχεδιασμένη με τέτοιο τρόπο ώστε να παραπλανήσει τον χρήστη να αλληλεπιδράσει με αυτήν, ενώ περνά την αλληλεπίδραση στην εφαρμογή θύμα. Στην ουσία, τυφλώνει τον χρήστη από το να γνωρίζει ότι εκτελεί ενέργειες στην εφαρμογή θύμα.
Βρείτε περισσότερες πληροφορίες στο:
Μια δραστηριότητα με το launchMode
ρυθμισμένο σε singleTask
χωρίς καμία καθορισμένη taskAffinity
είναι ευάλωτη σε 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/
και μερικές φορές είναι δυνατό να βρείτε ευαίσθητες πληροφορίες σε καθαρό κείμενο σε αυτόν τον φάκελο.
Αποδοχή Όλων των Πιστοποιητικών
Για κάποιο λόγο, μερικές φορές οι προγραμματιστές αποδέχονται όλα τα πιστοποιητικά ακόμη και αν, για παράδειγμα, το 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.
Κακές Διαδικασίες Διαχείρισης Κλειδιών
Some developers save sensitive data in the local storage and encrypt it with a key hardcoded/predictable in the code. This shouldn't be done as some reversing could allow attackers to extract the confidential information.
Χρήση Ανασφαλών και/ή Απαρχαιωμένων Αλγορίθμων
Developers shouldn't use deprecated algorithms to perform authorisation checks, store or send data. Some of these algorithms are: RC4, MD4, MD5, SHA1... If hashes are used to store passwords for example, hashes brute-force resistant should be used with salt.
It's recommended to obfuscate the APK to difficult the reverse engineer labour to attackers.
If the app is sensitive (like bank apps), it should perform its own checks to see if the mobile is rooted and act in consequence.
If the app is sensitive (like bank apps), it should check if an emulator is being used.
If the app is sensitive (like bank apps), it should check its own integrity before executing it to check if it was modified.
Use APKiD to check which compiler/packer/obfuscator was used to build the APK
Read the following page to learn how to easily access javascript code of React applications:
Read the following page to learn how to easily access C# code of a xamarin 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.
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.
An application may contain secrets (API keys, passwords, hidden urls, subdomains...) inside of it that you might be able to discover. You could use a tool such as https://github.com/dwisiswant0/apkleaks
Code execution: Runtime.exec(), ProcessBuilder(), native code:system()
Send SMSs: sendTextMessage, sendMultipartTestMessage
Native functions declared as native
: public native, System.loadLibrary, System.load
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!
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.
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.
Android Studio (You can create x86 and arm devices, and according to this latest x86 versions support ARM libraries without needing a 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).
You need to activate the debugging options and it will be cool if you can root it:
Settings.
(From Android 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.
Logging
Developers should be cautious of exposing debugging information publicly, as it can lead to sensitive data leaks. The tools pidcat and adb logcat
are recommended for monitoring application logs to identify and protect sensitive information. Pidcat is favored for its ease of use and readability.
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
Android's clipboard-based framework enables copy-paste functionality in apps, yet poses a risk as other applications can access the clipboard, potentially exposing sensitive data. It's crucial to disable copy/paste functions for sensitive sections of an application, like credit card details, to prevent data leaks.
Crash Logs
If an application crashes and saves logs, these logs can assist attackers, particularly when the application cannot be reverse-engineered. To mitigate this risk, avoid logging on crashes, and if logs must be transmitted over the network, ensure they are sent via an SSL channel for security.
As pentester, try to take a look to these logs.
Analytics Data Sent To 3rd Parties
Applications often integrate services like Google Adsense, which can inadvertently leak sensitive data due to improper implementation by developers. To identify potential data leaks, it's advisable to intercept the application's traffic and check for any sensitive information being sent to third-party services.
Most of the applications will use internal SQLite databases to save information. During the pentest take a look to the databases created, the names of tables and columns and all the data saved because you could find sensitive information (which would be a vulnerability).
Databases should be located in /data/data/the.package.name/databases
like /data/data/com.mwr.example.sieve/databases
If the database is saving confidential information and is encrypted but you can find the password inside the application it's still a vulnerability.
Enumerate the tables using .tables
and enumerate the columns of the tables doing .schema <table_name>
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 a useful tool to exploit exported activities, exported services and Content Providers as you will learn in the following sections.
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 ακολουθήστε τον σύνδεσμο.
Διαβάστε αυτό αν θέλετε να ανανεώσετε τι είναι ένας Πάροχος Περιεχομένου. Οι πάροχοι περιεχομένου χρησιμοποιούνται βασικά για να μοιράζονται δεδομένα. Αν μια εφαρμογή έχει διαθέσιμους παρόχους περιεχομένου, μπορεί να είστε σε θέση να εξάγετε ευαίσθητα δεδομένα από αυτούς. Είναι επίσης ενδιαφέρον να δοκιμάσετε πιθανές SQL injections και Path Traversals καθώς θα μπορούσαν να είναι ευάλωτοι.
Μάθετε πώς να εκμεταλλευτείτε τους Παρόχους Περιεχομένου με το Drozer.
Διαβάστε αυτό αν θέλετε να ανανεώσετε τι είναι μια Υπηρεσία.
Θυμηθείτε ότι οι ενέργειες μιας Υπηρεσίας ξεκινούν στη μέθοδο onStartCommand
.
Μια υπηρεσία είναι βασικά κάτι που μπορεί να λάβει δεδομένα, να τα επεξεργαστεί και να επιστρέψει (ή όχι) μια απάντηση. Έτσι, αν μια εφαρμογή εξάγει κάποιες υπηρεσίες, θα πρέπει να ελέγξετε τον κώδικα για να κατανοήσετε τι κάνει και να δοκιμάσετε το δυναμικά για να εξάγετε εμπιστευτικές πληροφορίες, παρακάμπτοντας μέτρα αυθεντικοποίησης... Μάθετε πώς να εκμεταλλευτείτε τις Υπηρεσίες με το Drozer.
Διαβάστε αυτό αν θέλετε να ανανεώσετε τι είναι ένας Δέκτης Εκπομπών.
Θυμηθείτε ότι οι ενέργειες ενός Δέκτη Εκπομπών ξεκινούν στη μέθοδο onReceive
.
Ένας δέκτης εκπομπών θα περιμένει για έναν τύπο μηνύματος. Ανάλογα με το πώς ο δέκτης χειρίζεται το μήνυμα, θα μπορούσε να είναι ευάλωτος. Μάθετε πώς να εκμεταλλευτείτε τους Δέκτες Εκπομπών με το Drozer.
Μπορείτε να αναζητήσετε 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 είναι ένα μέτρο ασφαλείας όπου η εφαρμογή επαληθεύει το πιστοποιητικό του διακομιστή με μια γνωστή αντίγραφο που αποθηκεύεται μέσα στην ίδια την εφαρμογή. Αυτή η μέθοδος είναι απαραίτητη για την αποτροπή επιθέσεων MITM. Η εφαρμογή του SSL Pinning συνιστάται έντονα για εφαρμογές που χειρίζονται ευαίσθητες πληροφορίες.
Για να επιθεωρήσετε την κίνηση HTTP, είναι απαραίτητο να εγκαταστήσετε το πιστοποιητικό του εργαλείου proxy (π.χ., Burp). Χωρίς την εγκατάσταση αυτού του πιστοποιητικού, η κρυπτογραφημένη κίνηση μπορεί να μην είναι ορατή μέσω του proxy. Για έναν οδηγό σχετικά με την εγκατάσταση ενός προσαρμοσμένου πιστοποιητικού CA, κάντε κλικ εδώ.
Οι εφαρμογές που στοχεύουν API Level 24 και άνω απαιτούν τροποποιήσεις στη Ρύθμιση Ασφαλείας Δικτύου για να αποδεχτούν το πιστοποιητικό CA του proxy. Αυτό το βήμα είναι κρίσιμο για την επιθεώρηση κρυπτογραφημένης κίνησης. Για οδηγίες σχετικά με την τροποποίηση της Ρύθμισης Ασφαλείας Δικτύου, ανατρέξτε σε αυτό το tutorial.
Όταν εφαρμόζεται το 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 είναι ένα εργαλείο δυναμικής οργάνωσης για προγραμματιστές, αναλυτές αντίστροφης μηχανικής και ερευνητές ασφαλείας. Μπορείτε να αποκτήσετε πρόσβαση σε εκτελούμενες εφαρμογές και να συνδέσετε μεθόδους σε πραγματικό χρόνο για να αλλάξετε τη συμπεριφορά, να αλλάξετε τιμές, να εξάγετε τιμές, να εκτελέσετε διαφορετικό κώδικα... Αν θέλετε να κάνετε 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)
Ελέγξτε αν η εφαρμογή αποθηκεύει ευαίσθητες πληροφορίες μέσα στη μνήμη που δεν θα έπρεπε να αποθηκεύει όπως κωδικούς πρόσβασης ή μνημονικά.
Χρησιμοποιώντας Fridump3 μπορείτε να κάνετε dump τη μνήμη της εφαρμογής με:
Αυτό θα εκφορτώσει τη μνήμη στον φάκελο ./dump, και εκεί μπορείτε να κάνετε grep με κάτι όπως:
Στο Android, το Keystore είναι το καλύτερο μέρος για να αποθηκεύσετε ευαίσθητα δεδομένα, ωστόσο, με αρκετά δικαιώματα είναι ακόμα δυνατό να αποκτηθεί πρόσβαση σε αυτό. Καθώς οι εφαρμογές τείνουν να αποθηκεύουν εδώ ευαίσθητα δεδομένα σε καθαρό κείμενο, οι pentests θα πρέπει να ελέγχουν για αυτό ως χρήστης root ή κάποιος με φυσική πρόσβαση στη συσκευή θα μπορούσε να είναι σε θέση να κλέψει αυτά τα δεδομένα.
Ακόμα και αν μια εφαρμογή αποθηκεύει δεδομένα στο keystore, τα δεδομένα θα πρέπει να είναι κρυπτογραφημένα.
Για να αποκτήσετε πρόσβαση στα δεδομένα μέσα στο keystore, μπορείτε να χρησιμοποιήσετε αυτό το σενάριο Frida: https://github.com/WithSecureLabs/android-keystore-audit/blob/master/frida-scripts/tracer-cipher.js
Using the following Frida script it could be possible to bypass fingerprint authentication Android applications might be performing in order to protect certain sensitive areas:
Όταν βάζετε μια εφαρμογή στο παρασκήνιο, το Android αποθηκεύει μια στιγμιότυπο της εφαρμογής έτσι ώστε όταν ανακτηθεί στο προσκήνιο να αρχίσει να φορτώνει την εικόνα πριν από την εφαρμογή, ώστε να φαίνεται ότι η εφαρμογή φορτώθηκε πιο γρήγορα.
Ωστόσο, αν αυτό το στιγμιότυπο περιέχει ευαίσθητες πληροφορίες, κάποιος με πρόσβαση στο στιγμιότυπο μπορεί να κλέψει αυτές τις πληροφορίες (σημειώστε ότι χρειάζεστε root για να έχετε πρόσβαση σε αυτό).
Τα στιγμιότυπα συνήθως αποθηκεύονται γύρω από: /data/system_ce/0/snapshots
Το Android παρέχει έναν τρόπο να αποτρέψει την καταγραφή στιγμιότυπων οθόνης ρυθμίζοντας την παράμετρο διάταξης FLAG_SECURE. Χρησιμοποιώντας αυτή τη σημαία, το περιεχόμενο του παραθύρου θεωρείται ασφαλές, αποτρέποντας την εμφάνιση σε στιγμιότυπα οθόνης ή την προβολή σε μη ασφαλείς οθόνες.
Αυτό το εργαλείο μπορεί να σας βοηθήσει να διαχειριστείτε διάφορα εργαλεία κατά τη διάρκεια της δυναμικής ανάλυσης: https://github.com/NotSoSecure/android_application_analyzer
Οι προγραμματιστές συχνά δημιουργούν proxy components όπως activities, services και broadcast receivers που χειρίζονται αυτά τα Intents και τα περνούν σε μεθόδους όπως startActivity(...)
ή sendBroadcast(...)
, οι οποίες μπορεί να είναι επικίνδυνες.
Ο κίνδυνος έγκειται στο να επιτρέπεται στους επιτιθέμενους να ενεργοποιούν μη εξαγόμενα components εφαρμογών ή να έχουν πρόσβαση σε ευαίσθητους content providers παραπλανώντας αυτά τα Intents. Ένα αξιοσημείωτο παράδειγμα είναι το component WebView
που μετατρέπει URLs σε αντικείμενα Intent
μέσω Intent.parseUri(...)
και στη συνέχεια τα εκτελεί, ενδεχομένως οδηγώντας σε κακόβουλες εισαγωγές Intents.
Intent Injection είναι παρόμοιο με το πρόβλημα Open Redirect του web.
Οι εκμεταλλεύσεις περιλαμβάνουν την παράδοση αντικειμένων Intent
ως extras, τα οποία μπορούν να ανακατευθυνθούν για να εκτελέσουν μη ασφαλείς λειτουργίες.
Μπορεί να εκθέσει μη εξαγόμενα components και content providers στους επιτιθέμενους.
Η μετατροπή URL σε Intent
του WebView
μπορεί να διευκολύνει ακούσιες ενέργειες.
Πιθανώς γνωρίζετε για αυτούς τους τύπους ευπαθειών από το Web. Πρέπει να είστε ιδιαίτερα προσεκτικοί με αυτές τις ευπάθειες σε μια εφαρμογή Android:
SQL Injection: Όταν ασχολείστε με δυναμικά queries ή Content-Providers, βεβαιωθείτε ότι χρησιμοποιείτε παραμετροποιημένα queries.
JavaScript Injection (XSS): Ελέγξτε ότι η υποστήριξη JavaScript και Plugin είναι απενεργοποιημένη για οποιαδήποτε WebViews (απενεργοποιημένη από προεπιλογή). Περισσότερες πληροφορίες εδώ.
Local File Inclusion: Οι WebViews θα πρέπει να έχουν απενεργοποιημένη την πρόσβαση στο σύστημα αρχείων (ενεργοποιημένη από προεπιλογή) - (webview.getSettings().setAllowFileAccess(false);)
. Περισσότερες πληροφορίες εδώ.
Eternal cookies: Σε πολλές περιπτώσεις, όταν η εφαρμογή android ολοκληρώνει τη συνεδρία, το cookie δεν ανακαλείται ή μπορεί ακόμη και να αποθηκευτεί στο δίσκο.
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!
Static analysis
Vulnerability assessment of the application using a nice web-based frontend. You can also perform dynamic analysis (but you need to prepare the environment).
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 (you will need to set your API key in MobSF/settings.py and enable it: 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.
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 κάνοντας:
Μπορείτε να αποκτήσετε το εργαλείο από 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 και ηθικούς χάκερ να εκτελούν στατική ανάλυση κώδικα σε κινητές εφαρμογές.
Η έννοια είναι ότι σύρετε και αποθέτετε το αρχείο της κινητής σας εφαρμογής (ένα αρχείο .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
Χρήσιμο για την ανίχνευση κακόβουλου λογισμικού: https://koodous.com/
Σημειώστε ότι ανάλογα με την υπηρεσία και τη διαμόρφωση που χρησιμοποιείτε για να αποκρύψετε τον κώδικα. Τα μυστικά μπορεί να είναι ή να μην είναι αποκρυπτογραφημένα.
Από 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.
Το AndroL4b είναι μια εικονική μηχανή ασφάλειας Android βασισμένη στο ubuntu-mate που περιλαμβάνει τη συλλογή των τελευταίων πλαισίων, tutorials και εργαστηρίων από διάφορους ειδικούς και ερευνητές ασφάλειας για αντίστροφη μηχανική και ανάλυση κακόβουλου λογισμικού.
https://appsecwiki.com/#/ Είναι μια εξαιρετική λίστα πόρων
https://maddiestone.github.io/AndroidAppRE/ Γρήγορος οδηγός Android
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!
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)