iOS Extracting Entitlements From Compiled Application

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Summary of the page 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 файлів. Нижче наведена команда, яка демонструє, як це зробити:

$ 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), що розкриває успішне відновлення оригінального файлу entitlements з Telegram.

Для бінарних файлів додатків, до яких отримано доступ на джейлбрейкнутих пристроях (наприклад, через SSH), можна використовувати команду grep з прапорцем -a, --text, щоб розглядати всі файли як текст у кодуванні ASCII:

$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...

Налаштування прапорця -A num, --after-context=num дозволяє відображати більше або менше рядків. Цей метод є придатним навіть для зашифрованих бінарних файлів додатків і був перевірений на кількох додатках з App Store. Інструменти, згадані раніше, також можуть бути використані на пристроях iOS з виправленим джейлбрейком для подібних цілей.

Примітка: Пряме використання команди strings не рекомендується для цієї задачі через його обмеження у пошуку відповідної інформації. Замість цього, рекомендується використовувати grep з прапорцем -a на бінарному файлі або використовувати radare2 (izz)/rabin2 (-zz) для отримання більш ефективних результатів.

Last updated