hacktricks/mobile-pentesting/ios-pentesting/basic-ios-testing-operations.md
Translator workflow 35c6b081d2 Translated to Greek
2024-02-10 22:40:18 +00:00

20 KiB
Raw Blame History

Βασικές Λειτουργίες Δοκιμής iOS

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

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

Περίληψη Αναγνώρισης και Πρόσβασης Συσκευής 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

Εξαγωγή του δυαδικού αρχείου της εφαρμογής

  1. Από ένα IPA: Αποσυμπιέστε το IPA για να έχετε πρόσβαση στο αποκρυπτογραφημένο δυαδικό αρχείο της εφαρμογής.
  2. Από μια συσκευή με 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.

Αναφορές

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

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