Android Task Hijacking
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Στο Android, μια task είναι ουσιαστικά ένα σύνολο δραστηριοτήτων με τις οποίες οι χρήστες αλληλεπιδρούν για να ολοκληρώσουν μια συγκεκριμένη εργασία, οργανωμένες μέσα σε μια back stack. Αυτή η στοίβα παραγγέλνει τις δραστηριότητες με βάση το πότε άνοιξαν, με την πιο πρόσφατη δραστηριότητα να εμφανίζεται στην κορυφή ως foreground activity. Σε οποιαδήποτε στιγμή, μόνο αυτή η δραστηριότητα είναι ορατή στην οθόνη, κάνοντάς την μέρος της foreground task.
Ακολουθεί μια γρήγορη ανάλυση των μεταβάσεων δραστηριοτήτων:
Activity 1 ξεκινά ως η μοναδική δραστηριότητα στο προσκήνιο.
Η εκκίνηση της Activity 2 σπρώχνει την Activity 1 στη back stack, φέρνοντας την Activity 2 στο προσκήνιο.
Η εκκίνηση της Activity 3 μετακινεί την Activity 1 και την Activity 2 πιο πίσω στη στοίβα, με την Activity 3 τώρα μπροστά.
Το κλείσιμο της Activity 3 φέρνει την Activity 2 πίσω στο προσκήνιο, επιδεικνύοντας τον απλοποιημένο μηχανισμό πλοήγησης εργασιών του Android.
Στις εφαρμογές Android, η task affinity καθορίζει την προτιμώμενη εργασία μιας δραστηριότητας, ευθυγραμμισμένη συνήθως με το όνομα του πακέτου της εφαρμογής. Αυτή η ρύθμιση είναι καθοριστική για τη δημιουργία μιας εφαρμογής proof-of-concept (PoC) για την επίδειξη της επίθεσης.
Η ιδιότητα launchMode
κατευθύνει τη διαχείριση των παραδειγμάτων δραστηριοτήτων μέσα σε εργασίες. Η λειτουργία singleTask είναι κρίσιμη για αυτή την επίθεση, καθορίζοντας τρία σενάρια με βάση τα υπάρχοντα παραδείγματα δραστηριοτήτων και τις αντιστοιχίες task affinity. Η εκμετάλλευση βασίζεται στην ικανότητα της εφαρμογής του επιτιθέμενου να μιμείται την task affinity της στοχευμένης εφαρμογής, παραπλανώντας το σύστημα Android να εκκινήσει την εφαρμογή του επιτιθέμενου αντί της προοριζόμενης στόχου.
Εγκατάσταση Κακόβουλης Εφαρμογής: Το θύμα εγκαθιστά την εφαρμογή του επιτιθέμενου στη συσκευή του.
Αρχική Ενεργοποίηση: Το θύμα ανοίγει πρώτα την κακόβουλη εφαρμογή, προετοιμάζοντας τη συσκευή για την επίθεση.
Απόπειρα Εκκίνησης Στοχευμένης Εφαρμογής: Το θύμα προσπαθεί να ανοίξει την στοχευμένη εφαρμογή.
Εκτέλεση Υφαρπαγής: Λόγω της αντιστοιχίας task affinity, η κακόβουλη εφαρμογή εκκινείται αντί της στοχευμένης εφαρμογής.
Απάτη: Η κακόβουλη εφαρμογή παρουσιάζει μια ψεύτικη οθόνη σύνδεσης που μοιάζει με την στοχευμένη εφαρμογή, παραπλανώντας τον χρήστη να εισάγει ευαίσθητες πληροφορίες.
Για μια πρακτική εφαρμογή αυτής της επίθεσης, ανατρέξτε στο αποθετήριο Task Hijacking Strandhogg στο GitHub: Task Hijacking Strandhogg.
Για να αποτραπούν τέτοιες επιθέσεις, οι προγραμματιστές μπορούν να ορίσουν την taskAffinity
σε κενή συμβολοσειρά και να επιλέξουν τη λειτουργία εκκίνησης singleInstance
, διασφαλίζοντας την απομόνωση της εφαρμογής τους από άλλες. Η προσαρμογή της λειτουργίας onBackPressed()
προσφέρει επιπλέον προστασία κατά της υφαρπαγής εργασιών.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)