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

68 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Витягування прав зкомпільованого додатку
{% 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)
<details>
<summary>Support HackTricks</summary>
* 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.
</details>
{% endhint %}
Резюме сторінки [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)
### **Витягування прав та мобільних провізійних файлів**
При роботі з IPA додатком або встановленим додатком на джейлбрейкнутому пристрої, безпосередньо знайти файли `.entitlements` або файл `embedded.mobileprovision` може бути неможливо. Однак, списки прав все ще можна витягнути з бінарного файлу додатку, дотримуючись процедур, викладених у розділі "Основне тестування безпеки iOS", зокрема в розділі "Отримання бінарного файлу додатку".
Навіть з зашифрованими бінарними файлами, певні кроки можуть бути використані для витягнення цих файлів. Якщо ці кроки не вдаються, можуть знадобитися інструменти, такі як 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](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements).
Для бінарних файлів додатків, доступних на зламаних пристроях (наприклад, через SSH), команда **grep** з прапором `-a, --text` може бути використана для обробки всіх файлів як ASCII тексту:
```bash
$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...
```
Налаштування прапора `-A num, --after-context=num` дозволяє відображати більше або менше рядків. Цей метод є життєздатним навіть для зашифрованих бінарних додатків і був перевірений на кількох додатках з App Store. Згадані раніше інструменти також можуть бути використані на джейлбрейкнутіх iOS пристроях для подібних цілей.
**Примітка**: Пряме використання команди `strings` не рекомендується для цього завдання через її обмеження у знаходженні відповідної інформації. Натомість, рекомендується використовувати grep з прапором `-a` на бінарному файлі або використовувати radare2 (`izz`)/rabin2 (`-zz`) для більш ефективних результатів.
{% 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)
<details>
<summary>Support HackTricks</summary>
* 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.
</details>
{% endhint %}