iOS Pentesting without Jailbreak
Reading time: 5 minutes
tip
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)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.
Główna idea
Aplikacje podpisane z uprawnieniem get_task_allow
pozwalają aplikacjom innych firm na uruchomienie funkcji task_for_pid()
z identyfikatorem procesu początkowej aplikacji jako argumentem, aby uzyskać port zadania nad nią (móc ją kontrolować i uzyskać dostęp do jej pamięci).
Jednak nie jest to tak proste, jak po prostu pobranie IPA, ponowne podpisanie go z uprawnieniem i wgranie z powrotem na urządzenie. Dzieje się tak z powodu ochrony FairPlay. Gdy podpis aplikacji się zmienia, klucz DRM (Digital Rights Management) jest unieważniony i aplikacja nie będzie działać.
Na starym urządzeniu z jailbreakiem możliwe jest zainstalowanie IPA, odszyfrowanie go za pomocą ulubionego narzędzia (takiego jak Iridium lub frida-ios-dump) i pobranie go z powrotem z urządzenia. Chociaż, jeśli to możliwe, zaleca się po prostu poprosić klienta o odszyfrowane IPA.
Uzyskanie odszyfrowanego IPA
Pobierz z Apple
- Zainstaluj aplikację do testowania na iPhonie.
- Zainstaluj i uruchom Apple Configurator na swoim macos.
- Otwórz
Terminal
na swoim Macu i przejdź do/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps
. IPA pojawi się w tym folderze później. - Powinieneś zobaczyć swoje urządzenie iOS. Kliknij dwukrotnie na nie, a następnie kliknij Dodaj + → Aplikacje w górnym pasku menu.
- Po kliknięciu Dodaj, Configurator pobierze IPA z Apple i spróbuje wgrać je na twoje urządzenie. Jeśli wcześniej postępowałeś zgodnie z moją rekomendacją i już zainstalowałeś IPA, pojawi się komunikat z prośbą o ponowną instalację aplikacji.
- IPA powinno być pobrane w
/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps
, skąd możesz je pobrać.
Sprawdź https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed po więcej szczegółowych informacji na temat tego procesu.
Odszyfrowanie aplikacji
Aby odszyfrować IPA, zamierzamy je zainstalować. Jednak jeśli masz starego iPhone'a z jailbreakiem, potencjalnie jego wersja nie będzie wspierana przez aplikację, ponieważ zazwyczaj aplikacje wspierają tylko najnowsze wersje.
Aby je zainstalować, po prostu rozpakuj IPA:
unzip redacted.ipa -d unzipped
Sprawdź Info.plist
pod kątem minimalnej obsługiwanej wersji, a jeśli twoje urządzenie jest starsze, zmień wartość, aby była obsługiwana.
Spakuj ponownie IPA:
cd unzipped
zip -r ../no-min-version.ipa *
Następnie zainstaluj IPA na przykład za pomocą:
ideviceinstaller -i no-min-version.ipa -w
Zauważ, że możesz potrzebować AppSync Unified tweak z Cydii, aby zapobiec błędom invalid signature
.
Po zainstalowaniu możesz użyć Iridium tweak z Cydii, aby uzyskać odszyfrowany plik IPA.
Patch entitlements & re-sign
Aby ponownie podpisać aplikację z uprawnieniem get-task-allow
, dostępnych jest kilka narzędzi, takich jak app-signer
, codesign
i iResign
. app-signer
ma bardzo przyjazny interfejs, który pozwala bardzo łatwo podpisać plik IPA, wskazując plik IPA do ponownego podpisania, aby ustawić get-task-allow
oraz certyfikat i profil provisioningowy do użycia.
Jeśli chodzi o certyfikaty i profile podpisywania, Apple oferuje darmowe profile podpisywania dla deweloperów dla wszystkich kont przez Xcode. Po prostu stwórz aplikację i skonfiguruj jeden. Następnie skonfiguruj iPhone, aby ufał aplikacjom dewelopera, przechodząc do Ustawienia
→ Prywatność i bezpieczeństwo
, a następnie kliknij na Tryb dewelopera
.
Z ponownie podpisanym plikiem IPA nadszedł czas, aby zainstalować go na urządzeniu, aby przeprowadzić testy penetracyjne:
ideviceinstaller -i resigned.ipa -w
Hook
Możesz łatwo podłączyć swoją aplikację, używając powszechnych narzędzi, takich jak frida i objection:
objection -g [your app bundle ID] explore
Odniesienia
tip
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)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.