13 KiB
iOS Pentesting Checklist
Використовуйте Trickest, щоб легко створювати та автоматизувати робочі процеси, які підтримуються найсучаснішими інструментами спільноти.
Отримайте доступ сьогодні:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% hint style="success" %}
Вчіться та практикуйте 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, щоб дізнатися про загальні дії для pentest iOS додатка
Зберігання даних
- Plist файли можуть використовуватися для зберігання чутливої інформації.
- Core Data (база даних SQLite) може зберігати чутливу інформацію.
- YapDatabases (база даних SQLite) може зберігати чутливу інформацію.
- Firebase неправильна конфігурація.
- Realm бази даних можуть зберігати чутливу інформацію.
- Couchbase Lite бази даних можуть зберігати чутливу інформацію.
- Бінарні куки можуть зберігати чутливу інформацію.
- Кешовані дані можуть зберігати чутливу інформацію.
- Автоматичні знімки можуть зберігати візуальну чутливу інформацію.
- Keychain зазвичай використовується для зберігання чутливої інформації, яка може залишитися при перепродажу телефону.
- Підсумовуючи, просто перевірте наявність чутливої інформації, збереженої додатком у файловій системі.
Клавіатури
- Чи дозволяє додаток використовувати користувацькі клавіатури?
- Перевірте, чи зберігається чутлива інформація у файлах кешу клавіатур.
Логи
- Перевірте, чи чутлива інформація ведеться в логах.
Резервні копії
- Резервні копії можуть використовуватися для доступу до чутливої інформації, збереженої у файловій системі (перевірте початковий пункт цього контрольного списку).
- Також, резервні копії можуть використовуватися для модифікації деяких конфігурацій додатка, а потім відновлення резервної копії на телефоні, і оскільки модифікована конфігурація завантажується, деяка (безпекова) функціональність може бути обійдена.
Пам'ять додатків
- Перевірте наявність чутливої інформації всередині пам'яті додатка.
Пошкоджена криптографія
- Перевірте, чи можете ви знайти паролі, що використовуються для криптографії.
- Перевірте використання застарілих/слабких алгоритмів для відправки/зберігання чутливих даних.
- Перехоплюйте та моніторте криптографічні функції.
Локальна аутентифікація
- Якщо в додатку використовується локальна аутентифікація, вам слід перевірити, як працює аутентифікація.
- Якщо використовується Фреймворк локальної аутентифікації, його можна легко обійти.
- Якщо використовується функція, яку можна динамічно обійти, ви можете створити власний скрипт frida.
Вразливість чутливої функціональності через IPC
- Користувацькі обробники URI / Deeplinks / Користувацькі схеми
- Перевірте, чи додаток реєструє будь-який протокол/схему.
- Перевірте, чи додаток реєструється для використання будь-якого протоколу/схеми.
- Перевірте, чи додаток очікує отримати будь-яку чутливу інформацію з користувацької схеми, яку можна перехопити іншим додатком, що реєструє ту ж схему.
- Перевірте, чи додаток не перевіряє та не очищає введення користувачів через користувацьку схему, і чи можна експлуатувати якусь вразливість.
- Перевірте, чи додаток викриває будь-яку чутливу дію, яку можна викликати з будь-якого місця через користувацьку схему.
- Універсальні посилання
- Перевірте, чи додаток реєструє будь-який універсальний протокол/схему.
- Перевірте файл
apple-app-site-association
. - Перевірте, чи додаток не перевіряє та не очищає введення користувачів через користувацьку схему, і чи можна експлуатувати якусь вразливість.
- Перевірте, чи додаток викриває будь-яку чутливу дію, яку можна викликати з будь-якого місця через користувацьку схему.
- UIActivity Sharing
- Перевірте, чи може додаток отримувати UIActivities і чи можливо експлуатувати будь-яку вразливість зі спеціально підготовленою активністю.
- UIPasteboard
- Перевірте, чи додаток копіює щось у загальний буфер обміну.
- Перевірте, чи додаток використовує дані з загального буфера обміну для чогось.
- Моніторте буфер обміну, щоб перевірити, чи копіюються якісь чутливі дані.
- Розширення додатків
- Чи використовує додаток будь-яке розширення?
- WebViews
- Перевірте, які види webviews використовуються.
- Перевірте статус
javaScriptEnabled
,JavaScriptCanOpenWindowsAutomatically
,hasOnlySecureContent
. - Перевірте, чи може webview доступати до локальних файлів з протоколом file:// (
allowFileAccessFromFileURLs
,allowUniversalAccessFromFileURLs
). - Перевірте, чи може Javascript отримати доступ до Native методів (
JSContext
,postMessage
).
Мережева комунікація
- Виконайте MitM для комунікації та шукайте веб-вразливості.
- Перевірте, чи перевіряється ім'я хоста сертифіката.
- Перевірте/обійдіть Certificate Pinning.
Різне
- Перевірте наявність автоматичного патчінгу/оновлення механізмів.
- Перевірте наявність шкідливих бібліотек третіх сторін.
{% hint style="success" %}
Вчіться та практикуйте 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.
Використовуйте Trickest, щоб легко створювати та автоматизувати робочі процеси, які підтримуються найсучаснішими інструментами спільноти.
Отримайте доступ сьогодні:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}