.. | ||
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/
- Εξαγωγή 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
Στατική Ανάλυση
Καταρχάς, για να αναλύσετε ένα 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/ μπορούν να καθορίσουν λεπτομέρειες ασφάλειας όπως ακίνητα πιν και ρυθμίσεις κυκλοφορίας HTTP. Ένα παράδειγμα είναι η επιτροπή κυκλοφορίας HTTP για συγκεκριμένους τομείς. - Εξαγόμενες Δραστηριότητες και Υπηρεσίες: Η εντοπισμός εξαγόμενων δραστηριοτήτων και υπηρεσιών στο manifest μπορεί να αναδείξει συστατικά που ενδέχεται να χρησιμοποιηθούν κατάχρηση. Η περαιτέρω ανάλυση κατά τη δυναμική δοκιμή μπορεί να αποκαλύψει πώς να εκμεταλλευτείτε αυτά τα στοιχεία.
- Παροχείς Περιεχομένου και 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 για να επικοινωνήσετε με έμπειρους χάκερ και κυνηγούς ευρημάτων ασφαλείας!
Εισαγωγές Χάκερ
Ασχοληθείτε με περιεχόμενο που εξερευνά την αγωνία και τις προκλήσεις του χάκινγκ
Ειδήσεις Χάκερ σε Πραγματικό Χρόνο
Μείνετε ενήμεροι με τον γρήγορο ρυθμό του κόσμου του χάκινγκ μέσω ειδήσεων και αναλύσεων σε πραγματικό χρόνο
Τελευταίες Ανακοινώσεις
Μείνετε ενήμεροι με τις νεότερες ανακοινώσεις για νέα βραβεία ευρημάτων και κρίσιμες ενημερώσεις πλατφόρμας
Συμμετέχετε στο Discord και αρχίστε να συνεργάζεστε με κορυφαίους χάκερ σήμερα!
Δυναμική Ανάλυση
Καταρχάς, χρειάζεστε ένα περιβάλλον όπου μπορείτε να εγκαταστήσετε την εφαρμογή και όλο το περιβάλλον (πιστοποιητικό Burp CA, Drozer και Frida κυρίως). Συνεπώς, ένα ριζωμένο συσκευή (εμούλαρ ή όχι) είναι απαραίτητο.
Διαδικτυακή Δυναμική Ανάλυση
Μπορείτε να δημιουργήσετε έναν δωρεάν λογαριασμό στο: https://appetize.io/. Αυτή η πλατφόρμα σάς επιτρέπει να ανεβάσετε και εκτελέσετε APKs, είναι χρήσιμη για να δείτε πώς συμπεριφέρεται ένα apk.
Μπορείτε ακόμη να δείτε τα logs της εφαρμογής σας στο web και να συνδεθείτε μέσω adb.
Χάρη στη σύνδεση ADB
Χρήση φυσικής συσκευής
Πρέπει να ενεργοποιήσετε τις επιλογές αποσφαλμάτωσης και θα ήταν καλό αν μπορείτε να την ρουτάρετε:
- Ρυθμίσεις.
- (Από Android 8.0) Επιλέξτε Σύστημα.
- Επιλέξτε Σχετικά με το τηλέφωνο.
- Πατήστε Αριθμός έκδοσης 7 φορές.
- Επιστρέψτε πίσω και θα βρείτε τις Επιλογές προγραμματιστή.
Αφού εγκαταστήσετε την εφαρμογή, το πρώτο πράγμα που πρέπει να κάνετε είναι να τη δοκιμάσετε και να ερευνήσετε τι κάνει, πώς λειτουργεί και να εξοικειωθείτε με αυτήν.
Θα πρότεινα να εκτελέσετε αυτήν την αρχική δυναμική ανάλυση χρησιμοποιώντας τη δυναμική ανάλυση του MobSF + pidcat, έτσι θα μπορέσουμε να μάθουμε πώς λειτουργεί η εφαρμογή ενώ το MobSF καταγράφει πολλά ενδιαφέροντα δεδομένα που μπορείτε να ελέγξετε αργότερα.
Ανεπιθύμητη Διαρροή Δεδομένων
Καταγραφή
Οι προγραμματιστές πρέπει να είναι προσεκτικοί ώστε να μην αποκαλύπτουν δημόσια πληροφορίες αποσφαλμάτωσης, καθώς αυτό μπορεί να οδηγήσει σε διαρροές ευαίσθητων δεδομένων. Τα εργαλεία pidcat και adb logcat
συνιστώνται για την παρακολούθηση των αρχείων καταγραφής της εφαρμογής για την αναγνώριση και προστασία ευαίσθητων πληροφοριών. Το Pidcat προτιμάται για την ευκολία χρήσης και την αναγνωσιμότητά του.
{% hint style="warning" %}
Σημειώστε ότι από νεότερες εκδόσεις από Android 4.0, οι εφαρμογές μπορούν να έχουν πρόσβαση μόνο στα δικά τους αρχεία καταγραφής. Έτσι, οι εφαρμογές δεν μπορούν να έχουν πρόσβαση στα αρχεία καταγραφής άλλων εφαρμογών.
Παρ' όλα αυτά, εξακολουθεί να συνιστάται να μην καταγράφετε ευαίσθητες πληροφορίες.
{% endhint %}
Αποθήκευση Προσωπικών Δεδομένων με Αντιγραφή/Επικόλληση
Το πλαίσιο βασισμένο στο πρόχειρο του Android επιτρέπει τη λειτουργία αντιγραφής-επικόλλησης σε εφαρμογές, αλλά αποτελεί κίνδυνο καθώς άλλες εφαρμογές μπορούν να έχουν πρόσβαση στο πρόχειρο, εκθέτοντας πιθανώς ευαίσθητα δεδομένα. Είναι ζωτικής σημασίας να απενεργοποιήσετε τις λειτουργίες αντιγραφής/επικόλλησης για ευαίσθητες ενότητες μιας εφαρμογής, όπως λεπτομέρειες πιστωτικής κάρτας, για να αποτρέψετε διαρροές δεδομένων.
Αρχεία Καταγραφής Κρασών
Εάν μια εφαρμογή κρασάρει και αποθηκεύει καταγραφές, αυτές οι καταγραφές μπορούν να βοηθήσουν τους επιτιθέμενους, ειδικά όταν η εφαρμογή δεν μπορεί να ανασυνταχθεί. Για να μειώσετε αυτόν τον κίνδυνο, αποφύγετε την καταγραφή σε περιπτώσεις κρασμάτων, και αν πρέπει οι καταγραφές να μεταδοθούν μέσω του δικτύου, βεβαιωθείτε ότι αποστέλλονται μέσω ενός καναλιού SSL για ασφάλεια.
Ως pentester, προσπαθήστε να ρίξετε μια ματιά σε αυτές τις καταγραφές.
Δεδομένα Αναλυτικών Που Στέλνονται σε 3η Μεριδα
Οι εφαρμογές συχνά ενσωματώνουν υπηρεσίες όπως το Google Adsense, το οποίο μπορεί ακούσια να διαρρεύσει ευαίσθητα δεδομένα λόγω εσφαλμένης υλοποίησης από τους προγραμματιστές. Για να εντοπίσετε πιθανές διαρροές δεδομένων, είναι συμβουλευτικό να παρεμβάλετε την κίνηση της εφαρμογής και να ελέγξετε εάν στέλνονται ευαίσθητες πληροφορίες σε υπηρεσίες τρίτων.
Βάσεις Δεδομένων SQLite
Οι περισσότερες εφαρμογές θα χρησιμοποιούν εσωτερικές βάσεις δεδομένων SQLite για την αποθήκευση πληροφοριών. Κατά τη διάρκεια του pentest εξετάστε τις δημιουργημένες βάσεις δεδομένων, τα ονόματα των πινάκων και των στηλών και όλα τα δεδομένα που αποθηκεύονται επειδή μπορείτε να βρείτε ευαίσθητες πληροφορίες (που θα αποτελούσαν μια ευπάθεια).
Οι βάσεις δεδομένων πρέπει να βρίσκονται στον φάκελο /data/data/το.όνομα.του.πακέτου/βάσεις
όπως /data/data/com.mwr.example.sieve/databases
Αν η βάση δεδομένων αποθηκεύει εμπιστευτικές πληροφορίες και είναι κρυπτογραφημένη αλλά μπορείτε να βρείτε τον κωδικό πρόσβασης μέσα στην εφαρμογή, παραμένει μια ευπάθεια.
Απαριθμήστε τους πίνακες χρησιμοποιώντας την εντολή .tables
και απαριθμήστε τις στήλες των πινάκων με την εντολή .schema <όνομα_πίνακα>
Drozer (Δραστηριότητες Εκμετάλλευσης, Παροχείς Περιεχομένου και Υπηρεσίες)
Από τα Έγγραφα του Drozer: Το Drozer σάς επιτρέπει να υιοθετήσετε το ρόλο μιας εφαρμογής Android και να αλληλεπιδράτε με άλλες εφαρμογές. Μπορεί να κάνει οτιδήποτε μια εγκατεστημένη εφαρμογή μπορεί να κάνει, όπως να χρησιμοποιήσει τον μηχανισμό Επικοινωνίας Μεταξύ Διεργασιών (IPC) του Android και να αλληλεπιδρά με το υποκείμενο λειτουργικό σύστημα.
Το Drozer είναι ένα χρήσιμο εργαλείο για την εκμετάλλευση εξαγόμενων δραστηριοτήτων, εξαγόμενων υπηρεσιών και Παρόχων Περιεχομένου όπως θα μάθετε στις ακόλουθες ενότητες.
Εκμετάλλευση εξαγόμενων Δραστηριοτήτων
Διαβάστε αυτό αν θέλετε να ανανεώσετε τι είναι μια Δραστηριότητα Android.
Θυμηθείτε επίσης ότι ο κώδικας μιας δραστηριότητας ξεκινά στη μέθοδο onCreate
.
Παράκαμψη Εξουσιοδότησης
Όταν μια Δραστηριότητα είναι εξαγόμενη, μπορείτε να καλέσετε την οθόνη της από μια εξωτερική εφαρμογή. Επο
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 μπορείτε να χρησιμοποιήσετε αυτό το script του 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
Έγχυση Πρόθεσης
Οι προγραμματιστές συχνά δημιουργούν προξενικά στοιχεία όπως δραστηριότητες, υπηρεσίες και δέκτες εκπομπής που χειρίζονται αυτές τις Προθέσεις και τις περνούν σε μεθόδους όπως startActivity(...)
ή sendBroadcast(...)
, κάτι που μπορεί να είναι επικίνδυνο.
Ο κίνδυνος έγκειται στο να επιτρέπετε στους επιτιθέμενους να ενεργοποιούν μη εξαγόμενα στοιχεία εφαρμογής ή να έχουν πρόσβαση σε ευαίσθητους παροχείς περιεχομένου με την αποκατεύθυνση αυτών των Προθέσεων. Ένα ενδεικτικό παράδειγμα είναι η μετατροπή διευθύνσεων URL σε αντικείμενα Intent
από το στοιχείο WebView
μέσω της Intent.parseUri(...)
και στη συνέχεια η εκτέλεσή τους, που μπορεί να οδηγήσει σε κακόβουλες ενέργειες μέσω της έγχυσης κακόβουλων Προθέσεων.
Βασικά Σημεία
- Έγχυση Πρόθεσης είναι παρόμοια με το πρόβλημα Ανοικτής Ανακατεύθυνσης στο web.
- Οι εκμεταλλεύσεις περιλαμβάνουν τη μετάδοση αντικειμένων
Intent
ως επιπλέον παραμέτρους, που μπορούν να ανακατευθυνθούν για να εκτελέσουν μη ασφαλείς λειτουργίες. - Μπορεί να αποκαλύψει μη εξαγόμενα στοιχεία και παροχείς περιεχομένου σε επιτιθέμενους.
- Η μετατροπή URL του
WebView
σεIntent
μπορεί να διευκολύνει μη επιθυμητες ενέργειες.
Ενσωματωμένες Επιθέσεις Πελάτη Android και άλλες
Πιθανόν να έχετε ακούσει για αυτού του είδους τις ευπάθειες από το Web. Πρέπει να είστε ιδιαίτερα προσεκτικοί με αυτές τις ευπάθειες σε μια εφαρμογή Android:
- Έγχυση SQL: Όταν ασχολείστε με δυναμικές ερωτήσεις ή Παροχείς Περιεχομένου, βεβαιωθείτε ότι χρησιμοποιείτε παραμετροποιημένες ερωτήσεις.
- Έγχυση JavaScript (XSS): Βεβαιωθείτε ότι η υποστήριξη JavaScript και Προσθέτων είναι απενεργοποιημένη για οποιοδήποτε WebView (απενεργοποιημένη από προεπιλογή). Περισσότερες πληροφορίες εδώ.
- Συμπερίληψη Τοπικού Αρχείου: Τα WebViews πρέπει να έχουν απενεργοποιημένη την πρόσβαση στο σύστημα αρχείων (ενεργοποιημένη από προεπιλογή) -
(webview.getSettings().setAllowFileAccess(false);)
. Περισσότερες πληροφορίες εδώ. - Αιώνια cookies: Σε πολλές περιπτώσεις, όταν η εφαρμογή Android τερματίζει τη συνεδρία, το cookie δεν ανακλείται ή ακόμα και μπορεί να αποθηκευτεί στο δίσκο
- Ασφαλής σημαία στα cookies
Συμμετέχετε στο HackenProof Discord server για επικοινωνία με έμπειρους χάκερ και κυνηγούς ευρημάτων ασφαλείας!
Εισαγωγή στο Hacking
Ασχοληθείτε με περιεχόμενο που εξερευνά την αγωνία και τις προκλήσεις του χάκινγκ
Ειδήσεις Χάκινγκ σε Πραγματικό Χρόνο
Μείνετε ενημερωμένοι με τον γρήγορο ρυθμό του κόσμου του χάκινγκ μέσω ειδήσεων και αναλύσεων σε πραγματικό χρόνο
Τελευταίες Ανακοινώσεις
Μείνετε ενήμεροι με τις νεότερες ανακοινώσεις για νέες αμοιβές ευρημάτων και κρίσιμες ενημερώσεις πλατφόρμας
Συμμετέχετε στο Discord και αρχίστε τη συνεργασία με κορυφαίους χάκερ σήμερα!
Αυτόματη Ανάλυση
MobSF
Στατική ανάλυση
Αξιολόγηση ευπαθειών της εφαρμογής χρησιμοποιώντας ένα ωραίο web-based μπροστινό μέρος. Μπορείτε επίσης να πραγματοποιήσετε δυναμική ανάλυση (αλλά πρέπει να προετοιμάσετε το περιβάλλον).
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 σας>
VT_UPLOAD = TRUE
). Μπορείτε επίσης να ορίσετε το VT_UPLOAD
σε False
, τότε το hash θα ανέβει αντί για το αρχείο.
Βοηθητική Δυναμική Ανάλυση με το MobSF
Το MobSF μπορεί επίσης να είναι πολύ χρήσιμο για δυναμική ανάλυση στο Android, αλλά σε αυτήν την περίπτωση θα χρειαστεί να εγκαταστήσετε το MobSF και το genymotion στον υπολογιστή σας (ένα VM ή Docker δεν θα λειτουργήσει). Σημείωση: Πρέπει να ξεκινήσετε πρώτα ένα VM στο genymotion και μετά το MobSF.
Ο δυναμικός αναλυτής του MobSF μπορεί:
- Να ανακτήσει δεδομένα εφαρμογής (URLs, logs, πρόχειρο, στιγμιότυπα που έχετε κάνει, στιγμιότυπα που έχουν γίνει από τον "Δοκιμαστή Δραστηριοτήτων Εξαγωγής", emails, βάσεις δεδομένων SQLite, XML αρχεία και άλλα δημιουργημένα αρχεία). Όλα αυτά γίνονται αυτόματα εκτός από τα στιγμιότυπα, όπου πρέπει να πατήσετε όταν θέλετε ένα στιγμιότυπο ή πρέπει να πατήσετε "Δοκιμαστής Δραστηριοτήτων Εξαγωγής" για να λάβετε στιγμιότυπα όλων των εξαγόμενων δραστηριοτήτων.
- Καταγράφει την κίνηση HTTPS
- Χρησιμοποιεί το Frida για να αποκτήσει πληροφορίες κατά την εκτέλεση
Από τις εκδόσεις Android > 5, θα ξεκινήσει αυτόματα το Frida και θα ορίσει γενικές ρυθμίσεις proxy για να καταγράψει την κίνηση. Θα καταγράφει μόνο την κίνηση από τη δοκιμαζόμενη εφαρμογή.
Frida
Από προεπιλογή, θα χρησιμοποιήσει κάποια Scripts του Frida για παράκαμψη SSL pinning, ανίχνευση root και ανίχνευση debugger και για παρακολούθηση ενδιαφέρουσων APIs.
Το MobSF μπορεί επίσης να εκκινήσει εξαγόμενες δραστηριότητες, να αποκτήσει στιγμιότυπα από αυτές και να τα αποθηκεύσει για την αναφορά.
Για να ξεκινήσετε το δυναμικό τεστ πατήστε το πράσινο κουμπί: "Έναρξη Εργαλείου Ενσωμάτωσης". Πατήστε το "Ζωντανά Αρχεία Καταγραφής Frida" για να δείτε τα αρχεία καταγραφής που δημιουργούνται από τα scripts του Frida και "Ζωντανός Παρακολούθησης API" για να δείτε όλες τις κλήσεις στις μεθόδους που έχουν συνδεθεί, τα ορίσματα που περνούν και τις επιστρεφόμενες τιμές (αυτό θα εμφανιστεί μετά την πίεση του "Έναρξη Εργαλείου Ενσωμάτωσης").
Το MobSF σάς επιτρέπει επίσης να φορτώσετε τα δικά σας scripts του Frida (για να στείλετε τα αποτελέσματα των scripts σας στο MobSF χρησιμοποιήστε τη λειτουργία send()
). Διαθέτει επίσης προγραμματισμένα scripts που μπορείτε να φορτώσετε (μπορείτε να προσθέσετε περισσότερα στο MobSF/DynamicAnalyzer/tools/frida_scripts/others/
), απλά επιλέξτε τα, πατήστε "Φόρτωση" και πατήστε "Έναρξη Εργαλείου Ενσωμάτωσης" (θα μπορείτε να δείτε τα αρχεία καταγραφής αυτών των scripts μέσα στο "Ζωντανά Αρχεία Καταγραφής Frida").
Επιπλέον, έχετε ορισμένες Βοηθητικές Λειτουργίες Frida:
- Απαρίθμηση Φορτωμένων Κλάσεων: Θα εκτυπώσει όλες τις φορτωμένες κλάσεις
- Καταγραφή Συμβολοσειρών: Θα εκτυπώσει όλες τις συμβολοσειρές που χρησιμοποιούνται κατά τη χρήση της εφαρμογής (πολύ θορυβώδες)
- Καταγραφή Συγκρίσεων Συμβολοσειρών: Μπορεί να είναι πολύ χρήσιμο. Θα εμφανίσει τις 2 συμβολοσειρές που συγκρίνονται και αν το αποτέλεσμα ήταν Αληθές ή Ψευδές.
- Απαρίθμηση Μεθόδων Κλάσης: Εισάγετε το όνομα της κλάσης (όπως "java.io.File") και θα εκτυπώσει όλες τις μεθόδους της κλάσης.
- Αναζήτηση Προτύπου Κλάσης: Αναζήτηση κλάσεων με βάση το πρότυπο
- Παρακολούθηση Μεθόδων Κλάσης: Παρακολούθηση μιας ολόκληρης κλάσης (δείτε τις εισόδους και εξόδους όλων των μεθόδων της κλάσης). Θυμηθείτε ότι από προεπιλογή το MobSF παρακολουθεί αρκετές ενδιαφέρουσες μεθόδους Android Api.
Αφού επιλέξετε το βοηθητικό μοντέλο που θέλετε να χρησιμοποιήσετε, πρέπει να πατήσετε "Έναρξη Εργαλείου Ενσωμάτωσης" και θα δείτε όλα τα αποτελέσματα στα "Ζωντανά Αρχεία Καταγραφής Frida".
Κέλυφος
Το Mobsf σας παρέχει επίσης ένα κέλυφος με ορισμένες εντολές adb, εντολές MobSF και κοινές εντολές κέλυφους στο κάτω μέρος της σελίδας δυναμικής ανάλυσης. Κάποιες ενδιαφέρουσες εντολές:
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 και αρχίστε να συνεργάζεστε με κορυφαίους χάκερ σήμερα!