Lista kontrolna pentestingu iOS

Reading time: 5 minutes

tip

Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie HackTricks

Przygotowanie

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

Logi

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 ponieważ zmodyfikowana konfiguracja jest ładowana, niektóre (bezpieczeństwa) funkcjonalności mogą być obejście.

Pamięć aplikacji

Złamana kryptografia

Lokalna autoryzacja

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 na otrzymanie 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ź, jakie rodzaje webview 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

Różne

tip

Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie HackTricks