20 KiB
Βασικές Λειτουργίες Δοκιμής iOS
Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
- Εάν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε The PEASS Family, τη συλλογή μας από αποκλειστικά NFTs
- Εγγραφείτε στη 💬 ομάδα Discord ή στη ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @carlospolopm.
- Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.
Περίληψη Αναγνώρισης και Πρόσβασης Συσκευής iOS
Αναγνώριση του UDID μιας συσκευής iOS
Για να αναγνωρίσουμε μοναδικά μια συσκευή iOS, χρησιμοποιείται μια 40-ψήφια ακολουθία που ονομάζεται UDID. Στο macOS Catalina ή νεότερο, μπορεί να βρεθεί στην εφαρμογή Finder, καθώς το iTunes δεν υπάρχει πλέον. Η συσκευή, αφού συνδεθεί μέσω USB και επιλεγεί στο Finder, αποκαλύπτει το UDID της μαζί με άλλες πληροφορίες όταν κάνουμε κλικ στις λεπτομέρειες κάτω από το όνομά της.
Για εκδόσεις του macOS πριν από το Catalina, το iTunes διευκολύνει την ανακάλυψη του UDID. Λεπτομερείς οδηγίες μπορούν να βρεθούν εδώ.
Εργαλεία γραμμής εντολών προσφέρουν εναλλακτικές μεθόδους για την ανάκτηση του UDID:
- Χρήση του εργαλείου I/O Registry Explorer
ioreg
:
$ ioreg -p IOUSB -l | grep "USB Serial"
- Χρήση του
ideviceinstaller
για macOS (και Linux):
$ brew install ideviceinstaller
$ idevice_id -l
- Χρήση του
system_profiler
:
$ system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p;/iPhone/,/Serial/p;/iPod/,/Serial/p' | grep "Serial Number:"
- Χρήση του
instruments
για να εμφανιστούν οι συσκευές:
$ instruments -s devices
Πρόσβαση στο Shell της Συσκευής
Η πρόσβαση μέσω SSH ενεργοποιείται εγκαθιστώντας το πακέτο OpenSSH μετά την απελευθέρωση της συσκευής, επιτρέποντας συνδέσεις μέσω ssh root@<διεύθυνση_ΙΡ_συσκευής>
. Είναι κρίσιμο να αλλάξετε τους προεπιλεγμένους κωδικούς (alpine
) για τους χρήστες root
και mobile
για να ασφαλίσετε τη συσκευή.
Η SSH μέσω USB γίνεται απαραίτητη σε περίπτωση που δεν υπάρχει Wi-Fi, χρησιμοποιώντας το iproxy
για την αντιστοίχιση των θυρών της συσκευής για συνδέσεις SSH. Αυτή η ρύθμιση επιτρέπει την πρόσβαση μέσω SSH μέσω USB εκτελώντας:
$ iproxy 2222 22
$ ssh -p 2222 root@localhost
Εφαρμογές κέλυφου στη συσκευή, όπως το NewTerm 2, διευκολύνουν την άμεση αλληλεπίδραση με τη συσκευή, ιδιαίτερα χρήσιμη για την επίλυση προβλημάτων. Μπορούν επίσης να δημιουργηθούν αντίστροφα κέλυφα SSH για απομακρυσμένη πρόσβαση από τον υπολογιστή του χρήστη.
Επαναφορά Ξεχασμένων Κωδικών Πρόσβασης
Για να επαναφέρετε έναν ξεχασμένο κωδικό πρόσβασης στην προεπιλεγμένη τιμή (alpine
), είναι απαραίτητο να επεξεργαστείτε το αρχείο /private/etc/master.passwd
. Αυτό περιλαμβάνει την αντικατάσταση του υπάρχοντος κατακερματισμένου κωδικού με τον κατακερματισμένο κωδικό για το alpine
δίπλα από τις καταχωρήσεις των χρηστών root
και mobile
.
Τεχνικές Μεταφοράς Δεδομένων
Μεταφορά Αρχείων Δεδομένων Εφαρμογής
Αρχειοθέτηση και Ανάκτηση μέσω SSH και SCP: Είναι απλό να αρχειοθετήσετε τον κατάλογο Δεδομένων της εφαρμογής χρησιμοποιώντας την εντολή tar
και στη συνέχεια να το μεταφέρετε χρησιμοποιώντας την εντολή scp
. Η παρακάτω εντολή αρχειοθετεί τον κατάλογο Δεδομένων σε ένα αρχείο .tgz, το οποίο στη συνέχεια αντλείται από τη συσκευή:
tar czvf /tmp/data.tgz /private/var/mobile/Containers/Data/Application/8C8E7EB0-BC9B-435B-8EF8-8F5560EB0693
exit
scp -P 2222 root@localhost:/tmp/data.tgz .
Εργαλεία Γραφικού Περιβάλλοντος
Χρήση των iFunbox και iExplorer: Αυτά τα εργαλεία γραφικού περιβάλλοντος είναι χρήσιμα για τη διαχείριση αρχείων σε συσκευές iOS. Ωστόσο, από την έκδοση iOS 8.4 και μετά, η Apple περιόρισε την πρόσβαση αυτών των εργαλείων στον αποθηκευτικό χώρο των εφαρμογών, εκτός αν η συσκευή έχει γίνει jailbreak.
Χρήση του Objection για τη Διαχείριση Αρχείων
Διαδραστική Κέλυφος με το Objection: Με την εκκίνηση του Objection, έχετε πρόσβαση στον φάκελο Bundle μιας εφαρμογής. Από εδώ, μπορείτε να πλοηγηθείτε στον φάκελο Documents της εφαρμογής και να διαχειριστείτε αρχεία, συμπεριλαμβανομένης της λήψης και αποστολής τους από και προς τη συσκευή iOS.
objection --gadget com.apple.mobilesafari explorer
cd /var/mobile/Containers/Data/Application/72C7AAFB-1D75-4FBA-9D83-D8B4A2D44133/Documents
file download <filename>
Απόκτηση και Εξαγωγή Εφαρμογών
Απόκτηση του αρχείου IPA
Σύνδεσμος Διανομής Over-The-Air (OTA): Οι εφαρμογές που διανέμονται για τεστ μέσω OTA μπορούν να ληφθούν χρησιμοποιώντας το εργαλείο λήψης αρχείων ITMS services asset downloader, το οποίο εγκαθίσταται μέσω του npm και χρησιμοποιείται για να αποθηκεύσει το αρχείο IPA τοπικά.
npm install -g itms-services
itms-services -u "itms-services://?action=download-manifest&url=https://s3-ap-southeast-1.amazonaws.com/test-uat/manifest.plist" -o - > out.ipa
Εξαγωγή του δυαδικού αρχείου της εφαρμογής
- Από ένα IPA: Αποσυμπιέστε το IPA για να έχετε πρόσβαση στο αποκρυπτογραφημένο δυαδικό αρχείο της εφαρμογής.
- Από μια συσκευή με Jailbreak: Εγκαταστήστε την εφαρμογή και εξαγάγετε το αποκρυπτογραφημένο δυαδικό αρχείο από τη μνήμη.
Διαδικασία αποκρυπτογράφησης
Επισκόπηση της χειροκίνητης αποκρυπτογράφησης: Τα δυαδικά αρχεία των εφαρμογών iOS κρυπτογραφούνται από την Apple χρησιμοποιώντας το FairPlay. Για να αναστρέψετε τη διαδικασία, πρέπει να αποθηκεύσετε το αποκρυπτογραφημένο δυαδικό αρχείο από τη μνήμη. Η διαδικασία αποκρυπτογράφησης περιλαμβάνει τον έλεγχο της σημαίας PIE, την προσαρμογή των σημαιών μνήμης, τον εντοπισμό του κρυπτογραφημένου τμήματος και στη συνέχεια την αποθήκευση και αντικατάσταση αυτού του τμήματος με την αποκρυπτογραφημένη του μορφή.
Έλεγχος και τροποποίηση της σημαίας PIE:
otool -Vh Original_App
python change_macho_flags.py --no-pie Original_App
otool -Vh Hello_World
Αναγνώριση Κρυπτογραφημένης Ενότητας και Αποθήκευση Μνήμης:
Προσδιορίστε τις αρχικές και τελικές διευθύνσεις της κρυπτογραφημένης ενότητας χρησιμοποιώντας το otool
και αποθηκεύστε τη μνήμη από την jailbroken συσκευή χρησιμοποιώντας το gdb.
otool -l Original_App | grep -A 4 LC_ENCRYPTION_INFO
dump memory dump.bin 0x8000 0x10a4000
Αντικατάσταση της Κρυπτογραφημένης Ενότητας:
Αντικαταστήστε την κρυπτογραφημένη ενότητα στον αρχικό δυαδικό κώδικα της εφαρμογής με την αποκρυπτογραφημένη αντιγραφή.
dd bs=1 seek=<starting_address> conv=notrunc if=dump.bin of=Original_App
Ολοκλήρωση Αποκρυπτογράφησης: Τροποποιήστε τα μεταδεδομένα του δυαδικού αρχείου για να υποδείξετε την απουσία κρυπτογράφησης χρησιμοποιώντας εργαλεία όπως το MachOView, ορίζοντας το cryptid
σε 0.
Αποκρυπτογράφηση (Αυτόματα)
frida-ios-dump
Το εργαλείο frida-ios-dump χρησιμοποιείται για την αυτόματη αποκρυπτογράφηση και εξαγωγή εφαρμογών από συσκευές iOS. Αρχικά, πρέπει να ρυθμίσετε το dump.py
για να συνδεθεί με τη συσκευή iOS, που μπορεί να γίνει μέσω του localhost στη θύρα 2222 μέσω iproxy ή απευθείας μέσω της IP διεύθυνσης και της θύρας της συσκευής.
Οι εφαρμογές που είναι εγκατεστημένες στη συσκευή μπορούν να εμφανιστούν με την εντολή:
$ python dump.py -l
Για να αντλήσετε πληροφορίες από μια συγκεκριμένη εφαρμογή, όπως το Telegram, χρησιμοποιείται η παρακάτω εντολή:
$ python3 dump.py -u "root" -p "<PASSWORD>" ph.telegra.Telegraph
Αυτή η εντολή ξεκινά την αποθήκευση της εφαρμογής, με αποτέλεσμα τη δημιουργία ενός αρχείου Telegram.ipa
στον τρέχοντα κατάλογο. Αυτή η διαδικασία είναι κατάλληλη για συσκευές με jailbreak, καθώς μη υπογεγραμμένες ή πλαστές εφαρμογές μπορούν να επανεγκατασταθούν χρησιμοποιώντας εργαλεία όπως το ios-deploy.
flexdecrypt
Το εργαλείο flexdecrypt, μαζί με το wrapper του flexdump, επιτρέπει την εξαγωγή αρχείων IPA από εγκατεστημένες εφαρμογές. Οι εντολές εγκατάστασης για το flexdecrypt στη συσκευή περιλαμβάνουν το κατέβασμα και την εγκατάσταση του πακέτου .deb
. Το flexdump μπορεί να χρησιμοποιηθεί για την εμφάνιση και αποθήκευση εφαρμογών, όπως φαίνεται στις παρακάτω εντολές:
apt install zip unzip
wget https://gist.githubusercontent.com/defparam/71d67ee738341559c35c684d659d40ac/raw/30c7612262f1faf7871ba8e32fbe29c0f3ef9e27/flexdump -P /usr/local/bin; chmod +x /usr/local/bin/flexdump
flexdump list
flexdump dump Twitter.app
bagbak
bagbak, ένα ακόμα εργαλείο βασισμένο στο Frida, απαιτεί ένα jailbroken συσκευή για την αποκρυπτογράφηση των εφαρμογών:
bagbak --raw Chrome
r2flutch
Το r2flutch, χρησιμοποιώντας τόσο το radare όσο και το frida, χρησιμεύει για την αποκρυπτογράφηση και την αποθήκευση εφαρμογών. Περισσότερες πληροφορίες μπορούν να βρεθούν στην σελίδα του GitHub.
Εγκατάσταση Εφαρμογών
Ο όρος sideloading αναφέρεται στην εγκατάσταση εφαρμογών εκτός του επίσημου App Store. Αυτή η διαδικασία χειρίζεται από τον installd daemon και απαιτεί τις εφαρμογές να έχουν υπογραφεί με πιστοποιητικό που έχει εκδοθεί από την Apple. Οι συσκευές με jailbreak μπορούν να παρακάμψουν αυτήν τη διαδικασία μέσω του AppSync, επιτρέποντας την εγκατάσταση πακέτων IPA με ψευδή υπογραφή.
Εργαλεία Sideloading
-
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
Για να εγκαταστήσετε εφαρμογές που είναι σχεδιασμένες για iPad σε συσκευές iPhone ή iPod touch, η τιμή UIDeviceFamily στο αρχείο Info.plist πρέπει να αλλάξει σε 1. Ωστόσο, αυτή η τροποποίηση απαιτεί την επανυπογραφή του αρχείου IPA λόγω ελέγχων επαλήθευσης υπογραφής.
Σημείωση: Αυτή η μέθοδος μπορεί να αποτύχει εάν η εφαρμογή απαιτεί δυνατότητες που είναι αποκλειστικές για νεότερα μοντέλα iPad ενώ χρησιμοποιείται ένα παλαιότερο iPhone ή iPod touch.
Αναφορές
- https://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/
- https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0052/
- https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0053/
- https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0054/
- https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0056/
Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
- Εάν θέλετε να δείτε την εταιρεία σας διαφημισμένη στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF ελέγξτε τα ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε την Οικογένεια PEASS, τη συλλογή μας από αποκλειστικά NFTs
- Συμμετάσχετε 💬 στην ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @carlospolopm.
- Μοιραστείτε τα κόλπα σας για το hacking υποβάλλοντας PRs στα αποθετήρια του HackTricks και του HackTricks Cloud στο GitHub.