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

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
{% endhint %}

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 jako 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 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

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
{% endhint %}


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" %}