iOS Pentesting Checklist
Reading time: 5 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Підготовка
- Прочитайте Основи iOS
- Підготуйте своє середовище, прочитавши Середовище тестування iOS
- Прочитайте всі розділи Початкового аналізу iOS, щоб дізнатися про загальні дії для тестування iOS-додатка
Зберігання даних
- Plist файли можуть використовуватися для зберігання чутливої інформації.
- Core Data (база даних SQLite) може зберігати чутливу інформацію.
- YapDatabases (база даних SQLite) може зберігати чутливу інформацію.
- Firebase неправильна конфігурація.
- Realm бази даних можуть зберігати чутливу інформацію.
- Couchbase Lite бази даних можуть зберігати чутливу інформацію.
- Бінарні куки можуть зберігати чутливу інформацію
- Кешовані дані можуть зберігати чутливу інформацію
- Автоматичні знімки можуть зберігати візуальну чутливу інформацію
- Keychain зазвичай використовується для зберігання чутливої інформації, яка може залишитися при перепродажу телефону.
- Підсумовуючи, просто перевірте наявність чутливої інформації, збереженої додатком у файловій системі
Клавіатури
- Чи дозволяє додаток використовувати користувацькі клавіатури?
- Перевірте, чи зберігається чутлива інформація у файлах кешу клавіатур
Логи
- Перевірте, чи реєструється чутлива інформація
Резервні копії
- Резервні копії можуть використовуватися для доступу до чутливої інформації, збереженої у файловій системі (перевірте початковий пункт цього контрольного списку)
- Також, резервні копії можуть використовуватися для модифікації деяких конфігурацій додатка, а потім відновлення резервної копії на телефоні, і оскільки модифікована конфігурація завантажується, деяка (безпекова) функціональність може бути обійдена
Пам'ять додатків
- Перевірте наявність чутливої інформації всередині пам'яті додатка
Пошкоджена криптографія
- Перевірте, чи можете ви знайти паролі, що використовуються для криптографії
- Перевірте використання застарілих/слабких алгоритмів для відправки/зберігання чутливих даних
- Перехоплюйте та моніторте криптографічні функції
Локальна аутентифікація
- Якщо в додатку використовується локальна аутентифікація, вам слід перевірити, як працює аутентифікація.
- Якщо використовується Фреймворк локальної аутентифікації, його можна легко обійти
- Якщо використовується функція, яку можна динамічно обійти, ви можете створити власний скрипт frida
Витік чутливої функціональності через IPC
- Користувацькі обробники URI / Глибокі посилання / Користувацькі схеми
- Перевірте, чи додаток реєструє будь-який протокол/схему
- Перевірте, чи додаток реєструється для використання будь-якого протоколу/схеми
- Перевірте, чи додаток очікує отримати будь-яку чутливу інформацію з користувацької схеми, яка може бути перехоплена іншим додатком, що реєструє ту ж схему
- Перевірте, чи додаток не перевіряє та не очищає введення користувачів через користувацьку схему, і чи може бути використана якась вразливість
- Перевірте, чи додаток викриває будь-яку чутливу дію, яку можна викликати з будь-якого місця через користувацьку схему
- Універсальні посилання
- Перевірте, чи додаток реєструє будь-який універсальний протокол/схему
-
Перевірте файл
apple-app-site-association
- Перевірте, чи додаток не перевіряє та не очищає введення користувачів через користувацьку схему, і чи може бути використана якась вразливість
- Перевірте, чи додаток викриває будь-яку чутливу дію, яку можна викликати з будь-якого місця через користувацьку схему
- UIActivity Sharing
- Перевірте, чи може додаток отримувати UIActivities і чи можливо експлуатувати будь-яку вразливість зі спеціально підготовленою активністю
- UIPasteboard
- Перевірте, чи додаток копіює щось у загальний буфер обміну
- Перевірте, чи додаток використовує дані з загального буфера обміну для чогось
- Моніторте буфер обміну, щоб перевірити, чи копіюється якась чутлива інформація
- Розширення додатків
- Чи використовує додаток будь-яке розширення?
- WebViews
- Перевірте, які види webviews використовуються
-
Перевірте статус
javaScriptEnabled
,JavaScriptCanOpenWindowsAutomatically
,hasOnlySecureContent
-
Перевірте, чи може webview доступати до локальних файлів з протоколом file:// (
allowFileAccessFromFileURLs
,allowUniversalAccessFromFileURLs
) -
Перевірте, чи може Javascript отримати доступ до Native методів (
JSContext
,postMessage
)
Мережева комунікація
- Виконайте MitM для комунікації і шукайте веб-вразливості.
- Перевірте, чи перевіряється ім'я хоста сертифіката
- Перевірте/обійдіть Pinning сертифікатів
Різне
- Перевірте наявність автоматичного патчінгу/оновлення механізмів
- Перевірте наявність шкідливих бібліотек сторонніх розробників
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.