hacktricks/mobile-pentesting/ios-pentesting/extracting-entitlements-from-compiled-application.md

69 lines
7.1 KiB
Markdown
Raw Normal View History

# Extracting Entitlements from Compiled Application
2022-04-28 16:01:33 +00:00
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Support HackTricks</summary>
2022-04-28 16:01:33 +00:00
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
2022-04-28 16:01:33 +00:00
Summary of the page [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary)
2024-02-08 03:08:28 +00:00
### **Extracting Entitlements and Mobile Provision Files**
2021-05-17 19:08:47 +00:00
Όταν ασχολείστε με το IPA μιας εφαρμογής ή με μια εγκατεστημένη εφαρμογή σε μια jailbroken συσκευή, η εύρεση των αρχείων `.entitlements` ή του αρχείου `embedded.mobileprovision` μπορεί να μην είναι δυνατή. Ωστόσο, οι λίστες ιδιοτήτων entitlements μπορούν να εξαχθούν από το δυαδικό αρχείο της εφαρμογής, ακολουθώντας τις διαδικασίες που περιγράφονται στο κεφάλαιο "iOS Basic Security Testing", ιδιαίτερα στην ενότητα "Acquiring the App Binary".
2021-05-17 19:08:47 +00:00
Ακόμα και με κρυπτογραφημένα δυαδικά αρχεία, ορισμένα βήματα μπορούν να χρησιμοποιηθούν για να εξαχθούν αυτά τα αρχεία. Εάν αυτά τα βήματα αποτύχουν, εργαλεία όπως το Clutch (αν είναι συμβατό με την έκδοση iOS), frida-ios-dump ή παρόμοια βοηθητικά προγράμματα μπορεί να απαιτούνται για να αποκρυπτογραφήσουν και να εξάγουν την εφαρμογή.
2021-05-17 19:08:47 +00:00
#### **Extracting the Entitlements Plist from the App Binary**
2021-05-17 19:08:47 +00:00
Με το δυαδικό αρχείο της εφαρμογής προσβάσιμο σε υπολογιστή, **binwalk** μπορεί να χρησιμοποιηθεί για να εξαχθούν όλα τα XML αρχεία. Η παρακάτω εντολή δείχνει πώς να το κάνετε αυτό:
2021-05-17 19:08:47 +00:00
```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":
2021-05-17 19:08:47 +00:00
```bash
$ r2 -qc 'izz~PropertyList' ./Telegram\ X
2024-02-08 03:08:28 +00:00
0x0015d2a4 ascii <?xml version="1.0" encoding="UTF-8" standalone="yes"?>...
0x0016427d ascii H<?xml version="1.0" encoding="UTF-8"?>...
2021-05-17 19:08:47 +00:00
```
Και οι δύο μέθοδοι, binwalk και radare2, επιτρέπουν την εξαγωγή αρχείων `plist`, με μια επιθεώρηση του πρώτου (0x0015d2a4) να αποκαλύπτει μια επιτυχημένη ανάκτηση του [αρχικού αρχείου δικαιωμάτων από το Telegram](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements).
2021-05-17 19:08:47 +00:00
Για τα δυαδικά αρχεία εφαρμογών που προσπελάστηκαν σε jailbroken συσκευές (π.χ., μέσω SSH), η εντολή **grep** με την επιλογή `-a, --text` μπορεί να χρησιμοποιηθεί για να αντιμετωπιστούν όλα τα αρχεία ως ASCII κείμενο:
2021-05-17 19:08:47 +00:00
```bash
2024-02-08 03:08:28 +00:00
$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...
2021-05-17 19:08:47 +00:00
```
Ρυθμίζοντας την επιλογή `-A num, --after-context=num` επιτρέπει την εμφάνιση περισσότερων ή λιγότερων γραμμών. Αυτή η μέθοδος είναι βιώσιμη ακόμη και για κωδικοποιημένα δυαδικά αρχεία εφαρμογών και έχει επαληθευτεί σε πολλές εφαρμογές του App Store. Τα εργαλεία που αναφέρθηκαν νωρίτερα μπορούν επίσης να χρησιμοποιηθούν σε jailbroken iOS συσκευές για παρόμοιους σκοπούς.
2021-05-17 19:08:47 +00:00
**Σημείωση**: Η άμεση χρήση της εντολής `strings` δεν συνιστάται για αυτήν την εργασία λόγω των περιορισμών της στην εύρεση σχετικών πληροφοριών. Αντίθετα, η χρήση του grep με την επιλογή `-a` στο δυαδικό αρχείο ή η αξιοποίηση του radare2 (`izz`)/rabin2 (`-zz`) είναι σκόπιμη για πιο αποτελεσματικά αποτελέσματα.
2022-04-28 16:01:33 +00:00
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Support HackTricks</summary>
2022-04-28 16:01:33 +00:00
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}