9.9 KiB
Lista kontrolna pentestingu iOS
Użyj Trickest, 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)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się sztuczkami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na GitHubie.
Przygotowanie
- Przeczytaj Podstawy iOS
- Przygotuj swoje środowisko, czytając Środowisko testowe iOS
- Przeczytaj wszystkie sekcje Wstępnej analizy iOS, aby poznać wspólne działania do pentestingu aplikacji iOS
Przechowywanie danych
- Pliki Plist mogą być używane do przechowywania wrażliwych informacji.
- Core Data (baza danych SQLite) może przechowywać wrażliwe informacje.
- YapDatabases (baza danych SQLite) może przechowywać wrażliwe informacje.
- Firebase błędna konfiguracja.
- Bazy danych Realm mogą przechowywać wrażliwe informacje.
- Bazy danych Couchbase Lite mogą przechowywać wrażliwe informacje.
- Cookies binarne mogą przechowywać wrażliwe informacje.
- Dane w pamięci podręcznej mogą przechowywać wrażliwe informacje.
- Automatyczne zrzuty mogą zapisywać wizualne wrażliwe informacje.
- 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?
- Sprawdź, czy wrażliwe informacje są zapisywane w plikach pamięci podręcznej klawiatur.
Logi
- Sprawdź, czy wrażliwe informacje są rejestrowane.
Kopie zapasowe
- Kopie zapasowe 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 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.
Złamana kryptografia
- Sprawdź, czy możesz znaleźć hasła używane do kryptografii.
- Sprawdź użycie przestarzałych/słabych algorytmów do wysyłania/przechowywania wrażliwych danych.
- Hook i monitoruj funkcje kryptograficzne.
Lokalna autoryzacja
- Jeśli w aplikacji używana jest lokalna autoryzacja, powinieneś sprawdzić, jak działa autoryzacja.
- Jeśli używa Frameworka lokalnej autoryzacji, może być łatwo obejście.
- Jeśli używa funkcji, która może być dynamicznie obejście, możesz stworzyć niestandardowy skrypt frida.
Ekspozycja wrażliwej funkcjonalności przez IPC
- Niestandardowe obsługiwacze URI / Deeplinks / Niestandardowe schematy.
- 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.
- 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.
- Sprawdź, czy aplikacja może odbierać UIActivities i czy możliwe jest wykorzystanie jakiejkolwiek vulnerabilności z specjalnie przygotowaną aktywnością.
- UIPasteboard.
- 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.
- Czy aplikacja używa jakiegokolwiek rozszerzenia?
- WebViews.
- 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 i poszukaj luk w zabezpieczeniach w sieci.
- Sprawdź, czy nazwa hosta certyfikatu jest sprawdzana.
- Sprawdź/obejdź Pinning certyfikatów.
Różne
{% hint style="success" %}
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się sztuczkami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na GitHubie.
Użyj Trickest, 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" %}