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

69 lines
6.8 KiB
Markdown
Raw Normal View History

# Витягування прав зкомпільованого додатку
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
Резюме сторінки [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
### **Витягування прав та мобільних провізійних файлів**
2021-05-17 19:08:47 +00:00
При роботі з IPA додатком або встановленим додатком на джейлбрейкнутому пристрої, безпосередньо знайти файли `.entitlements` або файл `embedded.mobileprovision` може бути неможливо. Однак, списки прав все ще можна витягнути з бінарного файлу додатку, дотримуючись процедур, викладених у розділі "Основне тестування безпеки iOS", зокрема в розділі "Отримання бінарного файлу додатку".
2021-05-17 19:08:47 +00:00
Навіть з зашифрованими бінарними файлами, певні кроки можуть бути використані для витягнення цих файлів. Якщо ці кроки не вдаються, можуть знадобитися інструменти, такі як Clutch (якщо сумісний з версією iOS), frida-ios-dump або подібні утиліти для дешифрування та витягнення додатку.
2021-05-17 19:08:47 +00:00
#### **Витягування plist прав з бінарного файлу додатку**
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
Для бінарних файлів додатків, доступних на зламаних пристроях (наприклад, через 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. Згадані раніше інструменти також можуть бути використані на джейлбрейкнутіх iOS пристроях для подібних цілей.
**Примітка**: Пряме використання команди `strings` не рекомендується для цього завдання через її обмеження у знаходженні відповідної інформації. Натомість, рекомендується використовувати grep з прапором `-a` на бінарному файлі або використовувати radare2 (`izz`)/rabin2 (`-zz`) для більш ефективних результатів.
2021-05-17 19:08:47 +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)
<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 %}