Tapjacking

Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (Ειδικός Red Team του HackTricks AWS)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Βασικές Πληροφορίες

Το 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

Φαίνεται ότι αυτό το έργο δεν υποστηρίζεται πλέον και αυτή η λειτουργικότητα δεν λειτουργεί σωστά πλέον

Μπορείτε να χρησιμοποιήσετε το qark με τις παραμέτρους --exploit-apk --sdk-path /Users/username/Library/Android/sdk για να δημιουργήσετε μια κακόβουλη εφαρμογή για να ελέγξετε πιθανές ευπάθειες Tapjacking.\

Η αντιμετώπιση είναι σχετικά απλή καθώς ο προγραμματιστής μπορεί να επιλέξει να μην λαμβάνει τα αισθητήρια αφής όταν ένα προβάλλεται από άλλο. Χρησιμοποιώντας το Android Developer’s Reference:

Μερικές φορές είναι απαραίτητο να μπορεί μια εφαρμογή να επιβεβαιώσει ότι μια ενέργεια πραγματοποιείται με την πλήρη γνώση και συγκατάθεση του χρήστη, όπως η χορήγηση μιας άδειας, η πραγματοποίηση μιας αγοράς ή η κλικ σε μια διαφήμιση. Δυστυχώς, μια κακόβουλη εφαρμογή θα μπορούσε να προσπαθήσει να απομυθοποιήσει τον χρήστη να πραγματοποιήσει αυτές τις ενέργειες, χωρίς να το γνωρίζει, κρύβοντας το πραγματικό σκοπό της προβολής. Ως αντίδραση, το πλαίσιο προσφέρει ένα μηχανισμό φιλτραρίσματος αφής που μπορεί να χρησιμοποιηθεί για τη βελτίωση της ασφάλειας των προβολών που παρέχουν πρόσβαση σε ευαίσθητες λειτουργίες.

Για να ενεργοποιήσετε το φιλτράρισμα αφής, καλέστε τη μέθοδο setFilterTouchesWhenObscured(boolean) ή ορίστε το χαρακτηριστικό διάταξης android:filterTouchesWhenObscured σε true. Όταν είναι ενεργοποιημένο, το πλαίσιο θα απορρίπτει τις αφήσεις που λαμβάνονται όποτε το παράθυρο της προβολής είναι κρυμμένο από ένα άλλο ορατό παράθυρο. Ως αποτέλεσμα, η προβολή δεν θα λαμβάνει αφήσεις όταν ένα toast, ένα παράθυρο διαλόγου ή άλλο παράθυρο εμφανίζεται πάνω από το παράθυρο της προβολής.

Last updated