hacktricks/mobile-pentesting/ios-pentesting-checklist.md

146 lines
10 KiB
Markdown

# Lista kontrolna testowania penetracyjnego iOS
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
Użyj [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), aby łatwo tworzyć i **automatyzować przepływy pracy** z wykorzystaniem najbardziej zaawansowanych narzędzi społecznościowych na świecie.\
Zdobądź dostęp już dziś:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details>
<summary><strong>Zacznij od zera i zostań ekspertem AWS z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
**Grupa Try Hard Security**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### 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 [**Początkowa analiza iOS**](ios-pentesting/#initial-analysis), aby dowiedzieć się, jakie są powszechne działania w testowaniu penetracyjnym aplikacji iOS
### Przechowywanie danych
* [ ] [**Pliki Plist**](ios-pentesting/#plist) mogą być używane do przechowywania poufnych informacji.
* [ ] [**Core Data**](ios-pentesting/#core-data) (baza danych SQLite) może przechowywać poufne informacje.
* [ ] [**Bazy danych Yap**](ios-pentesting/#yapdatabase) (baza danych SQLite) mogą przechowywać poufne informacje.
* [ ] [**Firebase**](ios-pentesting/#firebase-real-time-databases) - błędna konfiguracja.
* [ ] [**Bazy danych Realm**](ios-pentesting/#realm-databases) mogą przechowywać poufne informacje.
* [ ] [**Bazy danych Couchbase Lite**](ios-pentesting/#couchbase-lite-databases) mogą przechowywać poufne informacje.
* [ ] [**Pliki cookies binarne**](ios-pentesting/#cookies) mogą przechowywać poufne informacje.
* [ ] [**Dane pamięci podręcznej**](ios-pentesting/#cache) mogą przechowywać poufne informacje.
* [ ] [**Automatyczne migawki**](ios-pentesting/#snapshots) mogą zachować wrażliwe informacje wizualne.
* [ ] [**Keychain**](ios-pentesting/#keychain) jest zazwyczaj używany do przechowywania poufnych informacji, które mogą pozostać po sprzedaży telefonu.
* [ ] Podsumowując, po prostu **sprawdź, czy aplikacja zapisuje wrażliwe informacje w systemie plików**
### Klawiatury
* [ ] Czy aplikacja **pozwala na korzystanie z niestandardowych klawiatur**?
* [ ] Sprawdź, czy w **plikach pamięci podręcznej klawiatur** są zapisane wrażliwe informacje
### **Logi**
* [ ] Sprawdź, czy **zapisywane są wrażliwe informacje** (ios-pentesting/#logs)
### Kopie zapasowe
* [ ] [**Kopie zapasowe**](ios-pentesting/#backups) mogą być używane do **uzyskania dostępu do poufnych informacji** zapisanych w systemie plików (sprawdź początek 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 gdy **zmodyfikowana konfiguracja** jest **wczytywana**, pewne (bezpieczeństwo) **funkcje mogą zostać zignorowane**
### **Pamięć aplikacji**
* [ ] Sprawdź, czy w **pamięci aplikacji** znajdują się wrażliwe informacje (ios-pentesting/#testing-memory-for-sensitive-data)
### **Słabe szyfrowanie**
* [ ] Sprawdź, czy można znaleźć **hasła używane do szyfrowania** (ios-pentesting/#broken-cryptography)
* [ ] Sprawdź, czy używane są **przestarzałe/słabe algorytmy** do wysyłania/przechowywania wrażliwych danych
* [ ] [**Podłącz i monitoruj funkcje kryptograficzne**](ios-pentesting/#broken-cryptography)
### **Lokalna autoryzacja**
* [ ] Jeśli aplikacja używa [**lokalnej autoryzacji**](ios-pentesting/#local-authentication), należy sprawdzić, jak działa autoryzacja.
* [ ] Jeśli używa [**Frameworku lokalnej autoryzacji**](ios-pentesting/#local-authentication-framework), może być łatwo zignorowany
* [ ] Jeśli używa [**funkcji, która może być dynamicznie zignorowana**](ios-pentesting/#local-authentication-using-keychain), można utworzyć niestandardowy skrypt frida
### Ujawnienie funkcjonalności wrażliwej poprzez IPC
* [**Niestandardowe obsługiwane URI / Deep Linki / Niestandardowe schematy**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes)
* [ ] Sprawdź, czy aplikacja **rejestruje jakikolwiek protokół/schemat**
* [ ] Sprawdź, czy aplikacja **rejestruje użycie** jakiegokolwiek protokołu/schematu
* [ ] Sprawdź, czy aplikacja **oczekuje na otrzymanie jakiegokolwiek rodzaju 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 użytkownika za pomocą niestandardowego schematu, co może być **wykorzystane** do **ataku**
* [ ] Sprawdź, czy aplikacja **ujawnia jakiekolwiek wrażliwe działanie**, które może być wywołane z dowolnego miejsca za pomocą niestandardowego schematu
* [**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 użytkownika za pomocą niestandardowego schematu, co może być **wykorzystane** do **ataku**
* [ ] Sprawdź, czy aplikacja **ujawnia jakiekolwiek wrażliwe działanie**, które może być wywołane z dowolnego miejsca za pomocą niestandardowego schematu
* [**UIActivity Sharing**](ios-pentesting/ios-uiactivity-sharing.md)
* [ ] Sprawdź, czy aplikacja może odbierać UIActivities i czy można wykorzystać jakąkolwiek lukę w zabezpieczeniach za pomocą specjalnie przygotowanej aktywności
* [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md)
* [ ] Sprawdź, czy aplikacja **kopiuję cokolwiek do ogólnego schowka**
* [ ] Sprawdź, czy aplikacja **używa danych z ogólnego schowka do czegokolwiek**
* [ ] Monitoruj schowek, aby sprawdzić, czy zostały skopiowane **wrażliwe dane**
* [**Rozszerzenia aplikacji**](ios-pentesting/ios-app-extensions.md)
* [ ] Czy aplikacja **korzysta z jakiegokolwiek rozszerzenia**?
* [**WebViews**](ios-pentesting/ios-webviews.md)
* [ ] Sprawdź, jakiego rodzaju webviewy są używane
* [ ] Sprawdź status **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`**
* [ ] Sprawdź, czy webview może **uzyskać dostęp do lokalnych plików** za pomocą protokołu **file://** **(**`allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`)
* [ ] Sprawdź, czy JavaScript może uzyskać dostęp do **metod natywnych** (`JSContext`, `postMessage`)
### Komunikacja sieciowa
* [ ] Przeprowadź [**MitM w komunikacji**](ios-pentesting/#network-communication) i szukaj podatności internetowych.
* [ ] Sprawdź, czy [**sprawdzana jest nazwa hosta certyfikatu**](ios-pentesting/#hostname-check)
* [ ] Sprawdź/Omij [**Przypięcie Certyfikatu**](ios-pentesting/#certificate-pinning)
### **Różne**
* [ ] Sprawdź mechanizmy [**automatycznego łatania/aktualizacji**](ios-pentesting/#hot-patching-enforced-updateing)
* [ ] Sprawdź [**złośliwe biblioteki osób trzecich**](ios-pentesting/#third-parties)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Dowiedz się, jak hakować AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
Użyj [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) do łatwego tworzenia i **automatyzacji workflowów** zasilanych przez najbardziej zaawansowane narzędzia społeczności na świecie.\
Otrzymaj dostęp już dziś:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}