.. | ||
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 (HackTricks AWS Red Team Expert)!
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
- Αν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF Ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε The PEASS Family, τη συλλογή μας από αποκλειστικά NFTs
- Συμμετάσχετε στη 💬 ομάδα Discord ή στη ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @carlospolopm.
- Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.
Συμμετάσχετε στον διακομιστή HackenProof Discord για να επικοινωνήσετε με έμπειρους χάκερ και κυνηγούς ευρημάτων ασφαλείας!
Εισαγωγή στο Χάκινγκ
Ασχοληθείτε με περιεχόμενο που εξερευνά τον ενθουσιασμό και τις προκλήσεις του χάκινγκ
Ειδήσεις Χάκινγκ σε Πραγματικό Χρόνο
Μείνετε ενημερωμένοι με τον γρήγορο ρυθμό του κόσμου του χάκινγκ μέσω ειδήσεων και αναλύσεων σε πραγματικό χρόνο
Τελευταίες Ανακοινώσεις
Μείνετε ενημερωμένοι με τις νεότερες ευρήματα ασφαλείας που ξεκινούν και τις κρίσιμες ενημερώσεις των πλατφορμών
Συμμετέχετε στο 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 Commands για να μάθετε πώς να χρησιμοποιήσετε το adb.
Smali
Μερικές φορές είναι ενδιαφέρον να τροποποιήσετε τον κώδικα της εφαρμογής για να έχετε πρόσβαση σε κρυφές πληροφορίες (ίσως καλά κρυπτογραφημένους κωδικούς πρόσβασης ή σημαίες). Στη συνέχεια, μπορεί να είναι ενδιαφέρον να αποθεκεύσετε το apk, να τροποποιήσετε τον κώδικα και να τον ανακατασκευάσετε.
Σε αυτό το εκπαιδευτικό εγχειρίδιο μπορείτε να μάθετε πώς να αποθεκεύσετε και να ανακατασκευάσετε τον κώδικα Smali με τη νέα λειτουργικότητα. Αυτό μπορεί να είναι πολύ χρήσιμο ως μια εναλλακτική λύση για διάφορες δοκιμές κατά τη διάρκεια της δυναμικής ανάλυσης που θα παρουσιαστούν. Συνεπώς, να έχετε πάντα αυτήν τη δυνατότητα υπόψη.
Άλλα ενδιαφέροντα κόλπα
- Πλαστογραφία της τοποθεσίας σας στο Play Store
- Λήψη APK: 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
Δώστε ιδιαίτερη προσοχή στα URLs του Firebase και ελέγξτε αν έχει κακή διαμόρφωση. Περισσότερες πληροφορίες για το τι είναι το Firebase και πώς να το εκμεταλλευτείτε εδώ.
Βασική κατανόηση της εφαρμογής - Manifest.xml, strings.xml
Η εξέταση των αρχείων Manifest.xml και strings.xml μιας εφαρμογής μπορεί να αποκαλύψει πιθανές ευπάθειες ασφάλειας. Αυτά τα αρχεία μπορούν να ανακτηθούν χρησιμοποιώντας απομοιωτές ή με μετονομασία της κατάληξης του αρχείου APK σε .zip και στη συνέχεια αποσυμπίεση του.
Ευπάθειες που εντοπίζονται από το Manifest.xml περιλαμβάνουν:
-
Εφαρμογές που μπορούν να αποσφαλματώνονται: Οι εφαρμογές που έχουν οριστεί ως αποσφαλματώσιμες (
debuggable="true"
) στο αρχείο Manifest.xml αποτελούν κίνδυνο καθώς επιτρέπουν συνδέσεις που μπορούν να οδηγήσουν σε εκμετάλλευση. Για περαιτέρω κατανόηση σχετικά με το πώς να εκμεταλλευτείτε αποσφαλματώσιμες εφαρμογές, ανατρέξτε σε έναν οδηγό για τον εντοπισμό και την εκμετάλλευση αποσφαλματώσιμων εφαρμογών σε μια συσκευή. -
Ρυθμίσεις Αντιγράφων Ασφαλείας: Το χαρακτηριστικό
android:allowBackup="false"
θα πρέπει να ορίζεται ρητά για εφαρμογές που ασχολούνται με ευαίσθητες πληροφορίες, προκειμένου να αποτραπεί η μη εξουσιοδοτημένη δημιουργία αντιγράφων ασφαλείας μέσω adb, ειδικά όταν η ενεργοποίηση αποσφαλμάτωσης USB είναι ενεργοποιημένη. -
Ασφάλεια Δικτύου: Προσαρμοσμένες ρυθμίσεις ασφάλειας δικτύου (
android:networkSecurityConfig="@xml/network_security_config"
) στο res/xml/ μπορούν να καθορίσουν λεπτομέρειες ασφάλειας, όπως ακίνητα πιστοποιητικά και ρυθμίσεις κίνησης HTTP. Ένα παράδειγμα είναι η επιτροπή κίνησης HTTP για συγκεκριμένους τομείς. -
Εξαγόμενες Δραστηριότητες και Υπηρεσίες: Η εντοπισμός εξαγόμενων δραστηριοτήτων και υπηρεσιών στον προγραμματισμό μπορεί να αποκαλύψει συστατικά που μπορεί να καταχραστούν. Περαιτέρω ανάλυση κατά τη δυναμική δοκιμή μπορεί να αποκαλύψει πώς να εκμεταλλευτείτε αυτά τα συστατικά.
-
Παροχείς Περιεχομένου και FileProviders: Οι αποκαλυπτόμενοι παροχείς περιεχομένου μπορούν να επιτρέψουν μη εξουσιοδοτημένη πρόσβαση ή τροποποίηση δεδομένων. Η διαμόρφωση των FileProviders πρέπει επίσης να ελεγχθεί.
-
Δέκτες Εκπομπής και Σχήματα URL: Αυτά τα συστατικά μπορούν να εκμεταλλευτούν για εκμετάλλευση, μ
SSLSocketFactory sf = new cc(trustStore);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
Ένας καλός τρόπος για να δοκιμάσετε αυτό είναι να προσπαθήσετε να καταγράψετε την κίνηση χρησιμοποιώντας έναν proxy όπως το Burp χωρίς να εξουσιοδοτήσετε το Burp CA μέσα στη συσκευή. Επίσης, μπορείτε να δημιουργήσετε ένα πιστοποιητικό με το Burp για ένα διαφορετικό όνομα κεντρικού υπολογιστή και να το χρησιμοποιήσετε.
Κατεστραμμένη Κρυπτογραφία
Ανεπαρκής Διαχείριση Κλειδιών
Ορισμένοι προγραμματιστές αποθηκεύουν ευαίσθητα δεδομένα στην τοπική αποθήκευση και τα κρυπτογραφούν με ένα κλειδί που έχει καθοριστεί/προβλέψιμο στον κώδικα. Αυτό δεν θα έπρεπε να γίνεται, καθώς η ανάκτηση αυτών των εμπιστευτικών πληροφοριών μπορεί να επιτραπεί με ανάποδη μηχανική.
Χρήση Μη Ασφαλών και/ή Αποσυρμένων Αλγορίθμων
Οι προγραμματιστές δεν θα έπρεπε να χρησιμοποιούν αποσυρμένους αλγορίθμους για να πραγματοποιούν ελέγχους εξουσιοδότησης, αποθήκευσης ή αποστολής δεδομένων. Ορισμένοι από αυτούς τους αλγορίθμους είναι: 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 είναι ικανό να βρει **ευ
Χρήση φυσικής συσκευής
Πρέπει να ενεργοποιήσετε τις επιλογές αποσφαλμάτωσης και θα ήταν καλό αν μπορούσατε να την ρουτάρετε:
- Ρυθμίσεις.
- (Από το Android 8.0) Επιλέξτε Σύστημα.
- Επιλέξτε Σχετικά με το τηλέφωνο.
- Πατήστε Αριθμός έκδοσης 7 φορές.
- Επιστρέψτε πίσω και θα βρείτε τις Επιλογές προγραμματιστή.
Αφού εγκαταστήσετε την εφαρμογή, το πρώτο πράγμα που πρέπει να κάνετε είναι να τη δοκιμάσετε και να ερευνήσετε τι κάνει, πώς λειτουργεί και να την εξοικειωθείτε με αυτήν.
Θα σας προτείνω να εκτελέσετε αυτήν την αρχική δυναμική ανάλυση χρησιμοποιώντας τη δυναμική ανάλυση MobSF + pidcat, έτσι θα μπορέσουμε να μάθουμε πώς λειτουργεί η εφαρμογή ενώ το MobSF καταγράφει πολλά ενδιαφέροντα δεδομένα που μπορείτε να ελέγξετε αργότερα.
Ανεπιθύμητη διαρροή δεδομένων
Καταγραφή
Οι προγραμματιστές πρέπει να είναι προσεκτικοί όταν αποκαλύπτουν δημόσια πληροφορίες αποσφαλμάτωσης, καθώς αυτό μπορεί να οδηγήσει σε διαρροή ευαίσθητων δεδομένων. Τα εργαλεία pidcat και adb logcat
συνιστώνται για την παρακολούθηση των αρχείων καταγραφής της εφαρμογής για την εντοπισμό και προστασία ευαίσθητων πληροφοριών. Το Pidcat προτιμάται για την ευκολία χρήσης και την αναγνωσιμότητά του.
{% hint style="warning" %}
Σημειώστε ότι από νεότερες εκδόσεις του Android από την 4.0, οι εφαρμογές μπορούν να έχουν πρόσβαση μόνο στα δικά τους αρχεία καταγραφής. Έτσι, οι εφαρμογές δεν μπορούν να έχουν πρόσβαση στα αρχεία καταγραφής άλλων εφαρμογών.
Παρ' όλα αυτά, εξακολουθεί να συνιστάται να μην καταγράφονται ευαίσθητες πληροφορίες.
{% endhint %}
Αποθήκευση προσωρινού αντιγράφου/επικόλλησης στη μνήμη προσωρινής αποθήκευσης
Το πλαίσιο βασισμένο στο προσωρινό αντιγραφο/επικόλλησης του Android επιτρέπει τη λειτουργία αντιγραφής-επικόλλησης στις εφαρμογές, αλλά αποτελεί κίνδυνο καθώς άλλες εφαρμογές μπορούν να έχουν πρόσβαση στο προσωρινό αντιγραφο/επικόλλησης, ενδεχομένως αποκαλύπτοντας ευαίσθητα δεδομένα. Είναι ζωτικής σημασίας να απενεργοποιήσετε τις λειτουργίες αντιγραφής/επικόλλησης για ευαίσθητες ενότητες μιας εφαρμογής, όπως λεπτομέρειες πιστωτικής κάρτας, για να αποτρέψετε τις διαρροές δεδομένων.
Αρχεία καταγραφής σφάλματος
Εάν μια εφαρμογή συντρίβεται και αποθηκεύει καταγραφές, αυτές οι καταγραφές μπορούν να βοηθήσουν τους επιτιθέμενους, ιδιαίτερα όταν η εφαρμογή δεν μπορεί να ανασυνταχθεί. Για να μειώσετε αυτόν τον κίνδυνο, αποφεύγετε την καταγραφή κατά τη συντριβή και εάν πρέπει να μεταδοθούν καταγραφές μέσω του δικτύου, βεβαιωθείτε ότι αποστέλλονται μέσω ενός καναλιού SSL για την ασφάλεια.
Ως pentester, προσπαθήστε να ρίξετε μια ματιά σε αυτές τις καταγραφές.
Δεδομένα αναλυτικών που αποστέλλονται σε τρίτους
Οι εφαρμογές συχνά ενσωματώνουν υπηρεσίες όπως το Google Adsense, το οποίο μπορεί να αποκαλύψει ακούσια ευαίσθητα δεδομένα λόγω ακατάλληλης υλοποίησης από τους προγραμματιστές. Για την εντοπισμό πιθανών διαρροών δεδομένων, συνιστάται να παρεμβάλετε την κίνηση της εφαρμογής και να ελέγξετε εάν αποστέλλονται ευαίσθητες πληροφορίες σε υπηρεσίες τρίτων.
Βάσεις δεδομένων SQLite
Οι περισσότερες εφαρμογές θα χρησιμοποιούν εσωτερικές βάσεις δεδομένων SQLite για την αποθήκευση πληροφοριών. Κατά τη διάρκεια του pentest, ρίξτε μια ματιά στις δημιουργημένες βάσεις δεδομένων, τα ονόματα των πινάκων και των στηλών και όλα τα δεδομένα που αποθηκεύονται, καθώς μπορείτε να βρείτε ευαίσθητες πληροφορίες (που θα αποτελούσαν μι
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
.
Ευαίσθητες πληροφορίες
Κάθε φορά που βρίσκετε έναν deeplink, ελέγξτε ότι δεν λαμβάνει ευαίσθητα δεδομένα (όπως κωδικούς πρόσβασης) μέσω παραμέτρων URL, επειδή οποιαδήποτε άλλη εφαρμογή μπορεί να παραποιήσει τον deeplink και να κλέψει αυτά τα δεδομένα!
Παράμετροι στη διαδρομή
Πρέπει επίσης να ελέγξετε αν οποιοδήποτε deeplink χρησιμοποιεί μια παράμετρο μέσα στη διαδρομή του 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 Pinning
Το SSL Pinning είναι μια μέθοδος ασφαλείας όπου η εφαρμογή επαληθεύει τ
# With PID
python3 fridump3.py -u <PID>
# With name
frida-ps -Uai
python3 fridump3.py -u "<Name>"
Αυτό θα αδειάσει τη μνήμη στον φάκελο ./dump, και μέσα εκεί μπορείτε να χρησιμοποιήσετε την εντολή grep με κάτι σαν:
{% code overflow="wrap" %}
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 είναι ο καλύτερος τόπος για να αποθηκεύετε ευαίσθητα δεδομένα, ωστόσο, με επαρκή δικαιώματα εξακολουθεί να είναι δυνατή η πρόσβαση σε αυτά. Καθώς οι εφαρμογές τείνουν να αποθηκεύουν εδώ ευαίσθητα δεδομένα σε απλό κείμενο, οι δοκιμές διείσδυσης θα πρέπει να τα ελέγχουν ως χρήστης root ή κάποιος με φυσική πρόσβαση στη συσκευή θα μπορούσε να κλέψει αυτά τα δεδομένα.
Ακόμη κι αν μια εφαρμογή αποθήκευει ημερομηνία στο keystore, τα δεδομένα θα πρέπει να είναι κρυπτογραφημένα.
Για να έχετε πρόσβαση στα δεδομένα μέσα στο keystore, μπορείτε να χρησιμοποιήσετε αυτό το Frida script: 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 είναι παρόμοια με το πρόβλημα ανακατεύθυνσης ανοικτής σύνδεσης του web.
- Οι εκμεταλλεύσεις περιλαμβάνουν την πέραση αντικειμένων
Intent
ως επιπλέον παραμέτρους, τα οποία μπορούν να ανακατευθυνθούν για να εκτελέσουν μη ασφαλείς λειτουργίες. - Μπορεί να αποκαλύψει μη εξαγόμενα στοιχεία και πάροχους περιεχομένου σε επιτιθέμενους.
- Η μετατροπή του URL του
WebView
σεIntent
μπορεί να διευκολύνει ανεπιθύμητες ενέργειες.
Ενσωμάτωση Πλευράς Πελάτη Android και άλλες
Πιθανόν να γνωρίζετε για αυτού του είδους τις ευπάθειες από τον Ιστό. Πρέπει να είστε ιδιαίτερα προσεκτικοί με αυτές τις ευπάθειες σε μια εφαρμογή Android:
- Έγχυση SQL: Όταν ασχολείστε με δυναμικές ερωτήσεις ή παροχείς περιεχομένου, βεβαιωθείτε ότι χρησιμοποιείτε παραμετροποιημένες ερωτήσεις.
- Έγχυση JavaScript (XSS): Βεβαιωθείτε ότι η υποστήριξη JavaScript και πρόσθετων είναι απενεργοποιημένη για οποιοδήποτε WebView (απενεργοποιημένη από προεπιλογή). Περισσότερες πληροφορίες εδώ.
- Ένταξη Τοπικού Αρχείου: Τα WebViews πρέπει να έχουν απενεργοποιημένη πρόσβαση στο σύστημα αρχείων (ενεργοποιημένη από προεπιλογή) -
(webview.getSettings().setAllowFileAccess(false);)
. Περισσότερες πληροφορίες εδώ. - Αιώνια cookies: Σε πολλές περιπτώσεις, όταν η εφαρμογή Android τερματίζει τη συνεδρία, το cookie δεν ανακλύεται ή μπορεί ακόμη και να αποθηκεύεται στον δίσκο.
- Ασφαλής σημαία στα cookies
Συμμετάσχετε στον διακομιστή HackenProof Discord για να επικοινωνήσετε με έμπειρους χάκερ και κυνηγούς ευρημάτων ασφαλείας!
Εισαγωγή στο 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 στον υπολογιστή σας (μια εικονική μηχανή ή το Docker δεν θα λειτουργήσουν). Σημείωση: Πρέπει να ξεκινήσετε πρώτα μια εικονική μηχανή στο genymotion και μετά το MobSF.
Ο δυναμικός αναλυτής του MobSF μπορεί:
- Να αντλήσει δεδομένα της εφαρμογής (URL, αρχεία καταγραφής, πρόχειρο, στιγμιότυπα οθόνης που έχετε κάνει, στιγμιότυπα οθόνης που έχει κάνει το "Exported Activity Tester", emails, βάσεις δεδομένων SQLite, αρχεία XML και άλλα δημιουργημένα αρχεία). Όλα αυτά γίνονται αυτόματα εκτός από τα στιγμιότυπα οθόνης, όπου πρέπει να πατήσετε όταν θέλετε ένα στιγμιότυπο ή πρέπει να πατήσετε "Exported Activity Tester" για να λάβετε στιγμιότυπα όλων των εξαγόμενων δραστηριοτήτων.
- Καταγραφή HTTPS κίνησης
- Χρήση του Frida για να λάβετε πληροφορίες κατά την εκτέλεση
Από τις εκδόσεις Android > 5, θα ξεκινήσει αυτόματα το Frida και θα ορίσει τις γενικές ρυθμίσεις proxy για να καταγράψει την κίνηση. Θα καταγράφει μόνο την κίνηση από τη δοκιμαζόμενη εφαρμογή.
Frida
Από προεπιλογή, θα χρησιμοποιήσει κάποια Frida Scripts για να παρακάμψει το SSL pinning, τον έλεγχο ρίζας και τον έλεγχο του debugger και για να παρακολουθήσει ενδιαφέρουσες APIs.
Το MobSF μπορεί επίσης να εκτελέσει εξαγόμενες δραστηριότητες, να λάβει στιγμιότυπα οθόνης από αυτές και να τα αποθηκεύσει για την έκθεση.
Για να ξεκινήσετε τη δυναμική δοκιμή, πατήστε το πράσινο κουμπί: "Start Instrumentation". Πατήστε το κουμπί "Frida Live Logs" για να δείτε τα αρχεία καταγραφής που δημιουργούνται από τα Frida scripts και "Live API Monitor" για να δείτε όλες τις κλήσεις σε hooked μεθόδους, τις παραμέτρους που περνούνται και τις τιμές που επιστρέφονται (αυτό θα εμφανιστεί μετά το πάτημα του "Start Instrumentation").
Το MobSF σας επιτρέπει επίσης να φορτώσετε τα δικά σας Frida scripts (για να στείλετε τα αποτελέσματα των Frida scripts σας στο MobSF, χρησιμοποιήστε τη συνάρτηση send()
). Έχει επίσης πολλά προγραμματισμένα scripts που μπορείτε να φορτώσετε (μπορείτε να προσθέσετε περισσότερα στο MobSF/DynamicAnalyzer/tools/frida_scripts/others/
), απλά επιλέξτε τα, πατήστε "Load" και πατήστε "Start Instrumentation" (θα μπορείτε να δείτε τα αρχεία καταγραφής αυτών των scripts μέσα στο "Frida Live Logs").
Επιπλέον, έχετε μερικές βοηθητικές λειτουργίες Frida:
- Απαρίθμηση Φορτωμένων Κλάσεων: Θα εκτυπώσει όλες τις φορτωμένες κλάσεις
- Καταγραφή Συμβολοσειρών: Θα εκτυπώσει όλες τις καταγεγραμμένες συμβολοσειρές κατά τη χρήση της εφαρμογής (πολύ θορυβώδες)
- Καταγραφή Συγκρίσεων Συμβολοσειρών: Μπορεί να είναι πολύ χρήσιμο. Θα εμφανίσει τις 2 συμβολοσειρές που συγκρίθηκαν και αν το αποτέλεσμα ήταν True ή False.
- Απαρίθμηση Μεθόδων Κλάσης: Εισάγετε το όνομα της κλάσης (όπως "java.io.File") και θα εκτυπώσει όλες τις μεθόδους της κλάσης.
- Αναζήτηση Προτύπου Κλάσης: Αναζήτηση κλάσεων με βάση ένα πρότυπο
- Καταγραφή Μεθόδων Κλάσης: Καταγραφή μιας ολόκληρης κλάσης (δείτε τις εισόδους και εξ
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 μπορεί να είναι μη σωστές και δεν θα μπορείτε να τις διορθώσετε από το γραφικό περιβάλλον. Μπορείτε να διορθώσετε τις ρυθμίσεις του proxy κάνοντας:
adb shell settings put global http_proxy :0
{% endhint %}
Βοηθητική Δυναμική Ανάλυση με το Inspeckage
Μπορείτε να αποκτήσετε το εργαλείο από το Inspeckage.
Αυτό το εργαλείο χρησιμοποιεί Hooks για να σας ενημερώσει τι συμβαίνει στην εφαρμογή κατά τη διάρκεια μιας δυναμικής ανάλυσης.
Yaazhini
Αυτό είναι ένα εξαιρετικό εργαλείο για να πραγματοποιήσετε στατική ανάλυση με γραφικό περιβάλλον (GUI).
Qark
Αυτό το εργαλείο έχει σχεδιαστεί για να αναζητήσει πολλά σχετικά με την ασφάλεια ευπάθειες των εφαρμογών Android, είτε στον πηγαίο κώδικα είτε στα συσκευασμένα APK. Το εργαλείο είναι επίσης ικανό να δημιουργήσει ένα "Proof-of-Concept" εκτελέσιμο APK και ADB εντολές, για να εκμεταλλευτεί μερικές από τις ευπάθειες που βρέθηκαν (Αποκαλυμμένες δραστηριότητες, intents, tapjacking...). Όπως και με το Drozer, δεν χρειάζεται να γίνει root της δοκιμαστικής συσκευής.
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. Είναι σε θέση να βελτιστοποιήσει τον κώδικα μεταγλώττισης καθώς και να ανιχνεύσει και να αφαιρέσει αχρησιμοποίητες οδηγίες. Το ProGuard είναι δωρεάν λογισμικό και διανέμεται υπό την Άδεια Γενικής Δημόσιας Χρήσης GNU, έκδοση 2.
Το ProGuard διανέμεται ως μέρος του Android SDK και εκτελείται κατά τη δημιουργία της εφαρμογής σε λειτουργία απελευθέρωσης.
DexGuard
Βρείτε έναν οδηγό βήμα προς βήμα για την αποκρυπτογράφηση του apk στο https://blog.lexfo.fr/dexguard.html
(Από αυτόν τον οδηγό) Την τελευταία φορά που ελέγξαμε, η λειτουργία Dexguard ήταν:
- φόρτωση ενός πόρου ως InputStream;
- τροφοδοσία του αποτελέσματος σε μια κλάση που κληρονομεί από το FilterInputStream για να το αποκρυπτογραφήσει;
- κάποια άχρηστη κρυπτογράφηση για να σπαταλήσει μερικά λεπτά από τον χρόνο ενός αντιστροφέα;
- τροφοδοσία του αποκρυπτογραφημένου αποτελέσματος σε ένα ZipInputStream για να λάβει ένα αρχείο DEX;
- τέλος, φόρτωση του προκύπτοντος DEX ως πόρος χρησιμοποιώντας τη μέθοδο
loadDex
.
DeGuard
**Το DeGuard αντιστρέφει τη διαδικασία της κρυπτογράφησης που πραγματοποιείται από τα εργαλεία κρυπτογράφησης Android. Αυτό επιτρέπει πολλές αναλύσεις ασφάλειας, συμπεριλαμβανομένου του ελέγχου του κώδικα και της πρόβλεψης βιβλι