iOS Pentesting without Jailbreak
Reading time: 5 minutes
tip
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Main idea
Οι εφαρμογές που υπογράφονται με την εξουσιοδότηση get_task_allow
επιτρέπουν σε τρίτες εφαρμογές να εκτελούν μια λειτουργία που ονομάζεται task_for_pid()
με το ID της αρχικής εφαρμογής ως παράμετρο για να αποκτήσουν την θύρα εργασίας πάνω της (να είναι σε θέση να την ελέγξουν και να έχουν πρόσβαση στη μνήμη της).
Ωστόσο, δεν είναι τόσο εύκολο όσο το να τραβήξετε το IPA, να το ξαναυπογράψετε με την εξουσιοδότηση και να το επαναφέρετε στη συσκευή σας. Αυτό οφείλεται στην προστασία FairPlay. Όταν αλλάζει η υπογραφή της εφαρμογής, το κλειδί DRM (Digital Rights Management) ακυρώνεται και η εφαρμογή δεν θα λειτουργήσει.
Με μια παλιά jailbroken συσκευή, είναι δυνατό να εγκαταστήσετε το IPA, να το αποκρυπτογραφήσετε χρησιμοποιώντας το αγαπημένο σας εργαλείο (όπως το Iridium ή το frida-ios-dump) και να το τραβήξετε πίσω από τη συσκευή. Αν και, αν είναι δυνατόν, συνιστάται να ρωτήσετε τον πελάτη για το αποκρυπτογραφημένο IPA.
Obtain decrypted IPA
Get it from Apple
- Εγκαταστήστε την εφαρμογή που θέλετε να δοκιμάσετε στο iPhone
- Εγκαταστήστε και εκκινήστε το Apple Configurator μέσα στο macos σας
- Ανοίξτε το
Terminal
στο Mac σας και cd στο/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps
. Το IPA θα εμφανιστεί σε αυτόν τον φάκελο αργότερα. - Πρέπει να δείτε τη συσκευή iOS σας. Κάντε διπλό κλικ σε αυτήν και στη συνέχεια κάντε κλικ στο Προσθήκη + → Εφαρμογές από την επάνω μπάρα μενού.
- Μετά την κλικ στο Προσθήκη, το Configurator θα κατεβάσει το IPA από την Apple και θα προσπαθήσει να το στείλει στη συσκευή σας. Αν ακολουθήσατε τη σύστασή μου νωρίτερα και έχετε ήδη εγκαταστήσει το IPA, θα εμφανιστεί ένα παράθυρο που θα σας ζητά να επανεγκαταστήσετε την εφαρμογή.
- Το 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 για περισσότερες λεπτομέρειες σχετικά με αυτή τη διαδικασία.
Decrypting the app
Για να αποκρυπτογραφήσουμε το IPA, θα το εγκαταστήσουμε. Ωστόσο, αν έχετε ένα παλιό jailbroken iPhone, πιθανώς η έκδοσή του δεν θα υποστηρίζεται από την εφαρμογή, καθώς συνήθως οι εφαρμογές υποστηρίζουν μόνο τις τελευταίες εκδόσεις.
Έτσι, για να το εγκαταστήσετε, απλώς αποσυμπιέστε το IPA:
unzip redacted.ipa -d unzipped
Ελέγξτε το Info.plist
για την ελάχιστη υποστηριζόμενη έκδοση και αν η συσκευή σας είναι παλαιότερη από αυτήν, αλλάξτε την τιμή ώστε να είναι υποστηριζόμενη.
Συμπιέστε ξανά το IPA:
cd unzipped
zip -r ../no-min-version.ipa *
Στη συνέχεια, εγκαταστήστε το IPA για παράδειγμα με:
ideviceinstaller -i no-min-version.ipa -w
Σημειώστε ότι μπορεί να χρειαστείτε το AppSync Unified tweak από το Cydia για να αποτρέψετε τυχόν σφάλματα invalid signature
.
Αφού εγκατασταθεί, μπορείτε να χρησιμοποιήσετε το Iridium tweak από το Cydia για να αποκτήσετε το αποκρυπτογραφημένο IPA.
Patch entitlements & re-sign
Για να επαναυπογράψετε την εφαρμογή με το δικαίωμα get-task-allow
, υπάρχουν διάφορα εργαλεία διαθέσιμα όπως το app-signer
, codesign
και iResign
. Το app-signer
έχει μια πολύ φιλική προς το χρήστη διεπαφή που επιτρέπει να επαναυπογράψετε πολύ εύκολα ένα αρχείο IPA υποδεικνύοντας το IPA που θέλετε να επαναυπογράψετε, να θέσετε το get-task-allow
και το πιστοποιητικό και το προφίλ παροχής που θα χρησιμοποιήσετε.
Όσον αφορά το πιστοποιητικό και τα προφίλ υπογραφής, η Apple προσφέρει δωρεάν προφίλ υπογραφής προγραμματιστών για όλους τους λογαριασμούς μέσω του Xcode. Απλώς δημιουργήστε μια εφαρμογή και ρυθμίστε ένα. Στη συνέχεια, ρυθμίστε το iPhone να εμπιστεύεται τις εφαρμογές προγραμματιστών πηγαίνοντας στις Ρυθμίσεις
→ Απόρρητο & Ασφάλεια
, και κάντε κλικ στο Developer Mode
.
Με το επαναυπογεγραμμένο IPA, ήρθε η ώρα να το εγκαταστήσετε στη συσκευή για να το δοκιμάσετε:
ideviceinstaller -i resigned.ipa -w
Hook
Μπορείτε εύκολα να συνδέσετε την εφαρμογή σας χρησιμοποιώντας κοινά εργαλεία όπως το frida και το objection:
objection -g [your app bundle ID] explore
Αναφορές
tip
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.