iOS Basic Testing Operations
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)
Για να ταυτοποιηθεί μοναδικά μια συσκευή iOS, χρησιμοποιείται μια ακολουθία 40 ψηφίων γνωστή ως UDID. Σε macOS Catalina ή νεότερη έκδοση, αυτό μπορεί να βρεθεί στην εφαρμογή Finder, καθώς το iTunes δεν είναι πλέον παρόν. Η συσκευή, μόλις συνδεθεί μέσω USB και επιλεγεί στο Finder, αποκαλύπτει το UDID της μεταξύ άλλων πληροφοριών όταν κάνετε κλικ στις λεπτομέρειες κάτω από το όνομά της.
Για εκδόσεις macOS πριν από την Catalina, το iTunes διευκολύνει την ανακάλυψη του UDID. Λεπτομερείς οδηγίες μπορείτε να βρείτε εδώ.
Τα εργαλεία γραμμής εντολών προσφέρουν εναλλακτικές μεθόδους για την ανάκτηση του UDID:
Χρησιμοποιώντας το εργαλείο I/O Registry Explorer ioreg
:
Χρησιμοποιώντας το ideviceinstaller
για macOS (και Linux):
Χρησιμοποιώντας το system_profiler
:
Χρησιμοποιώντας instruments
για να καταγράψετε συσκευές:
Η πρόσβαση SSH ενεργοποιείται με την εγκατάσταση του πακέτου OpenSSH μετά το jailbreak, επιτρέποντας συνδέσεις μέσω ssh root@<device_ip_address>
. Είναι κρίσιμο να αλλάξετε τους προεπιλεγμένους κωδικούς πρόσβασης (alpine
) για τους χρήστες root
και mobile
για να ασφαλίσετε τη συσκευή.
Η SSH μέσω USB γίνεται απαραίτητη στην απουσία Wi-Fi, χρησιμοποιώντας το iproxy
για να χαρτογραφήσετε τις θύρες της συσκευής για συνδέσεις SSH. Αυτή η ρύθμιση επιτρέπει την πρόσβαση SSH μέσω USB εκτελώντας:
Εφαρμογές shell σε συσκευή, όπως το NewTerm 2, διευκολύνουν την άμεση αλληλεπίδραση με τη συσκευή, ιδιαίτερα χρήσιμες για την αντιμετώπιση προβλημάτων. Reverse SSH shells μπορούν επίσης να δημιουργηθούν για απομακρυσμένη πρόσβαση από τον υπολογιστή φιλοξενίας.
Για να επαναφέρετε έναν ξεχασμένο κωδικό πρόσβασης πίσω στην προεπιλογή (alpine
), είναι απαραίτητο να επεξεργαστείτε το αρχείο /private/etc/master.passwd
. Αυτό περιλαμβάνει την αντικατάσταση του υπάρχοντος hash με το hash για alpine
δίπλα στις εγγραφές χρηστών root
και mobile
.
Αρχειοθέτηση και Ανάκτηση μέσω SSH και SCP: Είναι απλό να αρχειοθετήσετε τον κατάλογο Δεδομένων της εφαρμογής χρησιμοποιώντας tar
και στη συνέχεια να τον μεταφέρετε χρησιμοποιώντας scp
. Η παρακάτω εντολή αρχειοθετεί τον κατάλογο Δεδομένων σε ένα αρχείο .tgz, το οποίο στη συνέχεια αποσύρεται από τη συσκευή:
Χρησιμοποιώντας το iFunbox και το iExplorer: Αυτά τα εργαλεία GUI είναι χρήσιμα για τη διαχείριση αρχείων σε συσκευές iOS. Ωστόσο, από την έκδοση iOS 8.4, η Apple περιορίζει την πρόσβαση αυτών των εργαλείων στο sandbox της εφαρμογής εκτός αν η συσκευή είναι jailbroken.
Διαδραστική Γραμμή Εντολών με το Objection: Η εκκίνηση του objection παρέχει πρόσβαση στον φάκελο Bundle μιας εφαρμογής. Από εδώ, μπορείτε να πλοηγηθείτε στον φάκελο Documents της εφαρμογής και να διαχειριστείτε αρχεία, συμπεριλαμβανομένης της λήψης και της αποστολής τους προς και από τη συσκευή iOS.
Σύνδεσμος Διανομής Over-The-Air (OTA): Οι εφαρμογές που διανέμονται για δοκιμή μέσω OTA μπορούν να ληφθούν χρησιμοποιώντας το εργαλείο downloader περιουσιακών στοιχείων υπηρεσιών ITMS, το οποίο εγκαθίσταται μέσω npm και χρησιμοποιείται για την αποθήκευση του αρχείου IPA τοπικά.
Από ένα IPA: Αποσυμπιέστε το IPA για να αποκτήσετε πρόσβαση στο αποκρυπτογραφημένο δυαδικό αρχείο της εφαρμογής.
Από μια Jailbroken Συσκευή: Εγκαταστήστε την εφαρμογή και εξαγάγετε το αποκρυπτογραφημένο δυαδικό αρχείο από τη μνήμη.
Επισκόπηση Χειροκίνητης Αποκρυπτογράφησης: Τα δυαδικά αρχεία εφαρμογών iOS είναι κρυπτογραφημένα από την Apple χρησιμοποιώντας το FairPlay. Για να γίνει αντίστροφη μηχανική, πρέπει να γίνει dump του αποκρυπτογραφημένου δυαδικού αρχείου από τη μνήμη. Η διαδικασία αποκρυπτογράφησης περιλαμβάνει τον έλεγχο της σημαίας PIE, την προσαρμογή των σημαιών μνήμης, την αναγνώριση της κρυπτογραφημένης ενότητας και στη συνέχεια την εξαγωγή και αντικατάσταση αυτής της ενότητας με τη μορφή της αποκρυπτογράφησης.
Έλεγχος και Τροποποίηση Σημαίας PIE:
Εντοπισμός Κρυπτογραφημένου Τμήματος και Εκχύλιση Μνήμης:
Καθορίστε τις διευθύνσεις έναρξης και λήξης του κρυπτογραφημένου τμήματος χρησιμοποιώντας otool
και εκχυλίστε τη μνήμη από τη jailbroken συσκευή χρησιμοποιώντας gdb.
Αντικατάσταση της Κρυπτογραφημένης Ενότητας:
Αντικαταστήστε την κρυπτογραφημένη ενότητα στο αρχικό δυαδικό αρχείο της εφαρμογής με την αποκρυπτογραφημένη εκφόρτιση.
Ολοκλήρωση Αποκρυπτογράφησης: Τροποποιήστε τα μεταδεδομένα του δυαδικού αρχείου για να υποδείξετε την απουσία κρυπτογράφησης χρησιμοποιώντας εργαλεία όπως το MachOView, ρυθμίζοντας το cryptid
σε 0.
Το frida-ios-dump εργαλείο χρησιμοποιείται για αυτόματη αποκρυπτογράφηση και εξαγωγή εφαρμογών από συσκευές iOS. Αρχικά, πρέπει να ρυθμιστεί το dump.py
για να συνδεθεί με τη συσκευή iOS, κάτι που μπορεί να γίνει μέσω localhost στην πόρτα 2222 μέσω iproxy ή απευθείας μέσω της διεύθυνσης IP της συσκευής και της πόρτας.
Οι εφαρμογές που είναι εγκατεστημένες στη συσκευή μπορούν να απαριθμηθούν με την εντολή:
Για να εκτελέσετε dump μιας συγκεκριμένης εφαρμογής, όπως το Telegram, χρησιμοποιείται η εξής εντολή:
Αυτή η εντολή ξεκινά τη διαδικασία dump της εφαρμογής, με αποτέλεσμα τη δημιουργία ενός αρχείου Telegram.ipa
στον τρέχοντα φάκελο. Αυτή η διαδικασία είναι κατάλληλη για jailbroken συσκευές, καθώς οι μη υπογεγραμμένες ή ψευδώς υπογεγραμμένες εφαρμογές μπορούν να επανεγκατασταθούν χρησιμοποιώντας εργαλεία όπως το ios-deploy.
Το εργαλείο flexdecrypt, μαζί με το wrapper του flexdump, επιτρέπει την εξαγωγή αρχείων IPA από εγκατεστημένες εφαρμογές. Οι εντολές εγκατάστασης για το flexdecrypt στη συσκευή περιλαμβάνουν τη λήψη και εγκατάσταση του πακέτου .deb
. Το flexdump μπορεί να χρησιμοποιηθεί για να καταγράψει και να εξάγει εφαρμογές, όπως φαίνεται στις παρακάτω εντολές:
bagbak, ένα άλλο εργαλείο βασισμένο στο Frida, απαιτεί μια jailbroken συσκευή για την αποκρυπτογράφηση εφαρμογών:
r2flutch, αξιοποιώντας τόσο το radare όσο και το frida, χρησιμοποιείται για την αποκρυπτογράφηση και την εξαγωγή εφαρμογών. Περισσότερες πληροφορίες μπορείτε να βρείτε στη σελίδα GitHub.
Sideloading αναφέρεται στην εγκατάσταση εφαρμογών εκτός του επίσημου App Store. Αυτή η διαδικασία διαχειρίζεται από τον installd daemon και απαιτεί οι εφαρμογές να είναι υπογεγραμμένες με πιστοποιητικό που έχει εκδοθεί από την Apple. Οι συσκευές που έχουν γίνει jailbreak μπορούν να παρακάμψουν αυτό μέσω του AppSync, επιτρέποντας την εγκατάσταση ψευδώς υπογεγραμμένων πακέτων IPA.
Cydia Impactor: Ένα εργαλείο για την υπογραφή και εγκατάσταση αρχείων IPA σε iOS και αρχείων APK σε Android. Οδηγίες και λύσεις προβλημάτων μπορείτε να βρείτε στο yalujailbreak.net.
libimobiledevice: Μια βιβλιοθήκη για Linux και macOS για επικοινωνία με συσκευές iOS. Παρέχονται εντολές εγκατάστασης και παραδείγματα χρήσης για το ideviceinstaller για την εγκατάσταση εφαρμογών μέσω USB.
ipainstaller: Αυτό το εργαλείο γραμμής εντολών επιτρέπει την άμεση εγκατάσταση εφαρμογών σε συσκευές iOS.
ios-deploy: Για χρήστες macOS, το ios-deploy εγκαθιστά εφαρμογές iOS από τη γραμμή εντολών. Η αποσυμπίεση του IPA και η χρήση της σημαίας -m
για άμεση εκκίνηση εφαρμογής είναι μέρος της διαδικασίας.
Xcode: Χρησιμοποιήστε το Xcode για να εγκαταστήσετε εφαρμογές πηγαίνοντας στο Window/Devices and Simulators και προσθέτοντας την εφαρμογή στα Installed Apps.
Για να εγκαταστήσετε εφαρμογές που είναι ειδικές για iPad σε συσκευές iPhone ή iPod touch, η τιμή UIDeviceFamily στο αρχείο Info.plist πρέπει να αλλάξει σε 1. Αυτή η τροποποίηση, ωστόσο, απαιτεί την επαναυπογραφή του αρχείου IPA λόγω ελέγχων επικύρωσης υπογραφής.
Σημείωση: Αυτή η μέθοδος μπορεί να αποτύχει αν η εφαρμογή απαιτεί δυνατότητες που είναι αποκλειστικές για νεότερα μοντέλα iPad ενώ χρησιμοποιείτε παλαιότερο iPhone ή iPod touch.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)