mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/mobile-pentesting/ios-pentesting/ios-pentesting-without
This commit is contained in:
parent
9e8e554c27
commit
590210874f
@ -1,29 +1,29 @@
|
||||
# iOS Pentesting without Jailbreak
|
||||
# iOS Pentesting χωρίς Jailbreak
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
## Main idea
|
||||
## Κύρια ιδέα
|
||||
|
||||
Οι εφαρμογές που υπογράφονται με την **εξουσιοδότηση `get_task_allow`** επιτρέπουν σε τρίτες εφαρμογές να εκτελούν μια λειτουργία που ονομάζεται **`task_for_pid()`** με το ID της αρχικής εφαρμογής ως παράμετρο για να αποκτήσουν την θύρα εργασίας πάνω της (να είναι σε θέση να την ελέγξουν και να έχουν πρόσβαση στη μνήμη της).
|
||||
Οι εφαρμογές που υπογράφονται με την **εξουσιοδότηση `get_task_allow`** επιτρέπουν σε τρίτες εφαρμογές να εκτελούν μια λειτουργία που ονομάζεται **`task_for_pid()`** με το ID της διαδικασίας της αρχικής εφαρμογής ως παράμετρο, προκειμένου να αποκτήσουν την θύρα εργασίας πάνω της (να είναι σε θέση να την ελέγξουν και να έχουν πρόσβαση στη μνήμη της).
|
||||
|
||||
Ωστόσο, δεν είναι τόσο εύκολο όσο το να τραβήξετε το IPA, να το ξαναυπογράψετε με την εξουσιοδότηση και να το επαναφέρετε στη συσκευή σας. Αυτό οφείλεται στην προστασία FairPlay. Όταν αλλάζει η υπογραφή της εφαρμογής, το κλειδί DRM (Digital Rights Management) **ακυρώνεται και η εφαρμογή δεν θα λειτουργήσει**.
|
||||
|
||||
Με μια παλιά jailbroken συσκευή, είναι δυνατό να εγκαταστήσετε το IPA, **να το αποκρυπτογραφήσετε χρησιμοποιώντας το αγαπημένο σας εργαλείο** (όπως το Iridium ή το frida-ios-dump) και να το τραβήξετε πίσω από τη συσκευή. Αν και, αν είναι δυνατόν, συνιστάται να ρωτήσετε τον πελάτη για το αποκρυπτογραφημένο IPA.
|
||||
Με μια παλιά jailbroken συσκευή, είναι δυνατό να εγκαταστήσετε το IPA, **να το αποκρυπτογραφήσετε χρησιμοποιώντας το αγαπημένο σας εργαλείο** (όπως το Iridium ή το frida-ios-dump) και να το τραβήξετε πίσω από τη συσκευή. Ωστόσο, αν είναι δυνατόν, συνιστάται να ρωτήσετε τον πελάτη για το αποκρυπτογραφημένο IPA.
|
||||
|
||||
## Obtain decrypted IPA
|
||||
## Αποκτήστε το αποκρυπτογραφημένο IPA
|
||||
|
||||
### Get it from Apple
|
||||
### Πάρτε το από την Apple
|
||||
|
||||
1. Εγκαταστήστε την εφαρμογή που θέλετε να δοκιμάσετε στο iPhone
|
||||
2. Εγκαταστήστε και εκκινήστε το [Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12) μέσα στο macos σας
|
||||
3. Ανοίξτε το `Terminal` στο Mac σας και cd στο `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps`. Το IPA θα εμφανιστεί σε αυτόν τον φάκελο αργότερα.
|
||||
4. Πρέπει να δείτε τη συσκευή iOS σας. Κάντε διπλό κλικ σε αυτήν και στη συνέχεια κάντε κλικ στο Προσθήκη + → Εφαρμογές από την επάνω μπάρα μενού.
|
||||
4. Θα πρέπει να δείτε τη συσκευή iOS σας. Κάντε διπλό κλικ σε αυτήν και στη συνέχεια κάντε κλικ στο Προσθήκη + → Εφαρμογές από την επάνω μπάρα μενού.
|
||||
5. Μετά την κλικ στο Προσθήκη, το Configurator θα κατεβάσει το IPA από την Apple και θα προσπαθήσει να το στείλει στη συσκευή σας. Αν ακολουθήσατε τη σύστασή μου νωρίτερα και έχετε ήδη εγκαταστήσει το IPA, θα εμφανιστεί ένα παράθυρο που θα σας ζητά να επανεγκαταστήσετε την εφαρμογή.
|
||||
6. Το IPA θα πρέπει να έχει κατέβει μέσα στο `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps` από όπου μπορείτε να το πάρετε.
|
||||
|
||||
Δείτε [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed) για περισσότερες λεπτομέρειες σχετικά με αυτή τη διαδικασία.
|
||||
Ελέγξτε [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed) για περισσότερες λεπτομέρειες σχετικά με αυτή τη διαδικασία.
|
||||
|
||||
### Decrypting the app
|
||||
### Αποκρυπτογράφηση της εφαρμογής
|
||||
|
||||
Για να αποκρυπτογραφήσουμε το IPA, θα το εγκαταστήσουμε. Ωστόσο, αν έχετε ένα παλιό jailbroken iPhone, πιθανώς η έκδοσή του δεν θα υποστηρίζεται από την εφαρμογή, καθώς συνήθως οι εφαρμογές υποστηρίζουν μόνο τις τελευταίες εκδόσεις.
|
||||
|
||||
@ -49,25 +49,70 @@ ideviceinstaller -i no-min-version.ipa -w
|
||||
|
||||
### Patch entitlements & re-sign
|
||||
|
||||
Για να επαναυπογράψετε την εφαρμογή με το δικαίωμα `get-task-allow`, υπάρχουν διάφορα εργαλεία διαθέσιμα όπως το `app-signer`, `codesign` και `iResign`. Το `app-signer` έχει μια πολύ φιλική προς το χρήστη διεπαφή που επιτρέπει να επαναυπογράψετε πολύ εύκολα ένα αρχείο IPA υποδεικνύοντας το IPA που θέλετε να επαναυπογράψετε, να **θέσετε το `get-task-allow`** και το πιστοποιητικό και το προφίλ παροχής που θα χρησιμοποιήσετε.
|
||||
Για να επαναυπογράψετε την εφαρμογή με το δικαίωμα `get-task-allow`, υπάρχουν διάφορα εργαλεία διαθέσιμα όπως το `app-signer`, το `codesign` και το `iResign`. Το `app-signer` έχει μια πολύ φιλική προς το χρήστη διεπαφή που επιτρέπει την πολύ εύκολη επαναυπογραφή ενός αρχείου IPA υποδεικνύοντας το IPA που θέλετε να επαναυπογράψετε, να **θέσετε το `get-task-allow`** και το πιστοποιητικό και το προφίλ παροχής που θα χρησιμοποιήσετε.
|
||||
|
||||
Όσον αφορά το πιστοποιητικό και τα προφίλ υπογραφής, η Apple προσφέρει **δωρεάν προφίλ υπογραφής προγραμματιστών** για όλους τους λογαριασμούς μέσω του Xcode. Απλώς δημιουργήστε μια εφαρμογή και ρυθμίστε ένα. Στη συνέχεια, ρυθμίστε το **iPhone να εμπιστεύεται τις εφαρμογές προγραμματιστών** πηγαίνοντας στις `Ρυθμίσεις` → `Απόρρητο & Ασφάλεια`, και κάντε κλικ στο `Developer Mode`.
|
||||
|
||||
|
||||
Με το επαναυπογεγραμμένο IPA, ήρθε η ώρα να το εγκαταστήσετε στη συσκευή για να το δοκιμάσετε:
|
||||
Με το επαναυπογεγραμμένο IPA, ήρθε η ώρα να το εγκαταστήσετε στη συσκευή για να το pentest:
|
||||
```bash
|
||||
ideviceinstaller -i resigned.ipa -w
|
||||
```
|
||||
### Hook
|
||||
---
|
||||
|
||||
Μπορείτε εύκολα να συνδέσετε την εφαρμογή σας χρησιμοποιώντας κοινά εργαλεία όπως το frida και το objection:
|
||||
### Ενεργοποίηση Λειτουργίας Προγραμματιστή (iOS 16+)
|
||||
|
||||
Από το iOS 16, η Apple εισήγαγε τη **Λειτουργία Προγραμματιστή**: οποιοδήποτε δυαδικό αρχείο που φέρει `get_task_allow` *ή* είναι υπογεγραμμένο με πιστοποιητικό ανάπτυξης θα αρνηθεί να εκκινήσει μέχρι να ενεργοποιηθεί η Λειτουργία Προγραμματιστή στη συσκευή. Δεν θα μπορείτε επίσης να συνδέσετε το Frida/LLDB εκτός αν αυτή η σημαία είναι ενεργοποιημένη.
|
||||
|
||||
1. Εγκαταστήστε ή σπρώξτε **οποιοδήποτε** υπογεγραμμένο από προγραμματιστή IPA στο τηλέφωνο.
|
||||
2. Μεταβείτε στις **Ρυθμίσεις → Ιδιωτικότητα & Ασφάλεια → Λειτουργία Προγραμματιστή** και ενεργοποιήστε την.
|
||||
3. Η συσκευή θα επανεκκινήσει; μετά την εισαγωγή του κωδικού πρόσβασης θα σας ζητηθεί να **Ενεργοποιήσετε** τη Λειτουργία Προγραμματιστή.
|
||||
|
||||
Η Λειτουργία Προγραμματιστή παραμένει ενεργή μέχρι να την απενεργοποιήσετε ή να διαγράψετε το τηλέφωνο, οπότε αυτό το βήμα χρειάζεται να εκτελείται μόνο μία φορά ανά συσκευή. [Η τεκμηρίωση της Apple](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device) εξηγεί τις επιπτώσεις ασφαλείας.
|
||||
|
||||
### Σύγχρονες επιλογές sideloading
|
||||
|
||||
Υπάρχουν τώρα αρκετοί ώριμοι τρόποι για να κάνετε sideload και να διατηρείτε τα υπογεγραμμένα IPA ενημερωμένα χωρίς jailbreak:
|
||||
|
||||
| Εργαλείο | Απαιτήσεις | Δυνάμεις | Περιορισμοί |
|
||||
|------|--------------|-----------|-------------|
|
||||
| **AltStore 2 / SideStore** | macOS/Windows/Linux συνοδευτικό που ξαναυπογράφει το IPA κάθε 7 ημέρες με δωρεάν προφίλ ανάπτυξης | Αυτόματη επαναφόρτωση μέσω Wi-Fi, λειτουργεί μέχρι iOS 17 | Χρειάζεται υπολογιστής στο ίδιο δίκτυο, περιορισμός 3 εφαρμογών που επιβάλλεται από την Apple |
|
||||
| **TrollStore 1/2** | Συσκευή σε iOS 14 – 15.4.1 ευάλωτη στο σφάλμα CoreTrust | *Μόνιμη* υπογραφή (χωρίς περιορισμό 7 ημερών); δεν απαιτεί υπολογιστή μόλις εγκατασταθεί | Δεν υποστηρίζεται σε iOS 15.5+ (το σφάλμα έχει διορθωθεί) |
|
||||
|
||||
Για τακτικές δοκιμές pentest σε τρέχουσες εκδόσεις iOS, οι Alt/Side-Store είναι συνήθως η πιο πρακτική επιλογή.
|
||||
|
||||
### Hooking / δυναμική εργαλειακή υποστήριξη
|
||||
|
||||
Μπορείτε να κάνετε hook την εφαρμογή σας ακριβώς όπως σε μια jailbroken συσκευή μόλις είναι υπογεγραμμένη με `get_task_allow` **και** η Λειτουργία Προγραμματιστή είναι ενεργοποιημένη:
|
||||
```bash
|
||||
objection -g [your app bundle ID] explore
|
||||
# Spawn & attach with objection
|
||||
objection -g "com.example.target" explore
|
||||
|
||||
# Or plain Frida
|
||||
frida -U -f com.example.target -l my_script.js --no-pause
|
||||
```
|
||||
Recent Frida releases (>=16) automatically handle pointer authentication and other iOS 17 mitigations, so most existing scripts work out-of-the-box.
|
||||
|
||||
### Automated dynamic analysis with MobSF (no jailbreak)
|
||||
|
||||
[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) μπορεί να εργάζεται με ένα dev-signed IPA σε μια πραγματική συσκευή χρησιμοποιώντας την ίδια τεχνική (`get_task_allow`) και παρέχει ένα web UI με εξερευνητή συστήματος αρχείων, καταγραφή κυκλοφορίας και κονσόλα Frida【turn6view0†L2-L3】. Ο γρηγορότερος τρόπος είναι να τρέξετε το MobSF σε Docker και στη συνέχεια να συνδέσετε το iPhone σας μέσω USB:
|
||||
```bash
|
||||
docker pull opensecurity/mobile-security-framework-mobsf:latest
|
||||
docker run -p 8000:8000 --privileged \
|
||||
-v /var/run/usbmuxd:/var/run/usbmuxd \
|
||||
opensecurity/mobile-security-framework-mobsf:latest
|
||||
# Browse to http://127.0.0.1:8000 and upload your resigned IPA
|
||||
```
|
||||
MobSF θα αναπτύξει αυτόματα το δυαδικό αρχείο, θα ενεργοποιήσει έναν διακομιστή Frida μέσα στο sandbox της εφαρμογής και θα δημιουργήσει μια διαδραστική αναφορά.
|
||||
|
||||
### iOS 17 & προειδοποιήσεις Λειτουργίας Κλειδώματος
|
||||
|
||||
* **Λειτουργία Κλειδώματος** (Ρυθμίσεις → Ιδιωτικότητα & Ασφάλεια) μπλοκάρει τον δυναμικό συνδέτη από το να φορτώνει μη υπογεγραμμένες ή εξωτερικά υπογεγραμμένες δυναμικές βιβλιοθήκες. Όταν δοκιμάζετε συσκευές που μπορεί να έχουν αυτή τη λειτουργία ενεργοποιημένη, βεβαιωθείτε ότι είναι **απενεργοποιημένη** ή οι συνεδρίες σας Frida/objection θα τερματιστούν αμέσως.
|
||||
* Η Αυθεντικοποίηση Δείκτη (PAC) επιβάλλεται σε όλο το σύστημα σε συσκευές A12+. Η Frida ≥16 χειρίζεται διαφανώς την αφαίρεση PAC — απλώς κρατήστε ενημερωμένα τόσο το *frida-server* όσο και την Python/CLI εργαλειοθήκη όταν κυκλοφορεί μια νέα κύρια έκδοση iOS.
|
||||
|
||||
## Αναφορές
|
||||
|
||||
- [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed)
|
||||
|
||||
- Τεκμηρίωση προγραμματιστών της Apple – Ενεργοποίηση Λειτουργίας Προγραμματιστή σε μια συσκευή: <https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device>
|
||||
- Mobile Security Framework (MobSF): <https://mobsf.github.io/Mobile-Security-Framework-MobSF/>
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user