9 KiB
Tapjacking
Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (Ειδικός Red Team του HackTricks AWS)!
Άλλοι τρόποι υποστήριξης του HackTricks:
- Αν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε την Οικογένεια PEASS, τη συλλογή μας από αποκλειστικά NFTs
- Εγγραφείτε στη 💬 ομάδα Discord ή στην ομάδα τηλεγραφήματος ή ακολουθήστε μας στο Twitter 🐦 @carlospolopm.
- Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.
{% embed url="https://websec.nl/" %}
Βασικές Πληροφορίες
Το Tapjacking είναι μια επίθεση όπου μια κακόβουλη εφαρμογή εκκινείται και τοποθετείται πάνω από μια εφαρμογή θύμα. Μόλις αποκρύψει ορατά την εφαρμογή θύμα, η διεπαφή χρήστη της σχεδιάζεται με τέτοιο τρόπο ώστε να εξαπατήσει τον χρήστη να αλληλεπιδρά μαζί της, ενώ περνά την αλληλεπίδραση στην εφαρμογή θύμα.
Κατά κύριο λόγο, τυφλώνει τον χρήστη από το να γνωρίζει ότι πραγματοποιεί πράξεις στην εφαρμογή θύμα.
Ανίχνευση
Για να ανιχνεύσετε εφαρμογές ευάλωτες σε αυτήν την επίθεση, πρέπει να αναζητήσετε εξαγόμενες δραστηριότητες στο αρχείο android manifest (σημειώστε ότι μια δραστηριότητα με ένα intent-filter εξάγεται αυτόματα από προεπιλογή). Αφού βρείτε τις εξαγόμενες δραστηριότητες, ελέγξτε αν απαιτούν κάποια άδεια. Αυτό οφείλεται στο γεγονός ότι η κακόβουλη εφαρμογή θα χρειαστεί επίσης αυτήν την άδεια.
Προστασία
Android 12 (API 31,32) και νεότερες εκδόσεις
Σύμφωνα με αυτήν την πηγή, οι επιθέσεις tapjacking αποτρέπονται αυτόματα από το Android από το Android 12 (API 31 & 30) και νεότερες εκδόσεις. Έτσι, ακόμη κι αν η εφαρμογή είναι ευάλωτη δεν θα μπορείτε να την εκμεταλλευτείτε.
filterTouchesWhenObscured
Εάν το android:filterTouchesWhenObscured
έχει οριστεί σε true
, το View
δεν θα λαμβάνει αφήσεις όταν το παράθυρο της προβολής είναι εμποδισμένο από άλλο ορατό παράθυρο.
setFilterTouchesWhenObscured
Η ιδιότητα setFilterTouchesWhenObscured
που έχει οριστεί σε true μπορεί επίσης να αποτρέψει την εκμετάλλευση αυτής της ευπάθειας εάν η έκδοση του Android είναι χαμηλότερη.
Εάν οριστεί σε true
, για παράδειγμα, ένα κουμπί μπορεί να απενεργοποιηθεί αυτόματα αν είναι εμποδισμένο:
<Button android:text="Button"
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:filterTouchesWhenObscured="true">
</Button>
Εκμετάλλευση
Tapjacking-ExportedActivity
Η πιο πρόσφατη εφαρμογή Android που εκτελεί μια επίθεση Tapjacking (+ καλεί πριν από μια εξαγόμενη δραστηριότητα της επιτεθείσας εφαρμογής) μπορεί να βρεθεί στο: https://github.com/carlospolop/Tapjacking-ExportedActivity.
Ακολουθήστε τις οδηγίες του README για να το χρησιμοποιήσετε.
FloatingWindowApp
Ένα παράδειγμα έργου που υλοποιεί το FloatingWindowApp, το οποίο μπορεί να χρησιμοποιηθεί για να τοποθετηθεί πάνω από άλλες δραστηριότητες για να εκτελέσει μια επίθεση clickjacking, μπορεί να βρεθεί στο FloatingWindowApp (λίγο παλιό, καλή τύχη στην δημιουργία του apk).
Qark
{% hint style="danger" %} Φαίνεται ότι αυτό το έργο δεν υποστηρίζεται πλέον και αυτή η λειτουργικότητα δεν λειτουργεί σωστά πλέον {% endhint %}
Μπορείτε να χρησιμοποιήσετε το qark με τις παραμέτρους --exploit-apk
--sdk-path /Users/username/Library/Android/sdk
για να δημιουργήσετε μια κακόβουλη εφαρμογή για να ελέγξετε πιθανές ευπάθειες Tapjacking.\
Η αντιμετώπιση είναι σχετικά απλή καθώς ο προγραμματιστής μπορεί να επιλέξει να μην λαμβάνει τα αισθητήρια αφής όταν ένα προβάλλεται από άλλο. Χρησιμοποιώντας το Android Developer’s Reference:
Μερικές φορές είναι απαραίτητο να μπορεί μια εφαρμογή να επιβεβαιώσει ότι μια ενέργεια πραγματοποιείται με την πλήρη γνώση και συγκατάθεση του χρήστη, όπως η χορήγηση μιας άδειας, η πραγματοποίηση μιας αγοράς ή η κλικ σε μια διαφήμιση. Δυστυχώς, μια κακόβουλη εφαρμογή θα μπορούσε να προσπαθήσει να απομυθοποιήσει τον χρήστη να πραγματοποιήσει αυτές τις ενέργειες, χωρίς να το γνωρίζει, κρύβοντας το πραγματικό σκοπό της προβολής. Ως αντίδραση, το πλαίσιο προσφέρει ένα μηχανισμό φιλτραρίσματος αφής που μπορεί να χρησιμοποιηθεί για τη βελτίωση της ασφάλειας των προβολών που παρέχουν πρόσβαση σε ευαίσθητες λειτουργίες.
Για να ενεργοποιήσετε το φιλτράρισμα αφής, καλέστε τη μέθοδο
setFilterTouchesWhenObscured(boolean)
ή ορίστε το χαρακτηριστικό διάταξης android:filterTouchesWhenObscured σε true. Όταν είναι ενεργοποιημένο, το πλαίσιο θα απορρίπτει τις αφήσεις που λαμβάνονται όποτε το παράθυρο της προβολής είναι κρυμμένο από ένα άλλο ορατό παράθυρο. Ως αποτέλεσμα, η προβολή δεν θα λαμβάνει αφήσεις όταν ένα toast, ένα παράθυρο διαλόγου ή άλλο παράθυρο εμφανίζεται πάνω από το παράθυρο της προβολής.
{% embed url="https://websec.nl/" %}