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
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.
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 zezwala 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 ponieważ 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 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
- 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
- Sprawdź automatyczne łatanie/aktualizacje mechanizmy.
- Sprawdź złośliwe biblioteki stron trzecich.
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
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.