iOS App Extensions

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Οι επεκτάσεις εφαρμογών ενισχύουν τη λειτουργικότητα των εφαρμογών επιτρέποντάς τους να αλληλεπιδρούν με άλλες εφαρμογές ή το σύστημα, παρέχοντας προσαρμοσμένες δυνατότητες ή περιεχόμενο. Αυτές οι επεκτάσεις περιλαμβάνουν:

  • Προσαρμοσμένο Πληκτρολόγιο: Προσφέρει ένα μοναδικό πληκτρολόγιο σε όλες τις εφαρμογές, αντικαθιστώντας το προεπιλεγμένο πληκτρολόγιο iOS.

  • Κοινοποίηση: Ενεργοποιεί την κοινοποίηση σε κοινωνικά δίκτυα ή με άλλους απευθείας.

  • Σήμερα (Widgets): Παρέχει περιεχόμενο ή εκτελεί εργασίες γρήγορα από την προβολή Σήμερα του Κέντρου Ειδοποιήσεων.

Όταν ένας χρήστης αλληλεπιδρά με αυτές τις επεκτάσεις, όπως η κοινοποίηση κειμένου από μια εφαρμογή φιλοξενίας, η επέκταση επεξεργάζεται αυτή την είσοδο εντός του πλαισίου της, εκμεταλλευόμενη τις κοινές πληροφορίες για να εκτελέσει την εργασία της, όπως αναφέρεται στην τεκμηρίωση της Apple.

Σκέψεις Ασφαλείας

Βασικές πτυχές ασφαλείας περιλαμβάνουν:

  • Οι επεκτάσεις και οι εφαρμογές που τις περιέχουν επικοινωνούν μέσω διαλειτουργικής επικοινωνίας, όχι άμεσα.

  • Το widget Σήμερα είναι μοναδικό καθώς μπορεί να ζητήσει από την εφαρμογή του να ανοίξει μέσω μιας συγκεκριμένης μεθόδου.

  • Η πρόσβαση σε κοινά δεδομένα επιτρέπεται εντός ενός ιδιωτικού κοντέινερ, αλλά η άμεση πρόσβαση περιορίζεται.

  • Ορισμένα APIs, συμπεριλαμβανομένου του HealthKit, είναι εκτός ορίων για τις επεκτάσεις εφαρμογών, οι οποίες επίσης δεν μπορούν να ξεκινήσουν μακροχρόνιες εργασίες, να αποκτήσουν πρόσβαση στην κάμερα ή το μικρόφωνο, εκτός από τις επεκτάσεις iMessage.

Στατική Ανάλυση

Εντοπισμός Επεκτάσεων Εφαρμογών

Για να βρείτε επεκτάσεις εφαρμογών στον πηγαίο κώδικα, αναζητήστε το NSExtensionPointIdentifier στο Xcode ή ελέγξτε το πακέτο της εφαρμογής για αρχεία .appex που υποδεικνύουν επεκτάσεις. Χωρίς πηγαίο κώδικα, χρησιμοποιήστε grep ή SSH για να εντοπίσετε αυτούς τους αναγνωριστές εντός του πακέτου της εφαρμογής.

Υποστηριζόμενοι Τύποι Δεδομένων

Ελέγξτε το αρχείο Info.plist μιας επέκτασης για το NSExtensionActivationRule για να προσδιορίσετε τους υποστηριζόμενους τύπους δεδομένων. Αυτή η ρύθμιση διασφαλίζει ότι μόνο συμβατοί τύποι δεδομένων ενεργοποιούν την επέκταση σε εφαρμογές φιλοξενίας.

Κοινοποίηση Δεδομένων

Η κοινοποίηση δεδομένων μεταξύ μιας εφαρμογής και της επέκτασής της απαιτεί ένα κοινό κοντέινερ, που ρυθμίζεται μέσω "Ομάδων Εφαρμογών" και προσπελάζεται μέσω του NSUserDefaults. Αυτός ο κοινός χώρος είναι απαραίτητος για τις μεταφορές στο παρασκήνιο που ξεκινούν οι επεκτάσεις.

Περιορισμός Επεκτάσεων

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

Δυναμική Ανάλυση

Η δυναμική ανάλυση περιλαμβάνει:

  • Επιθεώρηση Κοινών Στοιχείων: Hook στο NSExtensionContext - inputItems για να δείτε τους τύπους και τις προελεύσεις των κοινών δεδομένων.

  • Εντοπισμός Επεκτάσεων: Ανακαλύψτε ποιες επεκτάσεις επεξεργάζονται τα δεδομένα σας παρατηρώντας τους εσωτερικούς μηχανισμούς, όπως το NSXPCConnection.

Εργαλεία όπως το frida-trace μπορούν να βοηθήσουν στην κατανόηση των υποκείμενων διαδικασιών, ειδικά για εκείνους που ενδιαφέρονται για τις τεχνικές λεπτομέρειες της διαλειτουργικής επικοινωνίας.

Αναφορές

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Last updated