iOS Testing Environment

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

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Πρόγραμμα Ανάπτυξης Apple

Ένα πιστοποιητικό παροχής ταυτότητας είναι μια συλλογή δημόσιων και ιδιωτικών κλειδιών που συσχετίζονται με έναν λογαριασμό ανάπτυξης Apple. Για να υπογράψετε εφαρμογές πρέπει να πληρώσετε 99$/έτος για να εγγραφείτε στο Apple Developer Program και να λάβετε το πιστοποιητικό παροχής ταυτότητας σας. Χωρίς αυτό δεν θα μπορείτε να εκτελέσετε εφαρμογές από τον πηγαίο κώδικα σε ένα φυσικό συσκευή. Μια άλλη επιλογή για να το κάνετε αυτό είναι να χρησιμοποιήσετε μια κατευθυνόμενη συσκευή.

Από την έκδοση Xcode 7.2 και μετά, η Apple παρέχει τη δυνατότητα δημιουργίας ενός δωρεάν προφίλ ανάπτυξης iOS που επιτρέπει την εγγραφή και δοκιμή της εφαρμογής σας σε ένα πραγματικό iPhone. Πηγαίνετε σε Xcode --> Προτιμήσεις --> Λογαριασμοί --> + (Προσθήκη νέου Appli ID στα διαπιστευτήριά σας) --> Κάντε κλικ στο δημιουργημένο Apple ID --> Διαχείριση Πιστοποιητικών --> + (Apple Development) --> Ολοκληρώθηκε __Στη συνέχεια, για να εκτελέσετε την εφαρμογή σας στο iPhone σας, πρέπει πρώτα να δηλώσετε στο iPhone ότι εμπιστεύεστε τον υπολογιστή. Στη συνέχεια, μπορείτε να δοκιμάσετε να εκτελέσετε την εφαρμογή στο κινητό από το Xcode, αλλά θα εμφανιστεί ένα σφάλμα. Πηγαίνετε σε Ρυθμίσεις --> Γενικές --> Προφίλ και Διαχείριση Συσκευής --> Επιλέξτε το μη εμπιστευμένο προφίλ και κάντε κλικ στο "Εμπιστοσύνη".

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

Τα προφίλ παροχής ταυτότητας αποθηκεύονται μέσα στο τηλέφωνο στο /Library/MobileDevice/ProvisioningProfiles

Προσομοιωτής

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

Προσομοιωτής

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

Όλα τα εργαλεία που απαιτούνται για τη δημιουργία και υποστήριξη μιας εφαρμογής iOS υποστηρίζονται μόνο επίσημα στο Mac OS. Το εργαλείο της Apple για τη δημιουργία/αποσφαλμάτωση/εργαλειοποίηση εφαρμογών iOS είναι το Xcode. Μπορεί να χρησιμοποιηθεί για τη λήψη άλλων στοιχείων όπως προσομοιωτές και διάφορες εκδόσεις SDK που απαιτούνται για τη δημιουργία και δοκιμή της εφαρμογής σας. Συνιστάται ιδιαίτερα να κατεβάσετε το Xcode από το επίσημο κατάστημα εφαρμογών. Άλλες εκδόσεις μπορεί να περιέχουν κακόβουλο λογισμικό.

Τα αρχεία του προσομοιωτή μπορούν να βρεθούν στο /Users/<username>/Library/Developer/CoreSimulator/Devices

Για να ανοίξετε τον προσομοιωτή, εκτελέστε το Xcode, στη συνέχεια

xcrun simctl list | grep Booted
iPhone 8 (BF5DA4F8-6BBE-4EA0-BA16-7E3AFD16C06C) (Booted)

Αφού γνωρίζετε το UID, οι εφαρμογές που έχουν εγκατασταθεί μέσα σε αυτό μπορούν να βρεθούν στο /Users/<username>/Library/Developer/CoreSimulator/Devices/{UID}/data/Containers/Data/Application

Ωστόσο, εκπληκτικά δεν θα βρείτε την εφαρμογή εδώ. Πρέπει να έχετε πρόσβαση στο /Users/<username>/Library/Developer/Xcode/DerivedData/{Application}/Build/Products/Debug-iphonesimulator/

Και σε αυτόν τον φάκελο μπορείτε να βρείτε το πακέτο της εφαρμογής.

Εξομοιωτής

Το Corellium είναι ο μόνος δημόσια διαθέσιμος εξομοιωτής iOS. Είναι μια επιχειρηματική λύση SaaS με μοντέλο άδειας ανά χρήστη και δεν προσφέρει δοκιμαστική άδεια.

Jailbreaking

Η Apple απαιτεί αυστηρά ότι ο κώδικας που εκτελείται στο iPhone πρέπει να είναι υπογεγραμμένος από πιστοποιητικό που έχει εκδοθεί από την Apple. Το Jailbreaking είναι η διαδικασία της ενεργής παράκαμψης των περιορισμών αυτών και άλλων ελέγχων ασφαλείας που έχουν τεθεί από το λειτουργικό σύστημα. Επομένως, αφού το συσκευή έχει γίνει jailbroken, ο έλεγχος ακεραιότητας που είναι υπεύθυνος για τον έλεγχο των εγκατεστημένων εφαρμογών παρακάμπτεται.

Σε αντίθεση με το Android, δεν μπορείτε να μεταβείτε στην "Λειτουργία Ανάπτυξης" στο iOS για να εκτελέσετε μη υπογεγραμμένο/μη αξιόπιστο κώδικα στη συσκευή.

Ρίζες Android έναντι Jailbreaking iOS

Παρόλο που συχνά συγκρίνονται, οι ρίζες (rooting) στο Android και το Jailbreaking στο iOS είναι θεμελιωδώς διαφορετικές διαδικασίες. Η ρίζαρισμένη συσκευή Android μπορεί να περιλαμβάνει την εγκατάσταση του δυαδικού su ή την αντικατάσταση του συστήματος με ένα ρίζαρισμένο προσαρμοσμένο ROM, το οποίο δεν απαιτεί απαραίτητα εκμετάλλευση εάν ο αναγνώστης είναι ξεκλείδωτος. Η εγκατάσταση προσαρμοσμένων ROM αντικαθιστά το λειτουργικό σύστημα της συσκευής μετά το ξεκλείδωμα του αναγνώστη, κάτι που κάποιες φορές απαιτεί εκμετάλλευση.

Αντίθετα, οι συσκευές iOS δεν μπορούν να εγκαταστήσουν προσαρμοσμένα ROM λόγω του περιορισμού του αναγνώστη να εκκινεί μόνο εικόνες που έχουν υπογραφεί από την Apple. Το Jailbreaking iOS στοχεύει στην παράκαμψη των προστασιών υπογραφής κώδικα της Apple για να εκτελέσει μη υπογεγραμμένο κώδικα, μια διαδικασία που περιπλέκεται από τις συνεχείς βελτιώσεις ασφαλείας της Apple.

Προκλήσεις του Jailbreaking

Το Jailbreaking του iOS γίνεται όλο και πιο δύσκολο καθώς η Apple επιδιορθώνει τις ευπάθειες γρήγορα. Η υποβάθμιση του iOS είναι δυνατή μόνο για έναν περιορισμένο χρόνο μετά από μια κυκλοφορία, καθιστώντας το Jailbreaking θέμα χρονικής πίεσης. Οι συσκευές που χρησιμοποιούνται για δοκιμές ασφαλείας δεν πρέπει να ενημερώνονται εκτός αν είναι εγγυημένη η επανα-εφαρμογή του Jailbreaking.

Οι ενημερώσεις του iOS ελέγχονται από έναν μηχανισμό πρόκλησης-απόκρισης (SHSH blobs), που επιτρέπει την εγκατάσταση μόνο για αποκρίσεις που έχουν υπογραφεί από την Apple. Αυτός ο μηχανισμός, γνωστός ως "παράθυρο υπογραφής", περιορίζει τη δυνατότητα αποθήκευσης και αργότερης χρήσης πακέτων OTA firmware. Η ιστοσελίδα IPSW Downloads είναι ένα εργαλείο για τον έλεγχο των τρεχουσών παραθύρων υπογραφής.

Διάφορες μορφές Jailbreak

  • Τα tethered jailbreaks απαιτούν σύνδεση με υπο

Last updated