Εξαγωγή Δικαιωμάτων από Συγκεντρωμένη Εφαρμογή

Reading time: 4 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

Περίληψη της σελίδας https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary

Εξαγωγή Δικαιωμάτων και Αρχείων Mobile Provision

Όταν ασχολείστε με το IPA μιας εφαρμογής ή με μια εγκατεστημένη εφαρμογή σε μια jailbroken συσκευή, η εύρεση αρχείων .entitlements ή του αρχείου embedded.mobileprovision μπορεί να μην είναι δυνατή. Ωστόσο, οι λίστες ιδιοτήτων δικαιωμάτων μπορούν να εξαχθούν από το δυαδικό αρχείο της εφαρμογής, ακολουθώντας τις διαδικασίες που περιγράφονται στο κεφάλαιο "iOS Basic Security Testing", ιδιαίτερα στην ενότητα "Acquiring the App Binary".

Ακόμα και με κρυπτογραφημένα δυαδικά αρχεία, ορισμένα βήματα μπορούν να χρησιμοποιηθούν για να εξαχθούν αυτά τα αρχεία. Εάν αυτά τα βήματα αποτύχουν, εργαλεία όπως το Clutch (αν είναι συμβατό με την έκδοση iOS), frida-ios-dump ή παρόμοια βοηθητικά προγράμματα μπορεί να απαιτούνται για να αποκρυπτογραφήσουν και να εξάγουν την εφαρμογή.

Εξαγωγή της Λίστας Δικαιωμάτων Plist από το Δυαδικό Αρχείο της Εφαρμογής

Με το δυαδικό αρχείο της εφαρμογής προσβάσιμο σε υπολογιστή, binwalk μπορεί να χρησιμοποιηθεί για να εξάγει όλα τα XML αρχεία. Η παρακάτω εντολή δείχνει πώς να το κάνετε αυτό:

bash
$ 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":

bash
$ 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 κείμενο:

bash
$ 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) είναι σκόπιμη για πιο αποτελεσματικά αποτελέσματα.

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