iOS Extracting Entitlements From Compiled Application
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 файлів. Нижче наведена команда, яка демонструє, як це зробити:
Альтернативно, radare2 може бути використаний для тихого запуску команди та виходу, пошуку всіх рядків у бінарному файлі додатка, які містять "PropertyList":
Обидва методи, binwalk та radare2, дозволяють видобувати файли plist
, з інспекцією першого (0x0015d2a4), що розкриває успішне відновлення оригінального файлу entitlements з Telegram.
Для бінарних файлів додатків, до яких отримано доступ на джейлбрейкнутих пристроях (наприклад, через SSH), можна використовувати команду grep з прапорцем -a, --text
, щоб розглядати всі файли як текст у кодуванні ASCII:
Налаштування прапорця -A num, --after-context=num
дозволяє відображати більше або менше рядків. Цей метод є придатним навіть для зашифрованих бінарних файлів додатків і був перевірений на кількох додатках з App Store. Інструменти, згадані раніше, також можуть бути використані на пристроях iOS з виправленим джейлбрейком для подібних цілей.
Примітка: Пряме використання команди strings
не рекомендується для цієї задачі через його обмеження у пошуку відповідної інформації. Замість цього, рекомендується використовувати grep з прапорцем -a
на бінарному файлі або використовувати radare2 (izz
)/rabin2 (-zz
) для отримання більш ефективних результатів.
Last updated