iOS Pentesting without Jailbreak
Reading time: 4 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Ana fikir
get_task_allow
yetkisi ile imzalanmış uygulamalar, üçüncü taraf uygulamaların task_for_pid()
adlı bir fonksiyonu, başlangıç uygulamasının işlem kimliği ile argüman olarak çalıştırmasına izin verir; böylece üzerinde görev portunu elde edebilir (onu kontrol edebilir ve belleğine erişebilir).
Ancak, IPA'yı çekip, yetki ile yeniden imzalayıp cihazınıza geri yüklemek o kadar kolay değil. Bunun nedeni FairPlay korumasıdır. Uygulamanın imzası değiştiğinde, DRM (Dijital Haklar Yönetimi) anahtarı geçersiz hale gelir ve uygulama çalışmaz.
Eski bir jailbreak'li cihazda, IPA'yı yüklemek, favori aracınızı kullanarak şifre çözmek (örneğin Iridium veya frida-ios-dump gibi) ve cihazdan geri almak mümkündür. Ancak, mümkünse, şifrelenmemiş IPA için sadece istemciye sormak önerilir.
Şifrelenmemiş IPA'yı elde etme
Apple'dan alın
- Pentest yapmak için uygulamayı iPhone'a yükleyin.
- macOS'unuzda Apple Configurator uygulamasını yükleyin ve başlatın.
- Mac'inizde
Terminal
i açın ve/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps
dizinine gidin. IPA daha sonra bu klasörde görünecektir. - iOS cihazınızı görmelisiniz. Üzerine çift tıklayın ve ardından üst menü çubuğundan Ekle + → Uygulamalar'a tıklayın.
- Ekle'ye tıkladıktan sonra, Configurator IPA'yı Apple'dan indirecek ve cihazınıza yüklemeye çalışacaktır. Daha önce önerimi takip ettiyseniz ve IPA'yı zaten yüklediyseniz, uygulamayı yeniden yüklemenizi isteyen bir istem belirecektir.
- IPA,
/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps
dizinine indirilmelidir; buradan alabilirsiniz.
Bu süreç hakkında daha ayrıntılı bilgi için https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed adresini kontrol edin.
Uygulamayı şifre çözme
IPA'yı şifre çözmek için onu yükleyeceğiz. Ancak, eski bir jailbreak'li iPhone'unuz varsa, muhtemelen uygulama tarafından desteklenmeyecek bir sürümde olacaktır; çünkü genellikle uygulamalar yalnızca en son sürümleri destekler.
Bu nedenle, yüklemek için IPA'yı sadece çıkarın:
unzip redacted.ipa -d unzipped
Info.plist
dosyasını minimum desteklenen sürüm için kontrol edin ve cihazınız bu sürümden daha eskiyse, değeri desteklenecek şekilde değiştirin.
IPA dosyasını zipleyin:
cd unzipped
zip -r ../no-min-version.ipa *
Sonra, IPA'yı örneğin şu şekilde yükleyin:
ideviceinstaller -i no-min-version.ipa -w
Not edin ki, herhangi bir invalid signature
hatasını önlemek için Cydia'dan AppSync Unified tweak'e ihtiyacınız olabilir.
Yüklendikten sonra, şifrelenmemiş IPA'yı elde etmek için Cydia'dan Iridium tweak'i kullanabilirsiniz.
### Yetki yamanızı ve yeniden imzalama
get-task-allow
yetkisi ile uygulamayı yeniden imzalamak için app-signer
, codesign
ve iResign
gibi çeşitli araçlar mevcuttur. app-signer
, yeniden imzalanacak IPA dosyasını belirtip, get-task-allow
koyarak ve kullanılacak sertifika ve dağıtım profili ile çok kolay bir şekilde IPA dosyasını yeniden imzalamaya olanak tanıyan çok kullanıcı dostu bir arayüze sahiptir.
Sertifika ve imzalama profilleri ile ilgili olarak, Apple, Xcode aracılığıyla tüm hesaplar için ücretsiz geliştirici imzalama profilleri sunmaktadır. Sadece bir uygulama oluşturun ve bir tane yapılandırın. Ardından, Ayarlar
→ Gizlilik ve Güvenlik
yolunu izleyerek iPhone'un geliştirici uygulamalarını güvenilir hale getirmesini sağlayın ve Geliştirici Modu
na tıklayın.
Yeniden imzalanmış IPA ile, cihazda pentest yapmak için yükleme zamanı:
ideviceinstaller -i resigned.ipa -w
Hook
Uygulamanızı frida ve objection gibi yaygın araçları kullanarak kolayca hooklayabilirsiniz:
objection -g [your app bundle ID] explore
Referanslar
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.