mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 20:53:37 +00:00
135 lines
13 KiB
Markdown
135 lines
13 KiB
Markdown
# iOS Pentesting Checklist
|
||
|
||
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||
|
||
\
|
||
Використовуйте [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), щоб легко створювати та **автоматизувати робочі процеси**, які підтримуються **найсучаснішими** інструментами спільноти.\
|
||
Отримайте доступ сьогодні:
|
||
|
||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||
|
||
{% hint style="success" %}
|
||
Вчіться та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
Вчіться та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
||
<details>
|
||
|
||
<summary>Підтримка HackTricks</summary>
|
||
|
||
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
|
||
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
|
||
|
||
</details>
|
||
{% endhint %}
|
||
|
||
### Підготовка
|
||
|
||
* [ ] Прочитайте [**Основи iOS**](ios-pentesting/ios-basics.md)
|
||
* [ ] Підготуйте своє середовище, прочитавши [**Середовище тестування iOS**](ios-pentesting/ios-testing-environment.md)
|
||
* [ ] Прочитайте всі розділи [**Початкового аналізу iOS**](ios-pentesting/#initial-analysis), щоб дізнатися про загальні дії для pentest iOS додатка
|
||
|
||
### Зберігання даних
|
||
|
||
* [ ] [**Plist файли**](ios-pentesting/#plist) можуть використовуватися для зберігання чутливої інформації.
|
||
* [ ] [**Core Data**](ios-pentesting/#core-data) (база даних SQLite) може зберігати чутливу інформацію.
|
||
* [ ] [**YapDatabases**](ios-pentesting/#yapdatabase) (база даних SQLite) може зберігати чутливу інформацію.
|
||
* [ ] [**Firebase**](ios-pentesting/#firebase-real-time-databases) неправильна конфігурація.
|
||
* [ ] [**Realm бази даних**](ios-pentesting/#realm-databases) можуть зберігати чутливу інформацію.
|
||
* [ ] [**Couchbase Lite бази даних**](ios-pentesting/#couchbase-lite-databases) можуть зберігати чутливу інформацію.
|
||
* [ ] [**Бінарні куки**](ios-pentesting/#cookies) можуть зберігати чутливу інформацію.
|
||
* [ ] [**Кешовані дані**](ios-pentesting/#cache) можуть зберігати чутливу інформацію.
|
||
* [ ] [**Автоматичні знімки**](ios-pentesting/#snapshots) можуть зберігати візуальну чутливу інформацію.
|
||
* [ ] [**Keychain**](ios-pentesting/#keychain) зазвичай використовується для зберігання чутливої інформації, яка може залишитися при перепродажу телефону.
|
||
* [ ] Підсумовуючи, просто **перевірте наявність чутливої інформації, збереженої додатком у файловій системі.**
|
||
|
||
### Клавіатури
|
||
|
||
* [ ] Чи дозволяє додаток [**використовувати користувацькі клавіатури**](ios-pentesting/#custom-keyboards-keyboard-cache)?
|
||
* [ ] Перевірте, чи зберігається чутлива інформація у [**файлах кешу клавіатур**](ios-pentesting/#custom-keyboards-keyboard-cache).
|
||
|
||
### **Логи**
|
||
|
||
* [ ] Перевірте, чи [**чутлива інформація ведеться в логах**](ios-pentesting/#logs).
|
||
|
||
### Резервні копії
|
||
|
||
* [ ] [**Резервні копії**](ios-pentesting/#backups) можуть використовуватися для **доступу до чутливої інформації**, збереженої у файловій системі (перевірте початковий пункт цього контрольного списку).
|
||
* [ ] Також, [**резервні копії**](ios-pentesting/#backups) можуть використовуватися для **модифікації деяких конфігурацій додатка**, а потім **відновлення** резервної копії на телефоні, і оскільки **модифікована конфігурація** **завантажується**, деяка (безпекова) **функціональність** може бути **обійдена**.
|
||
|
||
### **Пам'ять додатків**
|
||
|
||
* [ ] Перевірте наявність чутливої інформації всередині [**пам'яті додатка**](ios-pentesting/#testing-memory-for-sensitive-data).
|
||
|
||
### **Пошкоджена криптографія**
|
||
|
||
* [ ] Перевірте, чи можете ви знайти [**паролі, що використовуються для криптографії**](ios-pentesting/#broken-cryptography).
|
||
* [ ] Перевірте використання [**застарілих/слабких алгоритмів**](ios-pentesting/#broken-cryptography) для відправки/зберігання чутливих даних.
|
||
* [ ] [**Перехоплюйте та моніторте криптографічні функції**](ios-pentesting/#broken-cryptography).
|
||
|
||
### **Локальна аутентифікація**
|
||
|
||
* [ ] Якщо в додатку використовується [**локальна аутентифікація**](ios-pentesting/#local-authentication), вам слід перевірити, як працює аутентифікація.
|
||
* [ ] Якщо використовується [**Фреймворк локальної аутентифікації**](ios-pentesting/#local-authentication-framework), його можна легко обійти.
|
||
* [ ] Якщо використовується [**функція, яку можна динамічно обійти**](ios-pentesting/#local-authentication-using-keychain), ви можете створити власний скрипт frida.
|
||
|
||
### Вразливість чутливої функціональності через IPC
|
||
|
||
* [**Користувацькі обробники URI / Deeplinks / Користувацькі схеми**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes)
|
||
* [ ] Перевірте, чи додаток **реєструє будь-який протокол/схему**.
|
||
* [ ] Перевірте, чи додаток **реєструється для використання** будь-якого протоколу/схеми.
|
||
* [ ] Перевірте, чи додаток **очікує отримати будь-яку чутливу інформацію** з користувацької схеми, яку можна **перехопити** іншим додатком, що реєструє ту ж схему.
|
||
* [ ] Перевірте, чи додаток **не перевіряє та не очищає** введення користувачів через користувацьку схему, і чи можна експлуатувати якусь **вразливість**.
|
||
* [ ] Перевірте, чи додаток **викриває будь-яку чутливу дію**, яку можна викликати з будь-якого місця через користувацьку схему.
|
||
* [**Універсальні посилання**](ios-pentesting/#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/#network-communication) та шукайте веб-вразливості.
|
||
* [ ] Перевірте, чи [**перевіряється ім'я хоста сертифіката**](ios-pentesting/#hostname-check).
|
||
* [ ] Перевірте/обійдіть [**Certificate Pinning**](ios-pentesting/#certificate-pinning).
|
||
|
||
### **Різне**
|
||
|
||
* [ ] Перевірте наявність [**автоматичного патчінгу/оновлення**](ios-pentesting/#hot-patching-enforced-updateing) механізмів.
|
||
* [ ] Перевірте наявність [**шкідливих бібліотек третіх сторін**](ios-pentesting/#third-parties).
|
||
|
||
{% hint style="success" %}
|
||
Вчіться та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
Вчіться та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
||
<details>
|
||
|
||
<summary>Підтримка HackTricks</summary>
|
||
|
||
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
|
||
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
|
||
|
||
</details>
|
||
{% endhint %}
|
||
|
||
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||
|
||
\
|
||
Використовуйте [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), щоб легко створювати та **автоматизувати робочі процеси**, які підтримуються **найсучаснішими** інструментами спільноти.\
|
||
Отримайте доступ сьогодні:
|
||
|
||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|