# Lista kontrolna pentestingu iOS
\
Użyj [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), aby łatwo budować i **automatyzować przepływy pracy** zasilane przez **najbardziej zaawansowane** narzędzia społecznościowe na świecie.\
Uzyskaj dostęp już dziś:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% hint style="success" %}
Ucz się i ćwicz Hacking AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Ucz się i ćwicz Hacking GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Wsparcie dla HackTricks
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się sztuczkami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na GitHubie.
{% endhint %}
### Przygotowanie
* [ ] Przeczytaj [**Podstawy iOS**](ios-pentesting/ios-basics.md)
* [ ] Przygotuj swoje środowisko, czytając [**Środowisko testowe iOS**](ios-pentesting/ios-testing-environment.md)
* [ ] Przeczytaj wszystkie sekcje [**Wstępnej analizy iOS**](ios-pentesting/#initial-analysis), aby poznać wspólne działania do pentestingu aplikacji iOS
### Przechowywanie danych
* [ ] [**Pliki Plist**](ios-pentesting/#plist) mogą być używane do przechowywania wrażliwych informacji.
* [ ] [**Core Data**](ios-pentesting/#core-data) (baza danych SQLite) może przechowywać wrażliwe informacje.
* [ ] [**YapDatabases**](ios-pentesting/#yapdatabase) (baza danych SQLite) może przechowywać wrażliwe informacje.
* [ ] [**Firebase**](ios-pentesting/#firebase-real-time-databases) błędna konfiguracja.
* [ ] [**Bazy danych Realm**](ios-pentesting/#realm-databases) mogą przechowywać wrażliwe informacje.
* [ ] [**Bazy danych Couchbase Lite**](ios-pentesting/#couchbase-lite-databases) mogą przechowywać wrażliwe informacje.
* [ ] [**Cookies binarne**](ios-pentesting/#cookies) mogą przechowywać wrażliwe informacje.
* [ ] [**Dane w pamięci podręcznej**](ios-pentesting/#cache) mogą przechowywać wrażliwe informacje.
* [ ] [**Automatyczne zrzuty**](ios-pentesting/#snapshots) mogą zapisywać wizualne wrażliwe informacje.
* [ ] [**Keychain**](ios-pentesting/#keychain) jest zazwyczaj używany do przechowywania wrażliwych informacji, które mogą zostać pozostawione przy odsprzedaży telefonu.
* [ ] Podsumowując, po prostu **sprawdź, czy aplikacja zapisuje wrażliwe informacje w systemie plików.**
### Klawiatury
* [ ] Czy aplikacja [**pozwala na używanie niestandardowych klawiatur**](ios-pentesting/#custom-keyboards-keyboard-cache)?
* [ ] Sprawdź, czy wrażliwe informacje są zapisywane w [**plikach pamięci podręcznej klawiatur**](ios-pentesting/#custom-keyboards-keyboard-cache).
### **Logi**
* [ ] Sprawdź, czy [**wrażliwe informacje są rejestrowane**](ios-pentesting/#logs).
### Kopie zapasowe
* [ ] [**Kopie zapasowe**](ios-pentesting/#backups) mogą być używane do **uzyskania dostępu do wrażliwych informacji** zapisanych w systemie plików (sprawdź początkowy punkt tej listy kontrolnej).
* [ ] Ponadto, [**kopie zapasowe**](ios-pentesting/#backups) mogą być używane do **modyfikacji niektórych konfiguracji aplikacji**, a następnie **przywrócenia** kopii zapasowej na telefonie, a jako **zmodyfikowana konfiguracja** jest **ładowana**, niektóre (bezpieczeństwa) **funkcjonalności** mogą być **obejście**.
### **Pamięć aplikacji**
* [ ] Sprawdź wrażliwe informacje w [**pamięci aplikacji**](ios-pentesting/#testing-memory-for-sensitive-data).
### **Złamana kryptografia**
* [ ] Sprawdź, czy możesz znaleźć [**hasła używane do kryptografii**](ios-pentesting/#broken-cryptography).
* [ ] Sprawdź użycie [**przestarzałych/słabych algorytmów**](ios-pentesting/#broken-cryptography) do wysyłania/przechowywania wrażliwych danych.
* [ ] [**Hook i monitoruj funkcje kryptograficzne**](ios-pentesting/#broken-cryptography).
### **Lokalna autoryzacja**
* [ ] Jeśli w aplikacji używana jest [**lokalna autoryzacja**](ios-pentesting/#local-authentication), powinieneś sprawdzić, jak działa autoryzacja.
* [ ] Jeśli używa [**Frameworka lokalnej autoryzacji**](ios-pentesting/#local-authentication-framework), może być łatwo obejście.
* [ ] Jeśli używa [**funkcji, która może być dynamicznie obejście**](ios-pentesting/#local-authentication-using-keychain), możesz stworzyć niestandardowy skrypt frida.
### Ekspozycja wrażliwej funkcjonalności przez IPC
* [**Niestandardowe obsługiwacze URI / Deeplinks / Niestandardowe schematy**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes).
* [ ] Sprawdź, czy aplikacja **rejestruje jakikolwiek protokół/schemat**.
* [ ] Sprawdź, czy aplikacja **rejestruje się do użycia** jakiegokolwiek protokołu/schematu.
* [ ] Sprawdź, czy aplikacja **oczekuje otrzymania jakichkolwiek wrażliwych informacji** z niestandardowego schematu, które mogą być **przechwycone** przez inną aplikację rejestrującą ten sam schemat.
* [ ] Sprawdź, czy aplikacja **nie sprawdza i nie oczyszcza** danych wejściowych użytkowników przez niestandardowy schemat i czy jakaś **vulnerabilność może być wykorzystana**.
* [ ] Sprawdź, czy aplikacja **ekspozytuje jakąkolwiek wrażliwą akcję**, która może być wywołana z dowolnego miejsca przez niestandardowy schemat.
* [**Uniwersalne linki**](ios-pentesting/#universal-links).
* [ ] Sprawdź, czy aplikacja **rejestruje jakikolwiek uniwersalny protokół/schemat**.
* [ ] Sprawdź plik `apple-app-site-association`.
* [ ] Sprawdź, czy aplikacja **nie sprawdza i nie oczyszcza** danych wejściowych użytkowników przez niestandardowy schemat i czy jakaś **vulnerabilność może być wykorzystana**.
* [ ] Sprawdź, czy aplikacja **ekspozytuje jakąkolwiek wrażliwą akcję**, która może być wywołana z dowolnego miejsca przez niestandardowy schemat.
* [**Udostępnianie UIActivity**](ios-pentesting/ios-uiactivity-sharing.md).
* [ ] Sprawdź, czy aplikacja może odbierać UIActivities i czy możliwe jest wykorzystanie jakiejkolwiek vulnerabilności z specjalnie przygotowaną aktywnością.
* [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md).
* [ ] Sprawdź, czy aplikacja **kopiuje cokolwiek do ogólnej pamięci podręcznej**.
* [ ] Sprawdź, czy aplikacja **używa danych z ogólnej pamięci podręcznej do czegokolwiek**.
* [ ] Monitoruj pamięć podręczną, aby zobaczyć, czy jakiekolwiek **wrażliwe dane są kopiowane**.
* [**Rozszerzenia aplikacji**](ios-pentesting/ios-app-extensions.md).
* [ ] Czy aplikacja **używa jakiegokolwiek rozszerzenia**?
* [**WebViews**](ios-pentesting/ios-webviews.md).
* [ ] Sprawdź, jakiego rodzaju webviews są używane.
* [ ] Sprawdź status **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`**.
* [ ] Sprawdź, czy webview może **uzyskać dostęp do lokalnych plików** z protokołem **file://** **(**`allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`).
* [ ] Sprawdź, czy Javascript może uzyskać dostęp do **metod** **Native** (`JSContext`, `postMessage`).
### Komunikacja sieciowa
* [ ] Wykonaj [**MitM na komunikacji**](ios-pentesting/#network-communication) i poszukaj luk w zabezpieczeniach w sieci.
* [ ] Sprawdź, czy [**nazwa hosta certyfikatu**](ios-pentesting/#hostname-check) jest sprawdzana.
* [ ] Sprawdź/obejdź [**Pinning certyfikatów**](ios-pentesting/#certificate-pinning).
### **Różne**
* [ ] Sprawdź [**mechanizmy automatycznego łatania/aktualizacji**](ios-pentesting/#hot-patching-enforced-updateing).
* [ ] Sprawdź [**złośliwe biblioteki stron trzecich**](ios-pentesting/#third-parties).
{% hint style="success" %}
Ucz się i ćwicz Hacking AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Ucz się i ćwicz Hacking GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Wsparcie dla HackTricks
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się sztuczkami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na GitHubie.
{% endhint %}
\
Użyj [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), aby łatwo budować i **automatyzować przepływy pracy** zasilane przez **najbardziej zaawansowane** narzędzia społecznościowe na świecie.\
Uzyskaj dostęp już dziś:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}