7.1 KiB
Extracting Entitlements from Compiled Application
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Summary of the page https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary
Extracting Entitlements and Mobile Provision Files
Όταν ασχολείστε με το IPA μιας εφαρμογής ή με μια εγκατεστημένη εφαρμογή σε μια jailbroken συσκευή, η εύρεση των αρχείων .entitlements
ή του αρχείου embedded.mobileprovision
μπορεί να μην είναι δυνατή. Ωστόσο, οι λίστες ιδιοτήτων entitlements μπορούν να εξαχθούν από το δυαδικό αρχείο της εφαρμογής, ακολουθώντας τις διαδικασίες που περιγράφονται στο κεφάλαιο "iOS Basic Security Testing", ιδιαίτερα στην ενότητα "Acquiring the App Binary".
Ακόμα και με κρυπτογραφημένα δυαδικά αρχεία, ορισμένα βήματα μπορούν να χρησιμοποιηθούν για να εξαχθούν αυτά τα αρχεία. Εάν αυτά τα βήματα αποτύχουν, εργαλεία όπως το Clutch (αν είναι συμβατό με την έκδοση iOS), frida-ios-dump ή παρόμοια βοηθητικά προγράμματα μπορεί να απαιτούνται για να αποκρυπτογραφήσουν και να εξάγουν την εφαρμογή.
Extracting the Entitlements Plist from the App Binary
Με το δυαδικό αρχείο της εφαρμογής προσβάσιμο σε υπολογιστή, binwalk μπορεί να χρησιμοποιηθεί για να εξαχθούν όλα τα XML αρχεία. Η παρακάτω εντολή δείχνει πώς να το κάνετε αυτό:
$ binwalk -e -y=xml ./Telegram\ X
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
1430180 0x15D2A4 XML document, version: "1.0"
1458814 0x16427E XML document, version: "1.0"
Εναλλακτικά, radare2 μπορεί να χρησιμοποιηθεί για να εκτελέσει ήσυχα μια εντολή και να εξέλθει, αναζητώντας όλες τις συμβολοσειρές στο δυαδικό αρχείο της εφαρμογής που περιέχουν "PropertyList":
$ r2 -qc 'izz~PropertyList' ./Telegram\ X
0x0015d2a4 ascii <?xml version="1.0" encoding="UTF-8" standalone="yes"?>...
0x0016427d ascii H<?xml version="1.0" encoding="UTF-8"?>...
Και οι δύο μέθοδοι, binwalk και radare2, επιτρέπουν την εξαγωγή αρχείων plist
, με μια επιθεώρηση του πρώτου (0x0015d2a4) να αποκαλύπτει μια επιτυχημένη ανάκτηση του αρχικού αρχείου δικαιωμάτων από το Telegram.
Για τα δυαδικά αρχεία εφαρμογών που προσπελάστηκαν σε jailbroken συσκευές (π.χ., μέσω SSH), η εντολή grep με την επιλογή -a, --text
μπορεί να χρησιμοποιηθεί για να αντιμετωπιστούν όλα τα αρχεία ως ASCII κείμενο:
$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...
Ρυθμίζοντας την επιλογή -A num, --after-context=num
επιτρέπει την εμφάνιση περισσότερων ή λιγότερων γραμμών. Αυτή η μέθοδος είναι βιώσιμη ακόμη και για κωδικοποιημένα δυαδικά αρχεία εφαρμογών και έχει επαληθευτεί σε πολλές εφαρμογές του App Store. Τα εργαλεία που αναφέρθηκαν νωρίτερα μπορούν επίσης να χρησιμοποιηθούν σε jailbroken iOS συσκευές για παρόμοιους σκοπούς.
Σημείωση: Η άμεση χρήση της εντολής strings
δεν συνιστάται για αυτήν την εργασία λόγω των περιορισμών της στην εύρεση σχετικών πληροφοριών. Αντίθετα, η χρήση του grep με την επιλογή -a
στο δυαδικό αρχείο ή η αξιοποίηση του radare2 (izz
)/rabin2 (-zz
) είναι σκόπιμη για πιο αποτελεσματικά αποτελέσματα.
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.