mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
94 lines
10 KiB
Markdown
94 lines
10 KiB
Markdown
# iOS Pentesting Checklist
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|
||
|
||
### Підготовка
|
||
|
||
- [ ] Прочитайте [**Основи iOS**](ios-pentesting/ios-basics.md)
|
||
- [ ] Підготуйте своє середовище, прочитавши [**Середовище тестування iOS**](ios-pentesting/ios-testing-environment.md)
|
||
- [ ] Прочитайте всі розділи [**Початкового аналізу iOS**](ios-pentesting/index.html#initial-analysis), щоб дізнатися про загальні дії для тестування iOS-додатка
|
||
|
||
### Зберігання даних
|
||
|
||
- [ ] [**Plist файли**](ios-pentesting/index.html#plist) можуть використовуватися для зберігання чутливої інформації.
|
||
- [ ] [**Core Data**](ios-pentesting/index.html#core-data) (база даних SQLite) може зберігати чутливу інформацію.
|
||
- [ ] [**YapDatabases**](ios-pentesting/index.html#yapdatabase) (база даних SQLite) може зберігати чутливу інформацію.
|
||
- [ ] [**Firebase**](ios-pentesting/index.html#firebase-real-time-databases) неправильна конфігурація.
|
||
- [ ] [**Realm бази даних**](ios-pentesting/index.html#realm-databases) можуть зберігати чутливу інформацію.
|
||
- [ ] [**Couchbase Lite бази даних**](ios-pentesting/index.html#couchbase-lite-databases) можуть зберігати чутливу інформацію.
|
||
- [ ] [**Бінарні куки**](ios-pentesting/index.html#cookies) можуть зберігати чутливу інформацію
|
||
- [ ] [**Кешовані дані**](ios-pentesting/index.html#cache) можуть зберігати чутливу інформацію
|
||
- [ ] [**Автоматичні знімки**](ios-pentesting/index.html#snapshots) можуть зберігати візуальну чутливу інформацію
|
||
- [ ] [**Keychain**](ios-pentesting/index.html#keychain) зазвичай використовується для зберігання чутливої інформації, яка може залишитися при перепродажу телефону.
|
||
- [ ] Підсумовуючи, просто **перевірте наявність чутливої інформації, збереженої додатком у файловій системі**
|
||
|
||
### Клавіатури
|
||
|
||
- [ ] Чи дозволяє додаток [**використовувати користувацькі клавіатури**](ios-pentesting/index.html#custom-keyboards-keyboard-cache)?
|
||
- [ ] Перевірте, чи зберігається чутлива інформація у [**файлах кешу клавіатур**](ios-pentesting/index.html#custom-keyboards-keyboard-cache)
|
||
|
||
### **Логи**
|
||
|
||
- [ ] Перевірте, чи [**реєструється чутлива інформація**](ios-pentesting/index.html#logs)
|
||
|
||
### Резервні копії
|
||
|
||
- [ ] [**Резервні копії**](ios-pentesting/index.html#backups) можуть використовуватися для **доступу до чутливої інформації**, збереженої у файловій системі (перевірте початковий пункт цього контрольного списку)
|
||
- [ ] Також, [**резервні копії**](ios-pentesting/index.html#backups) можуть використовуватися для **модифікації деяких конфігурацій додатка**, а потім **відновлення** резервної копії на телефоні, і оскільки **модифікована конфігурація** **завантажується**, деяка (безпекова) **функціональність** може бути **обійдена**
|
||
|
||
### **Пам'ять додатків**
|
||
|
||
- [ ] Перевірте наявність чутливої інформації всередині [**пам'яті додатка**](ios-pentesting/index.html#testing-memory-for-sensitive-data)
|
||
|
||
### **Пошкоджена криптографія**
|
||
|
||
- [ ] Перевірте, чи можете ви знайти [**паролі, що використовуються для криптографії**](ios-pentesting/index.html#broken-cryptography)
|
||
- [ ] Перевірте використання [**застарілих/слабких алгоритмів**](ios-pentesting/index.html#broken-cryptography) для відправки/зберігання чутливих даних
|
||
- [ ] [**Перехоплюйте та моніторте криптографічні функції**](ios-pentesting/index.html#broken-cryptography)
|
||
|
||
### **Локальна аутентифікація**
|
||
|
||
- [ ] Якщо в додатку використовується [**локальна аутентифікація**](ios-pentesting/index.html#local-authentication), вам слід перевірити, як працює аутентифікація.
|
||
- [ ] Якщо використовується [**Фреймворк локальної аутентифікації**](ios-pentesting/index.html#local-authentication-framework), його можна легко обійти
|
||
- [ ] Якщо використовується [**функція, яку можна динамічно обійти**](ios-pentesting/index.html#local-authentication-using-keychain), ви можете створити власний скрипт frida
|
||
|
||
### Витік чутливої функціональності через IPC
|
||
|
||
- [**Користувацькі обробники URI / Глибокі посилання / Користувацькі схеми**](ios-pentesting/index.html#custom-uri-handlers-deeplinks-custom-schemes)
|
||
- [ ] Перевірте, чи додаток **реєструє будь-який протокол/схему**
|
||
- [ ] Перевірте, чи додаток **реєструється для використання** будь-якого протоколу/схеми
|
||
- [ ] Перевірте, чи додаток **очікує отримати будь-яку чутливу інформацію** з користувацької схеми, яка може бути **перехоплена** іншим додатком, що реєструє ту ж схему
|
||
- [ ] Перевірте, чи додаток **не перевіряє та не очищає** введення користувачів через користувацьку схему, і чи може бути **використана якась вразливість**
|
||
- [ ] Перевірте, чи додаток **викриває будь-яку чутливу дію**, яку можна викликати з будь-якого місця через користувацьку схему
|
||
- [**Універсальні посилання**](ios-pentesting/index.html#universal-links)
|
||
- [ ] Перевірте, чи додаток **реєструє будь-який універсальний протокол/схему**
|
||
- [ ] Перевірте файл `apple-app-site-association`
|
||
- [ ] Перевірте, чи додаток **не перевіряє та не очищає** введення користувачів через користувацьку схему, і чи може бути **використана якась вразливість**
|
||
- [ ] Перевірте, чи додаток **викриває будь-яку чутливу дію**, яку можна викликати з будь-якого місця через користувацьку схему
|
||
- [**UIActivity Sharing**](ios-pentesting/ios-uiactivity-sharing.md)
|
||
- [ ] Перевірте, чи може додаток отримувати UIActivities і чи можливо експлуатувати будь-яку вразливість зі спеціально підготовленою активністю
|
||
- [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md)
|
||
- [ ] Перевірте, чи додаток **копіює щось у загальний буфер обміну**
|
||
- [ ] Перевірте, чи додаток **використовує дані з загального буфера обміну для чогось**
|
||
- [ ] Моніторте буфер обміну, щоб перевірити, чи **копіюється якась чутлива інформація**
|
||
- [**Розширення додатків**](ios-pentesting/ios-app-extensions.md)
|
||
- [ ] Чи використовує додаток **будь-яке розширення**?
|
||
- [**WebViews**](ios-pentesting/ios-webviews.md)
|
||
- [ ] Перевірте, які види webviews використовуються
|
||
- [ ] Перевірте статус **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`**
|
||
- [ ] Перевірте, чи може webview **доступати до локальних файлів** з протоколом **file://** **(**`allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`)
|
||
- [ ] Перевірте, чи може Javascript отримати доступ до **Native** **методів** (`JSContext`, `postMessage`)
|
||
|
||
### Мережева комунікація
|
||
|
||
- [ ] Виконайте [**MitM для комунікації**](ios-pentesting/index.html#network-communication) і шукайте веб-вразливості.
|
||
- [ ] Перевірте, чи [**перевіряється ім'я хоста сертифіката**](ios-pentesting/index.html#hostname-check)
|
||
- [ ] Перевірте/обійдіть [**Pinning сертифікатів**](ios-pentesting/index.html#certificate-pinning)
|
||
|
||
### **Різне**
|
||
|
||
- [ ] Перевірте наявність [**автоматичного патчінгу/оновлення**](ios-pentesting/index.html#hot-patching-enforced-updateing) механізмів
|
||
- [ ] Перевірте наявність [**шкідливих бібліотек сторонніх розробників**](ios-pentesting/index.html#third-parties)
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|