.. | ||
drozer-tutorial | ||
frida-tutorial | ||
adb-commands.md | ||
android-applications-basics.md | ||
android-task-hijacking.md | ||
apk-decompilers.md | ||
avd-android-virtual-device.md | ||
bypass-biometric-authentication-android.md | ||
content-protocol.md | ||
exploiting-a-debuggeable-applciation.md | ||
google-ctf-2018-shall-we-play-a-game.md | ||
install-burp-certificate.md | ||
intent-injection.md | ||
make-apk-accept-ca-certificate.md | ||
manual-deobfuscation.md | ||
react-native-application.md | ||
README.md | ||
reversing-native-libraries.md | ||
smali-changes.md | ||
spoofing-your-location-in-play-store.md | ||
tapjacking.md | ||
webview-attacks.md |
Ελεγχος Εφαρμογών Android
Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)!
Άλλοι τρόποι υποστήριξης του HackTricks:
- Αν θέλετε να δείτε την εταιρεία σας διαφημισμένη στο HackTricks ή να κατεβάσετε το HackTricks σε PDF ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε την Οικογένεια PEASS, τη συλλογή μας από αποκλειστικά NFTs
- Εγγραφείτε στη 💬 ομάδα Discord ή στην ομάδα τηλεγραφήματος ή ακολουθήστε μας στο Twitter 🐦 @carlospolopm.
- Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.
Συμμετέχετε στον Διακομιστή Discord του HackenProof για να επικοινωνήσετε με έμπειρους χάκερ και κυνηγούς ευρημάτων ασφαλείας!
Εισαγωγή στο Χάκινγκ
Ασχοληθείτε με περιεχόμενο που εξετάζει την αγωνία και τις προκλήσεις του χάκινγκ
Ειδήσεις Χάκινγκ σε Πραγματικό Χρόνο
Μείνετε ενήμεροι με τον γρήγορο κόσμο του χάκινγκ μέσω ειδήσεων και αναλύσεων σε πραγματικό χρόνο
Τελευταίες Ανακοινώσεις
Μείνετε ενήμεροι με τις νεότερες ανταμοιβές ευρημάτων που ξεκινούν και τις κρίσιμες ενημερώσεις πλατφόρμας
Ελάτε στο Discord και αρχίστε να συνεργάζεστε με κορυφαίους χάκερ σήμερα!
Βασικά Εφαρμογών Android
Συνιστάται ανεπιφύλακτα να ξεκινήσετε την ανάγνωση αυτής της σελίδας για να μάθετε για τα πιο σημαντικά μέρη που σχετίζονται με την ασφάλεια του Android και τα πιο επικίνδυνα στοιχεία σε μια εφαρμογή Android:
{% content-ref url="android-applications-basics.md" %} android-applications-basics.md {% endcontent-ref %}
ADB (Android Debug Bridge)
Αυτό είναι το κύριο εργαλείο που χρειάζεστε για να συνδεθείτε σε μια συσκευή Android (εικονική ή φυσική).
Το ADB επιτρέπει τον έλεγχο των συσκευών είτε μέσω USB είτε μέσω Δικτύου από έναν υπολογιστή. Αυτό το εργαλείο επιτρέπει την αντιγραφή αρχείων και στις δύο κατευθύνσεις, την εγκατάσταση και απεγκατάσταση εφαρμογών, την εκτέλεση εντολών κελύφους, την δημιουργία αντιγράφων ασφαλείας δεδομένων, την ανάγνωση καταγραφών, μεταξύ άλλων λειτουργιών.
Ρίξτε μια ματιά στην παρακάτω λίστα με Εντολές ADB για να μάθετε πώς να χρησιμοποιήσετε το adb.
Smali
Καμιά φορά είναι ενδιαφέρον να τροποποιήσετε τον κώδικα της εφαρμογής για να έχετε πρόσβαση σε κρυμμένες πληροφορίες (ίσως καλά κρυπτογραφημένους κωδικούς πρόσβασης ή σημαίες). Στη συνέχεια, θα μπορούσε να είναι ενδιαφέρον να αποκωδικοποιήσετε το apk, να τροποποιήσετε τον κώδικα και να τον επανασυναρμολογήσετε.
Σε αυτό το εγχειρίδιο μπορείτε να μάθετε πώς να αποκωδικοποιήσετε ένα APK, να τροποποιήσετε τον κώδικα Smali και να επανασυναρμολογήσετε το APK με τη νέα λειτουργικότητα. Αυτό θα μπορούσε να είναι πολύ χρήσιμο ως εναλλακτική λύση για αρκετές δοκιμές κατά τη δυναμική ανάλυση που θα παρουσιαστούν. Στη συνέχεια, κρατήστε πάντα αυτή τη δυνατότητα στο μυαλό σας.
Άλλα ενδιαφέροντα κόλπα
- Πλαστογραφώντας την τοποθεσία σας στο Play Store
- Λήψη APKs: https://apps.evozi.com/apk-downloader/, https://apkpure.com/es/, https://www.apkmirror.com/, https://apkcombo.com/es-es/apk-downloader/, https://github.com/kiber-io/apkd
- Εξαγωγή APK από συσκευή:
adb shell pm list packages
com.android.insecurebankv2
adb shell pm path com.android.insecurebankv2
package:/data/app/com.android.insecurebankv2-Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk
adb pull /data/app/com.android.insecurebankv2-Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk
- Συγχώνευσε όλες τις διαιρέσεις και τα βασικά apks με το APKEditor:
mkdir splits
adb shell pm path com.android.insecurebankv2 | cut -d ':' -f 1 | xargs -n1 -i adb pull {} splits
java -jar ../APKEditor.jar m -i splits/ -o merged.apk
# after merging, you will need to align and sign the apk, personally, I like to use the uberapksigner
java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed
Στατική Ανάλυση
Καταρχάς, για να αναλύσετε ένα APK πρέπει να ρίξετε μια ματιά στον κώδικα Java χρησιμοποιώντας έναν αποσυνταγματοποιητή.
Παρακαλώ, διαβάστε εδώ για να βρείτε πληροφορίες σχετικά με διαφορετικούς διαθέσιμους αποσυνταγματοποιητές.
Αναζήτηση ενδιαφέρουσων πληροφοριών
Απλά κοιτώντας τις συμβολοσειρές του 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 μπορεί να αποκαλύψει πιθανές ευπάθειες ασφάλειας. Αυτά τα αρχεία μπορούν να προσπελαστούν χρησιμοποιώντας αποσυνταγματοποιητές ή με τη μετονομασία της κατάληξης του αρχείου APK σε .zip και στη συνέχεια αποσυμπιέζοντάς το.
Οι ευπάθειες που εντοπίζονται από το Manifest.xml περιλαμβάνουν:
- Εφαρμογές Debuggable: Οι εφαρμογές που έχουν οριστεί ως debuggable (
debuggable="true"
) στο αρχείο Manifest.xml αποτελούν κίνδυνο καθώς επιτρέπουν συνδέσεις που μπορεί να οδηγήσουν σε εκμετάλλευση. Για περαιτέρω κατανόηση σχετικά με το πώς να εκμεταλλευτείτε debuggable εφαρμογές, ανατρέξτε σε ένα εκπαιδευτικό άρθρο για τον εντοπισμό και την εκμετάλλευση debuggable εφαρμογών σε μια συσκευή. - Ρυθμίσεις Αντιγράφων Ασφαλείας: Το χαρακτηριστικό
android:allowBackup="false"
πρέπει να ορίζεται ρητά για εφαρμογές που ασχολούνται με ευαίσθητες πληροφορίες προκειμένου να αποτρέπεται η μη εξουσιοδοτημένη δημιουργία αντιγράφων ασφαλείας μέσω adb, ειδικά όταν η ενεργοποίηση αποσφαλμάτωσης USB είναι ενεργοποιημένη. - Ασφάλεια Δικτύου: Προσαρμοσμένες ρυθμίσεις ασφάλειας δικτύου (
android:networkSecurityConfig="@xml/network_security_config"
) στο res/xml/ μπορούν να καθορίσουν λεπτομέρειες ασφάλειας όπως pins πιστοποιητικών και ρυθμίσεις κυκλοφορίας HTTP. Ένα παράδειγμα είναι η επιτροπή κυκλοφορίας HTTP για συγκεκριμένους τομείς. - Εξαγόμενες Δραστηριότητες και Υπηρεσίες: Η εντοπισμός εξαγόμενων δραστηριοτήτων και υπηρεσιών στον κατάλογο μπορεί να αναδείξει συστατικά που μπορεί να καταχραστούν. Περαιτέρω ανάλυση κατά τη διάρκεια δυναμικής δοκιμής μπορεί να αποκαλύψει πώς να εκμεταλλευτείτε αυτά τα στοιχεία.
- Παροχείς Περιεχομένου και FileProviders: Οι εκτεθειμένοι παροχείς περιεχομένου θα μπορούσαν να επιτρέψουν τη μη εξουσιοδοτημένη πρόσβαση ή τροποποίηση δεδομένων. Η διαμόρφωση των FileProviders πρέπει επίσης να ελεγχθεί.
- Δέκτες Εκπομπής και Σχήματα URL: Αυτά τα στοιχεία θα μπορούσαν να χρησιμοποιηθούν για εκμετάλλευση, με ιδιαίτερη προσοχή στον τρόπο διαχείρισης των σχημάτων URL για ευπάθειες εισόδου.
- Εκδόσεις SDK: Τα χαρακτηριστικά
minSdkVersion
,targetSDKVersion
καιmaxSdkVersion
υποδεικνύουν τις υποστηριζόμενες εκδόσεις Android, επισημαίνοντας τη σημασία του να μην υποστηρίζονται παλιές, ευάλωτες εκδόσεις Android για λόγους ασφάλειας.
Από το αρχείο strings.xml, μπορεί να ανακαλυφθούν ευαίσθητες πληροφορίες όπως κλειδιά API, προσαρμοσμένα σχήματα και άλλες σημειώσεις προγραμματιστή, υπογραμμίζοντας την ανάγκη για προσεκτική αναθεώρηση αυτών των πόρων.
Tapjacking
Το Tapjacking είναι μια επίθεση όπου μια κακόβουλη εφαρμογή εκκινείται και τοποθετείται επάνω σε μια εφαρμογή θύμα. Μόλις αποκρύψει ορατά την εφαρμογή θύμα, η διεπαφή χρήστη της σχεδιάζεται με τέτοιο τρόπο ώστε να εξαπατήσει τον χρήστη να αλληλεπιδρά μαζί της, ενώ παράλληλα μεταφέρει την αλληλεπίδραση στην εφαρμογή θύμα.
Κατ' ουσίαν, αποκρύπτει τον χρήστη από το να γνωρίζει ότι πραγματοποιεί πράξεις στην εφαρμογή θύμα.
Βρείτε περισσότερες πληροφορίες στο:
{% content-ref url="tapjacking.md" %} tapjacking.md {% endcontent-ref %}
Απαγωγή Εργασιών
Μια δραστηριότητα με το launchMode
ορισμένο σε singleTask
χωρίς καμία taskAffinity
ορισμένη είναι ευάλωτη στην απαγωγή εργασιών. Αυτό σημαίνει ότι μια εφαρμογή μπορεί να εγκατασταθεί και αν εκκινηθεί πριν την πραγματική εφαρμογή μπορεί να απαγάγει την εργασία της πραγματικής εφαρμογής (έτσι ο χρήστης θα αλληλεπιδρά με την κακόβουλη εφαρμογή νομίζοντας ότι χρησιμοποιεί την πραγματική).
Περισσότερες πληροφορίες στο:
{% content-ref url="android-task-hijacking.md" %} android-task-hijacking.md {% endcontent-ref %}
Ανασφαλής αποθήκευση δεδομένων
Εσωτερική Αποθήκευση
Στο Android, τα αρχεία αποθηκευμένα στην εσωτερική αποθήκευση είναι σχεδιασμένα να είναι **προσβάσιμα αποκλειστικά από την εφαρμογή που τα **δημιούργησε. Αυτό το μέτρο ασφαλείας επιβάλλεται από το λειτουργικό σύστημα Android και είναι γενικά επαρκές για τις ανάγκες ασφάλειας των περισσότερων εφαρμογών. Ωστόσο, οι προγραμματιστές μερικές φορές χρησιμοποιούν λειτουργίες όπως MODE_WORLD_READABLE
και MODE_WORLD_WRITABLE
για να επιτρέψουν σε αρχεία να μοιραστούν μεταξ
SSLSocketFactory sf = new cc(trustStore);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
Κατεστραμμένη Κρυπτογραφία
Ανεπαρκής Διαδικασίες Διαχείρισης Κλειδιών
Ορισμένοι προγραμματιστές αποθηκεύουν ευαίσθητα δεδομένα στην τοπική αποθήκευση και τα κρυπτογραφούν με ένα κλειδί που έχει καθοριστεί/μπορεί να προβλεφθεί στον κώδικα. Αυτό δεν πρέπει να γίνεται, καθώς μερικές αναστροφές μπορεί να επιτρέψουν σε επιτιθέμενους να εξάγουν τις εμπιστευτικές πληροφορίες.
Χρήση Ανασφαλών και/ή Αποσιωπημένων Αλγορίθμων
Οι προγραμματιστές δεν πρέπει να χρησιμοποιούν αποσιωπημένους αλγορίθμους για να πραγματοποιήσουν ελέγχους εξουσιοδότησης, αποθήκευσης ή αποστολής δεδομένων. Μερικοί από αυτούς τους αλγορίθμους είναι: RC4, MD4, MD5, SHA1... Εάν οι κατακερματισμοί χρησιμοποιούνται για την αποθήκευση κωδικών πρόσβασης για παράδειγμα, θα πρέπει να χρησιμοποιούνται ανθεκτικοί στη βία των κατακερματισμών με αλάτι.
Άλλοι Έλεγχοι
- Συνιστάται να εμποδίσετε το APK για να δυσκολέψετε την ανάπτυξη αντίστροφου μηχανικού σε επιτιθέμενους.
- Εάν η εφαρμογή είναι ευαίσθητη (όπως οι τράπεζες), θα πρέπει να πραγματοποιεί τους δικούς της ελέγχους για να δει αν το κινητό είναι ρουταρισμένο και να ενεργεί αναλόγως.
- Εάν η εφαρμογή είναι ευαίσθητη (όπως οι τράπεζες), θα πρέπει να ελέγχει αν χρησιμοποιείται ένας εξομοιωτής.
- Εάν η εφαρμογή είναι ευαίσθητη (όπως οι τράπεζες), θα πρέπει να ελέγχει τη δική της ακεραιότητα πριν την εκτέλεση για να δει αν έχει τροποποιηθεί.
- Χρησιμοποιήστε το APKiD για να ελέγξετε ποιος μεταγλωττιστής/συμπιεστής/αποσκοπευτής χρησιμοποιήθηκε για τη δημιουργία του APK
Εφαρμογή React Native
Διαβάστε την ακόλουθη σελίδα για να μάθετε πώς να έχετε εύκολη πρόσβαση στον κώδικα JavaScript εφαρμογών React:
{% content-ref url="react-native-application.md" %} react-native-application.md {% endcontent-ref %}
Εφαρμογές Xamarin
Διαβάστε την ακόλουθη σελίδα για να μάθετε πώς να έχετε εύκολη πρόσβαση στον κώδικα C# μιας εφαρμογής Xamarin:
{% content-ref url="../xamarin-apps.md" %} xamarin-apps.md {% endcontent-ref %}
Εφαρμογές Superpacked
Σύμφωνα με αυτήν την ανάρτηση στο blog, το superpacked είναι ένα μετα-αλγόριθμος που συμπιέζει το περιεχόμενο μιας εφαρμογής σε ένα μόνο αρχείο. Το blog αναφέρεται στη δυνατότητα δημιουργίας μιας εφαρμογής που αποσυμπιέζει αυτού του είδους τις εφαρμογές... και μια ταχύτερη μέθοδο που περιλαμβάνει το εκτέλεση της εφαρμογής και τη συλλογή των αποσυμπιεσμένων αρχείων από το σύστημα αρχείων.
Αυτόματη Στατική Ανάλυση Κώδικα
Το εργαλείο mariana-trench είναι ικανό να εντοπίζει ευπάθειες με το σάρωμα του κώδικα της εφαρμογής. Αυτό το εργαλείο περιέχει μια σειρά από γνωστές πηγές (που υποδεικνύουν στο εργαλείο τα σημεία όπου η είσοδος ελέγχεται από τον χρήστη), διαρροές (που υποδεικνύουν στο εργαλείο τα επικίνδυνα σημεία όπου κακόβουλη είσοδος χρήστη θα μπορούσε να προκαλέσει ζημιές) και κανόνες. Αυτοί οι κανόνες υποδεικνύουν το συνδυασμό των πηγών-διαρροών που υποδεικνύουν μια ευπάθεια.
Με αυτή τη γνώση, το mariana-trench θα εξετάσει τον κώδικα και θα εντοπίσει πιθανές ευπάθειες σε αυτόν.
Διαρροές Μυστικών
Μια εφαρμογή μπορεί να περιέχει μυστικά (κλειδιά API, κωδικούς πρόσβασης, κρυμμένες διευθύνσεις URL, υποτομείς...) μέσα της που μπορείτε να ανακαλύψετε. Μπορείτε να χρησιμοποιήσετε ένα εργαλείο όπως το https://github.com/dwisiswant0/apkleaks
Παράκαμψη Βιομετρικής Ταυτοποίησης
{% content-ref url="bypass-biometric-authentication-android.md" %} bypass-biometric-authentication-android.md {% endcontent-ref %}
Άλλες ενδιαφέρουσες λειτουργίες
- Εκτέλεση κώδικα:
Runtime.exec(), ProcessBuilder(), native code:system()
- Αποστολή SMS:
sendTextMessage, sendMultipartTestMessage
- Καταχωρημένες Νατιβ λειτουργίες ως
native
:public native, System.loadLibrary, System.load
- Διαβάστε αυτό για να μάθετε πώς να αναστρέψετε τις νατιβ λειτουργίες
Άλλα κόλπα
{% content-ref url="content-protocol.md" %} content-protocol.md {% endcontent-ref %}
Εγγραφείτε στο HackenProof Discord server για επικοινωνία με έμπειρους χάκερ και κυνηγούς ευρημάτων ασφαλείας!
Εισαγωγές Χάκερ
Ασχοληθείτε με περιεχόμενο που εξερευνά την αγωνία και τις προκλήσεις του χάκινγκ
Ειδήσεις Χάκερ σε Πραγματικό Χρόνο
Μείνετε ενήμεροι με τον γρήγορο ρυθμό του κόσμου του χάκινγκ μέσω ειδήσεων και αναλύσεων σε πραγματικό χρόνο
Τελευταίες Ανακοινώσεις
Μείνετε ενήμεροι με τις νεότερες ανακοινώσεις για νέες αμοιβές ευρετηρίων ευρημάτων και κρίσιμες ενημερώσεις πλατφόρμας
Ελάτε στο Discord και αρχίστε να συνεργάζεστε με κορυφαίους χάκερ σήμερα!
Δυναμική Ανάλυση
Καταρχάς, χρειάζεστε ένα περιβάλλον όπου μπορείτε να εγκαταστήσετε την εφαρμογή και όλο το περιβάλλον (πιστοποιητικό Burp CA, Drozer και Frida κυρίως). Συνεπώς, ένα ρουταρισμένο συσκευή (εμούλαρ ή όχι) είναι απαραίτητο.
Διαδικτυακή Δυναμική Ανάλυση
Μπορείτε να δημιουργήσετε ένα δωρεάν λογαριασμό στο: https://appetize.io/. Αυτή η πλατφόρμα σάς επιτρέπει να ανεβάσετε και εκτελέσετε APKs, είναι χρήσιμη για να δείτε πώς συμπεριφέρεται ένα apk.
Μπορείτε ακόμη να δείτε τα logs της εφαρμογής σας στο web και ν
Ανεπιθύμητη Διαρροή Δεδομένων
Καταγραφή
Οι προγραμματιστές πρέπει να είναι προσεκτικοί ώστε να μην αποκαλύπτουν δημόσια πληροφορίες αποσφαλμάτωσης, καθώς μπορεί να οδηγήσει σε διαρροές ευαίσθητων δεδομένων. Τα εργαλεία pidcat και adb logcat
συνιστούνται για την παρακολούθηση των αρχείων καταγραφής της εφαρμογής για τον εντοπισμό και την προστασία ευαίσθητων πληροφοριών. Το Pidcat προτιμάται για την ευκολία χρήσης και αναγνωσιμότητα.
{% hint style="warning" %}
Σημειώστε ότι από νεότερες εκδόσεις του Android από την έκδοση 4.0, οι εφαρμογές μπορούν να έχουν πρόσβαση μόνο στα δικά τους αρχεία καταγραφής. Έτσι, οι εφαρμογές δεν μπορούν να έχουν πρόσβαση στα αρχεία καταγραφής άλλων εφαρμογών.
Παρ' όλα αυτά, εξακολουθεί να συνιστάται να μην καταγράφονται ευαίσθητες πληροφορίες.
{% endhint %}
Αποθήκευση Προσωρινών Δεδομένων Αντιγραφής/Επικόλλησης
Το πλαίσιο βασισμένο στο πρόχειρο του Android επιτρέπει τη λειτουργία αντιγραφής-επικόλλησης στις εφαρμογές, αλλά αποτελεί κίνδυνο καθώς άλλες εφαρμογές μπορούν να έχουν πρόσβαση στο πρόχειρο, εκθέτοντας πιθανώς ευαίσθητα δεδομένα. Είναι ζωτικής σημασίας να απενεργοποιηθούν οι λειτουργίες αντιγραφής/επικόλλησης για ευαίσθητες ενότητες μιας εφαρμογής, όπως λεπτομέρειες πιστωτικής κάρτας, προκειμένου να αποτραπούν οι διαρροές δεδομένων.
Αρχεία Καταγραφής Κρασών
Εάν μια εφαρμογή κρατάει καταγραφές όταν συμβαίνει κρασάρισμα, αυτές οι καταγραφές μπορούν να βοηθήσουν τους επιτιθέμενους, ιδιαίτερα όταν η εφαρμογή δεν μπορεί να ανασυντεθεί. Για να μειώσετε αυτόν τον κίνδυνο, αποφύγετε την καταγραφή κατά τα κρασάρισμα και, εάν οι καταγραφές πρέπει να μεταδοθούν μέσω του δικτύου, βεβαιωθείτε ότι αποστέλλονται μέσω ενός καναλιού SSL για ασφάλεια.
Ως pentester, προσπαθήστε να ρίξετε μια ματιά σε αυτές τις καταγραφές.
Δεδομένα Αναλυτικών Που Στέλνονται Σε 3ης Μεριδας
Οι εφαρμογές συχνά ενσωματώνουν υπηρεσίες όπως το Google Adsense, το οποίο μπορεί ακούσια να διαρρεύσει ευαίσθητα δεδομένα λόγω εσφαλμένης υλοποίησης από τους προγραμματιστές. Για να εντοπίσετε πιθανές διαρροές δεδομένων, είναι συνιστώμενο να παρεμβάλετε την κίνηση της εφαρμογής και να ελέγξετε εάν αποστέλλονται ευαίσθητες πληροφορίες σε υπηρεσίες τρίτων.
Βάσεις Δεδομένων SQLite
Οι περισσότερες εφαρμογές θα χρησιμοποιούν εσωτερικές βάσεις δεδομένων SQLite για την αποθήκευση πληροφοριών. Κατά τη διάρκεια της δοκιμής διείσδυσης, εξετάστε τις δημιουργημένες βάσεις δεδομένων, τα ονόματα των πινάκων και των στηλών και όλα τα δεδομένα που αποθηκεύονται, καθώς μπορείτε να βρείτε ευαίσθητες πληροφορίες (το οποίο θα αποτελούσε μια ευπάθεια).
Οι βάσεις δεδομένων πρέπει να βρίσκονται στον φάκελο /data/data/το.όνομα.του.πακέτου/databases
όπως /data/data/com.mwr.example.sieve/databases
Εάν η βάση δεδομένων αποθηκεύει εμπιστευτικές πληροφορίες και είναι κρυπτογραφημένη αλλά μπορείτε να βρείτε τον κωδικό πρόσβασης μέσα στην εφαρμογή, παραμένει μια ευπάθεια.
Απαριθμήστε τους πίνακες χρησιμοποιώντας την εντολή .tables
και απαριθμήστε τις στήλες των πινάκων με την εντολή .schema <όνομα_πίνακα>
Drozer (Εκμετάλλευση Δραστηριοτήτων, Παρόχων Περιεχομένου και Υπηρεσιών)
Από τα Έγγραφα του Drozer: Το Drozer σάς επιτρέπει να υιοθετήσετε το ρόλο μιας εφαρμογής Android και να αλληλεπιδράτε με άλλες εφαρμογές. Μπορεί να κάνει οτιδήποτε μια εγκατεστημένη εφαρμογή μπορεί να κάνει, όπως να χρησιμοποιήσει τον μηχανισμό Επικοινωνίας Μεταξύ Διεργασιών (IPC) του Android και να αλληλεπιδρά με το υποκείμενο λειτουργικό σύστημα.
Το Drozer είναι ένα χρήσιμο εργαλείο για την εκμετάλλευση εξαγόμενων δραστηριοτήτων, εξαγόμενων υπηρεσιών και Παρόχων Περιεχομένου όπως θα μάθετε στις ακόλουθες ενότητες.
Εκμετάλλευση εξαγόμενων Δραστηριοτήτων
Διαβάστε αυτό αν θέλετε να ανανεώσετε τι είναι μια Δραστηριότητα Android.
Θυμηθείτε επίσης ότι ο κώδικας μιας δραστηριότητας ξεκινά στη μέθοδο onCreate
.
Παράκαμψη Εξουσιοδότησης
Όταν μια Δραστηριότητα είναι εξαγόμενη, μπορείτε να καλέσετε την οθόνη της από μια εξωτερική εφαρμογή. Επομένως, εάν μια δραστηριότητα με ευαίσθητες πληροφορίες είναι εξαγόμενη, μπορείτε να παρακάμψετε τους μηχανισμούς εξουσιοδότησης για να την έχετε πρόσβαση.
Μάθετε πώς να εκμεταλλευτείτε τις εξαγόμενες δραστηριότητες με το Drozer.
Μπορείτε επίσης να ξεκινήσετε μια εξαγόμενη δραστηριότητα από το adb:
- Το όνομα του πακέτου είναι com.example.demo
- Το όνομα της εξαγόμενης Δραστηριότητας είναι com.example.test.MainActivity
adb shell am start -n com.example.demo/com.example.test.MainActivity
ΣΗΜΕΙΩΣΗ: Το MobSF θα ανιχνεύσει ως κακόβουλη τη χρήση του singleTask/singleInstance ως android:launchMode
σε μια δραστηριότητα, αλλά λόγω αυτού, φαίνεται ότι αυτό είναι επικίνδυνο μόνο σε παλιότερες εκδόσεις (API εκδόσεις < 21).
{% hint style="info" %} Σημειώστε ότι μια παράκαμψη εξουσιοδότησης δεν είναι πάντα μια ευπάθεια, αυτό θα εξαρτηθεί από τον τρόπο λειτουργίας της παράκαμψης και ποιες πληροφορίες εκτίθενται. {% endhint %}
Ροή ευαίσθητων πληροφοριών
Οι δραστηριότητες μπορούν επίσης να επιστρέψουν αποτελέσματα. Εάν καταφέρετε να βρείτε μια εξαγωγή και μη προστατευμένη δραστηριότητα που καλεί τη μέθοδο setResult
και επιστρέφει ευαίσθητες πληροφορίες, τότε υπάρχει διαρροή ευαίσθητων πληροφοριών.
Tapjacking
Εάν δεν αποτραπεί το tapjacking, μπορείτε να καταχραστείτε την εξαγωγή δραστηριότητας για να κάνετε τον χρήστη να εκτελέσει απροσδόκητες ενέργειες. Για περισσότερες πληροφορίες σχετικά με τι είναι το Tapjacking ακολουθήστε τον σύνδεσμο.
Εκμεταλλευόμενοι τους Παρόχους Περιεχομένου - Πρόσβαση και διαχείριση ευαίσθητων πληροφοριών
Διαβάστε αυτό αν θέλετε να ανανεώσετε τι είναι ένας Πάροχος Περιεχομένου.
Οι πάροχοι περιεχομένου χρησιμοποιούνται βασικά για το διαμοιρασμό δεδομένων. Εάν μια εφαρμογή έχει διαθέσιμους πάροχους περιεχομένου, μπορείτε να εξάγετε ευαίσθητα δεδομένα από αυτούς. Είναι επίσης ενδιαφέρον να ελέγξετε πιθανές ενσωματώσεις SQL και Διαδρομές Ανάλυσης καθώς ενδέχεται να είναι ευάλωτες.
Μάθετε πώς να εκμεταλλευτείτε τους Παρόχους Περιεχομένου με το Drozer.
Εκμεταλλευόμενοι τις Υπηρεσίες
Διαβάστε αυτό αν θέλετε να ανανεώσετε τι είναι μια Υπηρεσία.
Θυμηθείτε ότι οι ενέργειες μιας Υπηρεσίας ξεκινούν στη μέθοδο onStartCommand
.
Μια υπηρεσία είναι βασικά κάτι που μπορεί να λάβει δεδομένα, να τα επεξεργαστεί και να επιστρέψει (ή όχι) μια απάντηση. Στη συνέχεια, εάν μια εφαρμογή εξάγει κάποιες υπηρεσίες, θα πρέπει να ελέγξετε τον κώδικα για να καταλάβετε τι κάνει και να το δοκιμάσετε δυναμικά για την εξαγωγή εμπιστευτικών πληροφοριών, την παράκαμψη μέτρων πιστοποίησης...
Μάθετε πώς να εκμεταλλευτείτε τις Υπηρεσίες με το Drozer.
Εκμεταλλευόμενοι τους Δέκτες Εκπομπής
Διαβάστε αυτό αν θέλετε να ανανεώσετε τι είναι ένας Δέκτης Εκπομπής.
Θυμηθείτε ότι οι ενέργειες ενός Δέκτη Εκπομπής ξεκινούν στη μέθοδο onReceive
.
Ένας δέκτης εκπομπής θα περιμένει έναν τύπο μηνύματος. Ανάλογα με τον τρόπο με τον οποίο ο δέκτης χειρίζεται το μήνυμα, ενδέχεται να είναι ευάλωτος.
Μάθετε πώς να εκμεταλλευτείτε τους Δέκτες Εκπομπής με το Drozer.
Εκμεταλλευόμενοι τις Σχήματα / Βαθιά συνδέσμους
Μπορείτε να αναζητήσετε βαθιούς συνδέσμους χειροκίνητα, χρησιμοποιώντας εργαλεία όπως το MobSF ή σενάρια όπως αυτό.
Μπορείτε να ανοίξετε έναν δηλωμένο σχήμα χρησιμοποιώντας adb ή ένα πρόγραμμα περιήγησης:
{% code overflow="wrap" %}
adb shell am start -a android.intent.action.VIEW -d "scheme://hostname/path?param=value" [your.package.name]
{% endcode %}
Σημείωση ότι μπορείτε να παραλείψετε το όνομα πακέτου και το κινητό θα ανοίξει αυτόματα την εφαρμογή που πρέπει να ανοίξει το σύνδεσμο.
{% code overflow="wrap" %}
<!-- Browser regular link -->
<a href="scheme://hostname/path?param=value">Click me</a>
<!-- fallback in your url you could try the intent url -->
<a href="intent://hostname#Intent;scheme=scheme;package=your.package.name;S.browser_fallback_url=http%3A%2F%2Fwww.example.com;end">with alternative</a>
{% endcode %}
Κώδικας που εκτελείται
Για να βρείτε τον κώδικα που θα εκτελεστεί στην εφαρμογή, πηγαίνετε στη δραστηριότητα που καλείται από το deeplink και αναζητήστε τη λειτουργία onNewIntent
.
Ευαίσθητες πληροφορίες
Κάθε φορά που βρίσκετε ένα βαθύ σύνδεσμο, ελέγξτε ότι δεν λαμβάνει ευαίσθητα δεδομένα (όπως κωδικούς πρόσβασης) μέσω παραμέτρων URL, επειδή οποιαδήποτε άλλη εφαρμογή θα μπορούσε να προσωποποιήσει τον βαθύ σύνδεσμο και να κλέψει αυτά τα δεδομένα!
Παράμετροι στη διαδρομή
Πρέπει επίσης να ελέγξετε αν κάποιος βαθύς σύνδεσμος χρησιμοποιεί μια παράμετρο μέσα στη διαδρομή του URL όπως: https://api.example.com/v1/users/{username}
, σε αυτήν την περίπτωση μπορείτε να επιβάλετε μια διέλευση διαδρομής προσπελαίνοντας κάτι όπως: example://app/users?username=../../unwanted-endpoint%3fparam=value
.
Σημειώστε ότι αν βρείτε τα σωστά σημεία εντοπισμού μέσα στην εφαρμογή, μπορείτε να προκαλέσετε μια Ανοικτή Ανακατεύθυνση (εάν ένα μέρος της διαδρομής χρησιμοποιείται ως όνομα τομέα), κατάληψη λογαριασμού (εάν μπορείτε να τροποποιήσετε λεπτομέρειες χρηστών χωρίς το CSRF token και το ευάλωτο σημείο χρησιμοποιεί τη σωστή μέθοδο) και οποιαδήποτε άλλη ευπάθεια. Περισσότερες πληροφορίες εδώ.
Περισσότερα παραδείγματα
Ένα ενδιαφέρον αναφορά αμοιβής ευρήματος ευρήματος σχετικά με συνδέσμους (/.well-known/assetlinks.json).
Ελέγχος και Αποτυχίες Επαλήθευσης Επιπέδου Μεταφοράς
- Τα πιστοποιητικά δεν ελέγχονται πάντα σωστά από τις εφαρμογές Android. Συχνά αυτές οι εφαρμογές παραβλέπουν προειδοποιήσεις και αποδέχονται αυτο-υπογεγραμμένα πιστοποιητικά ή, σε ορισμένες περιπτώσεις, επανέρχονται στη χρήση συνδέσεων HTTP.
- Οι διαπραγματεύσεις κατά την ανταλλαγή πιστοποιητικών SSL/TLS είναι μερικές φορές αδύναμες, χρησιμοποιώντας ανασφαλείς σουίτες κρυπτογράφησης. Αυτή η ευπάθεια καθιστά τη σύνδεση ευάλωτη σε επιθέσεις man-in-the-middle (MITM), επιτρέποντας σε επιτιθέμενους να αποκρυπτογραφήσουν τα δεδομένα.
- Η διαρροή προσωπικών πληροφοριών είναι ένας κίνδυνος όταν οι εφαρμογές πιστοποιούνται χρησιμοποιώντας ασφαλείς κανάλια, αλλά στη συνέχεια επικοινωνούν μέσω μη ασφαλών καναλιών για άλλες συναλλαγές. Αυτή η προσέγγιση αποτυγχάνει να προστατεύσει ευαίσθητα δεδομένα, όπως cookies συνεδρίας ή λεπτομέρειες χρήστη, από παρεμβολή από κακόβουλους φορείς.
Επαλήθευση Πιστοποιητικού
Θα επικεντρωθούμε στην επαλήθευση πιστοποιητικού. Η ακεραιότητα του πιστοποιητικού του διακομιστή πρέπει να επαληθευτεί για να ενισχυθεί η ασφάλεια. Αυτό είναι κρίσιμο επειδή ανασφαλείς ρυθμίσεις TLS και η μετάδοση ευαίσθητων δεδομένων μέσω μη κρυπτογραφημένων καναλιών μπορούν να δημιουργήσουν σημαντικούς κινδύνους. Για λεπτομερείς οδηγίες σχετικά με την επαλήθευση πιστοποιητικών διακομιστή και την αντιμετώπιση ευπαθειών, αυτός ο πόρος παρέχει περιεκτικές καθοδήγησεις.
Καρφίτσωμα SSL
Το καρφίτσωμα SSL είναι μέτρο ασφαλείας όπου η εφαρμογή επαληθεύει το πιστοποιητικό του διακομιστή έναντι ενός γνωστού αντιγράφου που αποθηκεύεται μέσα στην ίδια την εφαρμογή. Αυτή η μέθοδος είναι ουσιώδης για την πρόληψη επιθέσεων MITM. Η εφαρμογή του καρφιτσώματος SSL συνιστάται ανεπιφύλακτα για εφαρμογές που χειρίζονται ευαίσθητες πληροφορίες.
Επιθεώρηση Κίνησης
Για να επιθεωρήσετε την κίνηση HTTP, είναι απαραίτητο να εγκαταστήσετε το πιστοποιητικό του εργαλείου προξενείας (π.χ., Burp). Χωρίς την εγκατάσταση αυτού του πιστοποιητικού, η κρυπτογραφημένη κίνηση ενδέχεται να μην είναι ορατή μέσω της προξενείας. Για οδηγίες σχετικά με την εγκατάσταση ενός προσαρμοσμένου πιστοποιητικού CA, κάντε κλικ εδώ.
Οι εφαρμογές που στοχεύουν στο API Level 24 και πάνω απαιτούν τροποποιήσεις στη διαμόρφωση Ασφάλειας Δικτύου για να αποδεχτούν το πιστοποιητικό CA της προξενείας. Αυτό το βήμα είναι κρίσιμο για την επιθεώρηση της κρυπτογραφημένης κίνησης. Για οδηγίες σχετικά με την τροποποίηση της διαμόρφωσης Ασφάλειας Δικτύου, ανατρέξτε σε αυτό το εγχειρίδιο.
Παράκαμψη Καρφίτσωματος SSL
Όταν εφαρμόζεται το καρφίτσωμα SSL, γίνεται απαραίτητη η παράκαμψή του για την επιθεώρηση της κίνησης 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 χρησιμοποιών
# With PID
python3 fridump3.py -u <PID>
# With name
frida-ps -Uai
python3 fridump3.py -u "<Name>"
Αυτό θα αδειάσει τη μνήμη στον φάκελο ./dump, και εκεί μπορείτε να χρησιμοποιήσετε την εντολή grep κάτι σαν:
strings * | grep -E "^[a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+$"
{% endcode %}
Ευαίσθητα δεδομένα στο Keystore
Στο Android το Keystore είναι ο καλύτερος τόπος για την αποθήκευση ευαίσθητων δεδομένων, ωστόσο, με αρκετά προνόμια εξακολουθεί να είναι δυνατή η πρόσβαση σε αυτά. Δεδομένου ότι οι εφαρμογές τείνουν να αποθηκεύουν εδώ ευαίσθητα δεδομένα σε καθαρό κείμενο, οι δοκιμές διείσδυσης θα πρέπει να ελέγχουν γι' αυτά, καθώς ο χρήστης ριζικού ή κάποιος με φυσική πρόσβαση στη συσκευή θα μπορούσε να κλέψει αυτά τα δεδομένα.
Ακόμη κι αν μια εφαρμογή αποθήκευε ημερομηνία στο keystore, τα δεδομένα θα έπρεπε να είναι κρυπτογραφημένα.
Για να έχετε πρόσβαση στα δεδομένα μέσα στο keystore μπορείτε να χρησιμοποιήσετε αυτό το σενάριο Frida: https://github.com/WithSecureLabs/android-keystore-audit/blob/master/frida-scripts/tracer-cipher.js
frida -U -f com.example.app -l frida-scripts/tracer-cipher.js
Παράκαμψη Δακτυλικού Αποτυπώματος/Βιομετρικών Δεδομένων
Χρησιμοποιώντας το παρακάτω σενάριο Frida, είναι δυνατή η παράκαμψη της αυθεντικοποίησης με δακτυλικό αποτύπωμα που ενδέχεται να εκτελούν εφαρμογές Android προκειμένου να προστατεύσουν ορισμένες ευαίσθητες περιοχές:
{% code overflow="wrap" %}
frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app.package>
{% endcode %}
Εικόνες Φόντου
Όταν τοποθετείτε μια εφαρμογή στο παρασκήνιο, το Android αποθηκεύει μια στιγμιότυπο της εφαρμογής έτσι ώστε όταν επανέλθει στο προσκήνιο να αρχίσει να φορτώνει την εικόνα πριν την εφαρμογή, ώστε να φαίνεται ότι η εφαρμογή φορτώθηκε πιο γρήγορα.
Ωστόσο, αν αυτός ο στιγμιότυπος περιέχει ευαίσθητες πληροφορίες, κάποιος που έχει πρόσβαση στο στιγμιότυπο μπορεί να κλέψει αυτές τις πληροφορίες (σημειώστε ότι χρειάζεται root για να έχετε πρόσβαση).
Οι στιγμιότυποι αποθηκεύονται συνήθως στον φάκελο: /data/system_ce/0/snapshots
Το Android παρέχει έναν τρόπο για αποτροπή της λήψης στιγμιότυπου οθόνης με την ρύθμιση της FLAG_SECURE παραμέτρου διάταξης. Χρησιμοποιώντας αυτήν τη σημαία, τα περιεχόμενα του παραθύρου θεωρούνται ασφαλή, αποτρέποντας την εμφάνισή τους σε στιγμιότυπα οθόνης ή από το να προβληθούν σε μη ασφαλείς οθόνες.
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
Αναλυτής Εφαρμογών Android
Αυτό το εργαλείο μπορεί να σας βοηθήσει στη διαχείριση διαφορετικών εργαλείων κατά τη διάρκεια της δυναμικής ανάλυσης: https://github.com/NotSoSecure/android_application_analyzer
Εισαγωγή Intent
Οι προγραμματιστές συχνά δημιουργούν στοιχεία πρόσθετων όπως δραστηριότητες, υπηρεσίες και δέκτες εκπομπής που χειρίζονται αυτά τα Intents και τα περνούν σε μεθόδους όπως startActivity(...)
ή sendBroadcast(...)
, τα οποία μπορεί να είναι επικίνδυνα.
Ο κίνδυνος έγκειται στο να επιτρέπετε στους εισβολείς να ενεργοποιούν στοιχεία εφαρμογής που δεν είναι εξαγόμενα ή να έχουν πρόσβαση σε ευαίσθητους παροχείς περιεχομένου με την αποκατεύθυνση αυτών των Intents. Ένα ενδεικτικό παράδειγμα είναι η μετατροπή του στοιχείου WebView
των διευθύνσεων URL σε αντικείμενα Intent
μέσω της Intent.parseUri(...)
και στη συνέχεια η εκτέλεσή τους, που μπορεί να οδηγήσει σε κακόβουλες εισαγωγές Intent.
Βασικά Σημεία
- Εισαγωγή Intent είναι παρόμοια με το πρόβλημα Ανοικτής Ανακατεύθυνσης στο web.
- Οι εκμεταλλεύσεις περιλαμβάνουν τη μετάδοση αντικειμένων
Intent
ως επιπλέον, τα οποία μπορούν να ανακατευθυνθούν για να εκτελέσουν μη ασφαλείς λειτουργίες. - Μπορεί να αποκαλύψει στους εισβολείς στοιχεία που δεν είναι εξαγόμενα και παροχείς περιεχομένου.
- Η μετατροπή του URL του
WebView
σεIntent
μπορεί να διευκολύνει μη επιθυμητες ενέργειες.
Εισαγωγές Πελάτη Android και άλλα
Πιθανόν να έχετε ακούσει για αυτού του είδους τις ευπαθείες από το Web. Πρέπει να είστε ιδιαίτερα προσεκτικοί με αυτές τις ευπαθείες σε μια εφαρμογή Android:
- Εισαγωγή SQL: Όταν ασχολείστε με δυναμικές ερωτήσεις ή Παροχείς Περιεχομένου, βεβαιωθείτε ότι χρησιμοποιείτε παραμετροποιημένες ερωτήσεις.
- Εισαγωγή JavaScript (XSS): Βεβαιωθείτε ότι η υποστήριξη JavaScript και Plugin είναι απενεργοποιημένη για οποιοδήποτε WebView (απενεργοποιημένη από προεπιλογή). Περισσότερες πληροφορίες εδώ.
- Συμπερίληψη Τοπικού Αρχείου: Τα WebViews πρέπει να έχουν απενεργοποιημένη την πρόσβαση στο σύστημα αρχείων (ενεργοποιημένη από προεπιλογή) -
(webview.getSettings().setAllowFileAccess(false);)
. Περισσότερες πληροφορίες εδώ. - Αιώνια cookies: Σε πολλές περιπτώσεις, όταν η εφαρμογή Android τερματίζει τη συνεδρία, το cookie δεν ανακλώνται ή μπορεί ακόμη να αποθηκευτεί στο δίσκο
- Ασφαλής σημαία στα cookies
Συμμετέχετε στον Διακομιστή HackenProof Discord για επικοινωνία με έμπειρους χάκερ και κυνηγούς ευρημάτων ασφαλείας!
Εισαγωγές Χάκερ
Συμετέχετε σε περιεχόμενο που εξετάζει την αγωνία και τις προκλήσεις του χάκινγκ
Ειδήσεις Χάκερ σε Πραγματικό Χρόνο
Μείνετε ενήμεροι με τον γρήγορο ρυθμό του κόσμου του χάκινγκ μέσω ειδήσεων και αναλύσεων σε πραγματικό χρόνο
Τελευταίες Ανακοινώσεις
Μείνετε ενήμεροι με τις νεότερες ανακοινώσεις για νέες αμοιβές ευρετηρίων και κρίσιμες ενημερώσεις πλατφόρμας
Συμμετέχετε μαζί μας στο Discord και αρχίστε τη συνεργασία με κορυφαίους χάκερ σήμερα!
docker pull opensecurity/mobile-security-framework-mobsf
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
Σημειώστε ότι το MobSF μπορεί να αναλύσει εφαρμογές Android(apk), IOS(ipa) και Windows(apx) (Οι εφαρμογές Windows πρέπει να αναλυθούν από ένα MobSF που είναι εγκατεστημένο σε έναν υπολογιστή με Windows).
Επίσης, αν δημιουργήσετε ένα αρχείο ZIP με τον πηγαίο κώδικα μιας εφαρμογής Android ή IOS (πηγαίνετε στον ριζικό φάκελο της εφαρμογής, επιλέγετε τα πάντα και δημιουργείτε ένα αρχείο ZIP), το MobSF θα είναι σε θέση να το αναλύσει επίσης.
Το MobSF επίσης σάς επιτρέπει να διαφοροποιήσετε/Συγκρίνετε την ανάλυση και να ενσωματώσετε το VirusTotal (θα χρειαστεί να ορίσετε το κλειδί API σας στο MobSF/settings.py και να το ενεργοποιήσετε: VT_ENABLED = TRUE
VT_API_KEY = <Το API key σας>
VT_UPLOAD = TRUE
). Μπορείτε επίσης να ορίσετε το VT_UPLOAD
σε False
, τότε το hash θα ανέβει αντί για το αρχείο.
Βοηθητική Δυναμική ανάλυση με το MobSF
Το MobSF μπορεί επίσης να είναι πολύ χρήσιμο για τη δυναμική ανάλυση στο Android, αλλά σε αυτήν την περίπτωση θα χρειαστεί να εγκαταστήσετε το MobSF και το genymotion στον υπολογιστή σας (ένα VM ή Docker δεν θα λειτουργήσει). Σημείωση: Πρέπει να ξεκινήσετε πρώτα ένα VM στο genymotion και μετά το MobSF.
Ο δυναμικός αναλυτής του MobSF μπορεί:
- Να ανακτήσει δεδομένα εφαρμογής (URLs, logs, πρόχειρο, στιγμιότυπα που έχετε κάνει, στιγμιότυπα που έχει κάνει το "Exported Activity Tester", emails, βάσεις δεδομένων SQLite, XML αρχεία και άλλα δημιουργημένα αρχεία). Όλα αυτά γίνονται αυτόματα εκτός από τα στιγμιότυπα, όπου πρέπει να πατήσετε όταν θέλετε ένα στιγμιότυπο ή πρέπει να πατήσετε "Exported Activity Tester" για να λάβετε στιγμιότυπα όλων των εξαγόμενων δραστηριοτήτων.
- Καταγράφει την κίνηση HTTPS
- Χρησιμοποιεί το Frida για να αποκτήσει πληροφορίες κατά την εκτέλεση
Από τις εκδόσεις Android > 5, θα ξεκινήσει αυτόματα το Frida και θα ορίσει γενικές ρυθμίσεις proxy για να καταγράψει την κίνηση. Θα καταγράφει μόνο την κίνηση από τη δοκιμαζόμενη εφαρμογή.
Frida
Από προεπιλογή, θα χρησιμοποιήσει επίσης μερικά Scripts του Frida για την παράκαμψη SSL pinning, την ανίχνευση root και την ανίχνευση debugger και για την παρακολούθηση ενδιαφέρουσων APIs.
Το MobSF μπορεί επίσης να εκκινήσει εξαγόμενες δραστηριότητες, να αποκτήσει στιγμιότυπα από αυτές και να τα αποθηκεύσει για την αναφορά.
Για να ξεκινήσετε το δυναμικό τεστ πατήστε το πράσινο κουμπί: "Έναρξη Εργαλείου Ενσωμάτωσης". Πατήστε το "Frida Live Logs" για να δείτε τα logs που δημιουργούνται από τα scripts του Frida και το "Live API Monitor" για να δείτε όλες τις κλήσεις στις συνδεδεμένες μεθόδους, τα ορίσματα που περνούν και τις επιστρεφόμενες τιμές (αυτό θα εμφανιστεί μετά την πίεση του "Έναρξη Εργαλείου Ενσωμάτωσης").
Το MobSF σάς επιτρέπει επίσης να φορτώσετε τα δικά σας Frida scripts (για να στείλετε τα αποτελέσματα των scripts σας στο MobSF χρησιμοποιήστε τη λειτουργία send()
). Διαθέτει επίσης πολλά προγραμματισμένα scripts που μπορείτε να φορτώσετε (μπορείτε να προσθέσετε περισσότερα στο MobSF/DynamicAnalyzer/tools/frida_scripts/others/
), απλά επιλέξτε τα, πατήστε "Φόρτωση" και πατήστε "Έναρξη Εργαλείου Ενσωμάτωσης" (θα μπορείτε να δείτε τα logs αυτών των scripts μέσα στο "Frida Live Logs").
Επιπλέον, έχετε ορισμένες Βοηθητικές λειτουργίες Frida:
- Απαρίθμηση Φορτωμένων Κλάσεων: Θα εκτυπώσει όλες τις φορτωμένες κλάσεις
- Καταγραφή Συμβολοσειρών: Θα εκτυπώσει όλες τις συμβολοσειρές που αιχμαλωτίζονται κατά τη χρήση της εφαρμογής (πολύ θορυβώδες)
- Καταγραφή Συγκρίσεων Συμβολοσειρών: Μπορεί να είναι πολύ χρήσιμο. Θα εμφανίσει τις 2 συμβολοσειρές που συγκρίνονται και αν το αποτέλεσμα ήταν Αληθές ή Ψευδές.
- Απαρίθμηση Μεθόδων Κλάσης: Βάλτε το όνομα της κλάσης (όπως "java.io.File") και θα εκτυπώσει όλες τις μεθόδους της κλάσης.
- Αναζήτηση Προτύπου Κλάσης: Αναζήτηση κλάσεων με βάση το πρότυπο
- Παρακολούθηση Μεθόδων Κλάσης: Παρακολούθηση μιας ολόκληρης κλάσης (δείτε τις εισόδους και εξόδους όλων των μεθόδων της κλάσης). Θυμηθείτε ότι από προεπιλογή το MobSF παρακολουθεί αρκετές ενδιαφέρουσες μεθόδους Android Api.
Αφού επιλέξετε το βοηθητικό μοντέλο που θέλετε να χρησιμοποιήσετε, πρέπει να πατήσετε "Έναρξη Εργαλείου Ενσωμάτωσης" και θα δείτε όλα τα αποτελέσματα στο "Frida Live Logs".
Shell
Το Mobsf σας παρέχει επίσης ένα κέλυφος με ορισμένες εντολές adb, MobSF commands, και κοινές εντολές κέλυφους στο κάτω μέρος της σελίδας δυναμικής ανάλυσης. Κάποιες ενδιαφέρουσες εντολές:
help
shell ls
activities
exported_activities
services
receivers
Εργαλεία HTTP
Όταν καταγράφετε την κίνηση http, μπορείτε να δείτε μια άσχημη προβολή της καταγεγραμμένης κίνησης στο κάτω μέρος του "HTTP(S) Traffic" ή μια πιο όμορφη προβολή στο πράσινο κουμπί "Start HTTPTools". Από τη δεύτερη επιλογή, μπορείτε να στείλετε τα καταγεγραμμένα αιτήματα σε proxies όπως το Burp ή το Owasp ZAP.
Για να το κάνετε αυτό, ενεργοποιήστε το Burp --> απενεργοποιήστε το Intercept --> στο MobSB HTTPTools επιλέξτε το αίτημα --> πατήστε "Send to Fuzzer" --> επιλέξτε τη διεύθυνση του proxy (http://127.0.0.1:8080\).
Αφού ολοκληρώσετε τη δυναμική ανάλυση με το MobSF, μπορείτε να πατήσετε στο "Start Web API Fuzzer" για να fuzz http αιτήματα και να αναζητήσετε ευπάθειες.
{% hint style="info" %} Μετά την εκτέλεση μιας δυναμικής ανάλυσης με το MobSF, οι ρυθμίσεις του proxy μπορεί να είναι μη ρυθμισμένες και δεν θα μπορείτε να τις διορθώσετε από το GUI. Μπορείτε να διορθώσετε τις ρυθμίσεις του proxy κάνοντας:
adb shell settings put global http_proxy :0
{% endhint %}
Υποβοηθούμενη Δυναμική Ανάλυση με το Inspeckage
Μπορείτε να αποκτήσετε το εργαλείο από το Inspeckage.
Αυτό το εργαλείο χρησιμοποιεί μερικά Hooks για να σας ενημερώσει τι συμβαίνει στην εφαρμογή ενώ πραγματοποιείτε μια δυναμική ανάλυση.
Yaazhini
Αυτό είναι ένα εξαιρετικό εργαλείο για να πραγματοποιήσετε στατική ανάλυση με γραφικό περιβάλλον (GUI)
Qark
Αυτό το εργαλείο σχεδιάστηκε για να αναζητήσει αρκετές ευπαθείες ασφάλειας σχετικές με εφαρμογές Android, είτε στο κώδικα πηγής είτε σε συσκευασμένα APKs. Το εργαλείο είναι επίσης ικανό να δημιουργήσει ένα "Proof-of-Concept" εκτελέσιμο APK και ADB εντολές, για να εκμεταλλευτεί μερικές από τις ευπάθειες που βρέθηκαν (Εκτεθειμένες δραστηριότητες, intents, tapjacking...). Όπως και με το Drozer, δεν χρειάζεται ρουτάρισμα της δοκιμαστικής συσκευής.
pip3 install --user qark # --user is only needed if not using a virtualenv
qark --apk path/to/my.apk
qark --java path/to/parent/java/folder
qark --java path/to/specific/java/file.java
ReverseAPK
- Εμφανίζει όλα τα εξαγμένα αρχεία για εύκολη αναφορά
- Αυτόματη αποσυμπίεση αρχείων APK σε μορφή Java και Smali
- Ανάλυση του AndroidManifest.xml για κοινές ευπάθειες και συμπεριφορά
- Στατική ανάλυση πηγαίου κώδικα για κοινές ευπάθειες και συμπεριφορά
- Πληροφορίες συσκευής
- και περισσότερα
reverse-apk relative/path/to/APP.apk
SUPER Android Analyzer
Το SUPER είναι μια εφαρμογή γραμμής εντολών που μπορεί να χρησιμοποιηθεί σε Windows, MacOS X και Linux, η οποία αναλύει αρχεία .apk για την ανίχνευση ευπαθειών. Αυτό το επιτυγχάνει αποσυμπιέζοντας τα APKs και εφαρμόζοντας μια σειρά κανόνων για την ανίχνευση αυτών των ευπαθειών.
Όλοι οι κανόνες εστιάζονται σε ένα αρχείο rules.json
, και κάθε εταιρεία ή δοκιμαστής μπορεί να δημιουργήσει τους δικούς του κανόνες για να αναλύσει αυτό που χρειάζεται.
Κατεβάστε τις τελευταίες δυαδικές εκδόσεις από την σελίδα λήψης
super-analyzer {apk_file}
StaCoAn
Το StaCoAn είναι ένα εργαλείο crossplatform το οποίο βοηθά προγραμματιστές, κυνηγούς ευρημάτων ασφαλείας και ηθικούς χάκερ να εκτελούν στατική ανάλυση κώδικα σε κινητές εφαρμογές.
Το concept είναι ότι σύρετε και αφήνετε το αρχείο της κινητής εφαρμογής σας (ένα αρχείο .apk ή .ipa) στην εφαρμογή StaCoAn και αυτή θα δημιουργήσει ένα οπτικό και φορητό αναφορά για εσάς. Μπορείτε να προσαρμόσετε τις ρυθμίσεις και τις λίστες λέξεων για να έχετε μια εξατομικευμένη εμπειρία.
Κατεβάστε την τελευταία έκδοση:
./stacoan
AndroBugs
Το AndroBugs Framework είναι ένα σύστημα ανάλυσης ευπαθειών για το Android που βοηθά τους προγραμματιστές ή χάκερ να βρουν πιθανές ευπαθείες ασφάλειας σε εφαρμογές Android.
Εκδόσεις Windows
python androbugs.py -f [APK file]
androbugs.exe -f [APK file]
Androwarn
Androwarn είναι ένα εργαλείο του οποίου ο βασικός στόχος είναι να ανιχνεύσει και να προειδοποιήσει τον χρήστη για πιθανή κακόβουλη συμπεριφορά που αναπτύχθηκε από μια εφαρμογή Android.
Η ανίχνευση πραγματοποιείται με τη στατική ανάλυση του Dalvik bytecode της εφαρμογής, που αναπαρίσταται ως Smali, με τη βιβλιοθήκη androguard
.
Αυτό το εργαλείο αναζητά κοινή συμπεριφορά "κακών" εφαρμογών όπως: Διαρροή ταυτοτήτων τηλεφωνίας, Ανάκτηση ροής ήχου/βίντεο, Τροποποίηση δεδομένων PIM, Αυθαίρετη εκτέλεση κώδικα...
python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
Πλαίσιο MARA
Το MARA είναι ένα Πλαίσιο Ανάλυσης και Αντιστροφής Κινητών Εφαρμογών. Είναι ένα εργαλείο που συγκεντρώνει συχνά χρησιμοποιούμενα εργαλεία ανάλυσης και αντιστροφής κινητών εφαρμογών, για να βοηθήσει στον έλεγχο των κινητών εφαρμογών έναντι των απειλών ασφάλειας κινητών της OWASP. Τον στόχο του είναι να κάνει αυτήν την εργασία πιο εύκολη και φιλική προς τους προγραμματιστές κινητών εφαρμογών και τους επαγγελματίες ασφάλειας.
Είναι σε θέση να:
- Εξάγει κώδικα Java και Smali χρησιμοποιώντας διαφορετικά εργαλεία
- Αναλύει APK χρησιμοποιώντας: smalisca, ClassyShark, androbugs, androwarn, APKiD
- Εξάγει προσωπικές πληροφορίες από το APK χρησιμοποιώντας regexps.
- Αναλύει το Manifest.
- Αναλύει τους εντοπισμένους τομείς χρησιμοποιώντας: pyssltest, testssl και whatweb
- Αποκρυπτογραφεί το APK μέσω του apk-deguard.com
Koodous
Χρήσιμο για την ανίχνευση κακόβουλου λογισμικού: https://koodous.com/
Κρυπτογράφηση/Αποκρυπτογράφηση κώδικα
Σημειώστε ότι ανάλογα με την υπηρεσία και τη διαμόρφωση που χρησιμοποιείτε για την κρυπτογράφηση του κώδικα, τα μυστικά μπορεί να κρυπτογραφηθούν ή όχι.
ProGuard
Από την Wikipedia: Το ProGuard είναι ένα εργαλείο γραμμής εντολών ανοικτού κώδικα που συρρικνώνει, βελτιστοποιεί και κρυπτογραφεί τον κώδικα Java. Είναι σε θέση να βελτιστοποιήσει το bytecode καθώς και να ανιχνεύσει και να αφαιρέσει αχρησιμοποίητες οδηγίες. Το ProGuard είναι δωρεάν λογισμικό και διανέμεται υπό τη Γενική Δημόσια Άδεια GNU, έκδοση 2.
Το ProGuard διανέμεται ως μέρος του Android SDK και εκτελείται κατά τη δημιουργία της εφαρμογής σε λειτουργία κυκλοφορίας.
DexGuard
Βρείτε έναν οδηγό βήμα προς βήμα για την αποκρυπτογράφηση του apk στο https://blog.lexfo.fr/dexguard.html
(Από αυτόν τον οδηγό) Την τελευταία φορά που ελέγξαμε, ο τρόπος λειτουργίας του Dexguard ήταν:
- φόρτωση ενός πόρου ως InputStream;
- τροφοδοσία του αποτελέσματος σε έναν τάξη που κληρονομεί από το FilterInputStream για να το αποκρυπτογραφήσει;
- κάνει μερική αχρήστη κρυπτογράφηση για να σπαταλήσει λίγα λεπτά από τον χρόνο ενός αντιστροφέα;
- τροφοδοσία του αποκρυπτογραφημένου αποτελέσματος σε ένα ZipInputStream για να λάβει ένα αρχείο DEX;
- τέλος, φόρτωση του αποτελέσματος DEX ως ένας Πόρος χρησιμοποιώντας τη μέθοδο
loadDex
.
DeGuard
Το DeGuard αντιστρέφει τη διαδικασία της κρυπτογράφησης που πραγματοποιείται από τα εργαλεία κρυπτογράφησης Android. Αυτό επιτρέπει πολλές αναλύσεις ασφάλειας, συμπεριλαμβανομένης της επιθεώρησης κώδικα και της πρόβλεψης βιβλιοθηκών.
Μπορείτε να μεταφορτώσετε ένα κρυπτογραφημένο APK στην πλατφόρμα τους.
Simplify
Είναι ένα γενικό αποκρυπτογραφητή Android. Το Simplify εκτελεί εικονικά μια εφαρμογή για να κατανοήσει τη συμπεριφορά της και στη συνέχεια προσπαθεί να βελτιστοποιήσει τον κώδικα ώστε να συμπεριφέρεται με τον ίδιο τρόπο αλλά να είναι πιο εύκολος για έναν άνθρωπο να κατανοήσει. Κάθε τύπος βελτιστοποίησης είναι απλός και γενικός, οπότε δεν έχει σημασία ποιος συγκεκριμένος τύπος κρυπτογράφησης χρησιμοποιείται.
APKiD
Το APKiD σας δίνει πληροφορίες σχετικά με το πώς δημιουργήθηκε ένα APK. Αναγνωρίζει πολλούς μεταγλωττιστές, συσκευαστές, κρυπτογραφητές και άλλα περίεργα πράγματα. Είναι το PEiD για Android.
Μη Αυτόματο
Εργαστήρια
Androl4b
Το AndroL4b είναι μια εικονική μηχανή ασφαλείας Android βασισμένη στο ubuntu-mate που περιλαμβάνει τη συλλογή των πιο πρόσφατων πλαισίων, οδηγιών και εργαστηρίων από διάφορους ειδικούς ασφάλειας και ερευνητές για αντιστροφή μηχανισμών και ανάλυση κακόβουλου λογισμικού.
Αναφορές
- https://owasp.org/www-project-mobile-app-security/
- https://appsecwiki.com/#/ Είναι μια μεγάλη λίστα πόρων
- https://maddiestone.github.io/AndroidAppRE/ Γρήγορο μάθημα Android
- https://manifestsecurity.com/android-application-security/
- https://github.com/Ralireza/Android-Security-Teryaagh
- https://www.youtube.com/watch?v=PMKnPaGWxtg&feature=youtu.be&ab_channel=B3nacSec
Ακόμα να δοκιμάσετε
Εγγραφείτε στο HackenProof Discord server για να επικοινωνήσετε με έμπειρους χάκερ και κυνηγούς ευρημάτων ευπρόσδεκτων!
Εισαγωγές Χάκινγκ
Ασχοληθείτε με περιεχόμενο που εξερευνά την αγωνία και τις προκλήσεις του χάκινγκ
Ειδήσεις Χάκινγκ σε Πραγματικό Χρόνο
Μείνετε ενήμεροι με τον γρήγορο ρυθμό του κόσμου του χάκινγκ μέσω ειδήσεων και αναλύσεων σε πραγματικό χρόνο
Τελευταίες Ανακοινώσεις
Μείνετε ενήμεροι με τις νεότερες ανακοινώσεις για νέες αμοιβές ευρημάτων και κρίσιμες ενημερώσεις πλατφόρμας
Ελάτε στο Discord και αρχίστε να συνεργάζεστε με κορυφαίους χάκερ σήμερα!