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

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

  1. Pentest yapmak için uygulamayı iPhone'a yükleyin.
  2. macOS'unuzda Apple Configurator uygulamasını yükleyin ve başlatın.
  3. Mac'inizde Terminali 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.
  4. iOS cihazınızı görmelisiniz. Üzerine çift tıklayın ve ardından üst menü çubuğundan Ekle + → Uygulamalar'a tıklayın.
  5. 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.
  6. 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:

bash
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:

bash
cd unzipped
zip -r ../no-min-version.ipa *

Sonra, IPA'yı örneğin şu şekilde yükleyin:

bash
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, AyarlarGizlilik ve Güvenlik yolunu izleyerek iPhone'un geliştirici uygulamalarını güvenilir hale getirmesini sağlayın ve Geliştirici Moduna tıklayın.

Yeniden imzalanmış IPA ile, cihazda pentest yapmak için yükleme zamanı:

bash
ideviceinstaller -i resigned.ipa -w

Hook

Uygulamanızı frida ve objection gibi yaygın araçları kullanarak kolayca hooklayabilirsiniz:

bash
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