mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/mobile-pentesting/ios-pentesting/ios-pentesting-without
This commit is contained in:
parent
d4bad5cae6
commit
a2a55ad6eb
@ -4,15 +4,15 @@
|
||||
|
||||
## 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).
|
||||
**`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 alabilir (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.
|
||||
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 istemci olarak talep edilmesi önerilir.
|
||||
|
||||
## Şifrelenmemiş IPA'yı elde etme
|
||||
|
||||
### Apple'dan alın
|
||||
### Apple'dan almak
|
||||
|
||||
1. Pentest yapmak için uygulamayı iPhone'a yükleyin.
|
||||
2. macOS'unuzda [Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12) uygulamasını yükleyin ve başlatın.
|
||||
@ -47,27 +47,72 @@ Not edin ki, herhangi bir `invalid signature` hatasını önlemek için Cydia'da
|
||||
Yüklendikten sonra, şifrelenmemiş IPA'yı elde etmek için Cydia'dan **Iridium tweak**'i kullanabilirsiniz.
|
||||
|
||||
|
||||
### Yetki yamanızı ve yeniden imzalama
|
||||
### Yetkilendirmeleri Yamanla ve Yeniden İmzala
|
||||
|
||||
`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.
|
||||
`get-task-allow` yetkilendirmesi 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-taks-allow`** ekleyerek ve kullanılacak sertifika ve dağıtım profili ile çok kolay bir şekilde yeniden imzalamaya olanak tanıyan 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.
|
||||
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` bölümüne giderek **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ı:
|
||||
Yeniden imzalanmış IPA ile, onu cihazda kurup pentest yapmak için zamanı geldi:
|
||||
```bash
|
||||
ideviceinstaller -i resigned.ipa -w
|
||||
```
|
||||
### Hook
|
||||
---
|
||||
|
||||
Uygulamanızı frida ve objection gibi yaygın araçları kullanarak kolayca hooklayabilirsiniz:
|
||||
### Geliştirici Modunu Etkinleştir (iOS 16+)
|
||||
|
||||
iOS 16 ile Apple **Geliştirici Modu**nu tanıttı: `get_task_allow` taşıyan *veya* bir geliştirme sertifikası ile imzalanmış herhangi bir ikili, cihazda Geliştirici Modu etkinleştirilene kadar başlatılmayı reddedecektir. Bu bayrak açık olmadıkça Frida/LLDB'yi de ekleyemezsiniz.
|
||||
|
||||
1. **Herhangi** bir geliştirici imzalı IPA'yı telefona yükleyin veya gönderin.
|
||||
2. **Ayarlar → Gizlilik ve Güvenlik → Geliştirici Modu**'na gidin ve açın.
|
||||
3. Cihaz yeniden başlatılacak; şifreyi girdikten sonra Geliştirici Modunu **Açın** denilecektir.
|
||||
|
||||
Geliştirici Modu, devre dışı bırakılana veya telefon silinene kadar aktif kalır, bu nedenle bu adım her cihaz için yalnızca bir kez gerçekleştirilmelidir. [Apple belgeleri](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device) güvenlik etkilerini açıklar.
|
||||
|
||||
### Modern yan yükleme seçenekleri
|
||||
|
||||
Artık jailbreak olmadan yan yükleme yapmak ve yeniden imzalanmış IP'leri güncel tutmak için birkaç olgun yol bulunmaktadır:
|
||||
|
||||
| Araç | Gereksinimler | Güçlü Yönler | Sınırlamalar |
|
||||
|------|--------------|-----------|-------------|
|
||||
| **AltStore 2 / SideStore** | IPA'yı her 7 günde ücretsiz bir geliştirici profili ile yeniden imzalayan macOS/Windows/Linux eşlikçisi | Wi-Fi üzerinden otomatik yeniden yükleme, iOS 17'ye kadar çalışır | Aynı ağda bilgisayar gerektirir, Apple tarafından 3 uygulama limiti uygulanır |
|
||||
| **TrollStore 1/2** | CoreTrust hatasına karşı savunmasız iOS 14 – 15.4.1 cihazı | *Kalıcı* imzalama (7 günlük limit yok); kurulduktan sonra bilgisayar gerekmez | iOS 15.5+ üzerinde desteklenmiyor (hata yamanmış) |
|
||||
|
||||
Mevcut iOS sürümlerinde rutin pentestler için Alt/Side-Store genellikle en pratik seçimdir.
|
||||
|
||||
### Hooking / dinamik enstrümantasyon
|
||||
|
||||
Uygulamanızı, `get_task_allow` ile imzalandığında ve Geliştirici Modu açık olduğunda, jailbreak'li bir cihazda olduğu gibi tam olarak hooklayabilirsiniz:
|
||||
```bash
|
||||
objection -g [your app bundle ID] explore
|
||||
# Spawn & attach with objection
|
||||
objection -g "com.example.target" explore
|
||||
|
||||
# Or plain Frida
|
||||
frida -U -f com.example.target -l my_script.js --no-pause
|
||||
```
|
||||
Son Frida sürümleri (>=16) otomatik olarak işaretçi kimlik doğrulamasını ve diğer iOS 17 önlemlerini yönetir, bu nedenle mevcut çoğu script kutudan çıkar çıkmaz çalışır.
|
||||
|
||||
### Jailbreak olmadan otomatik dinamik analiz MobSF ile
|
||||
|
||||
[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) gerçek bir cihazda dev-imzalı bir IPA'yı aynı teknikle (`get_task_allow`) enstrümante edebilir ve dosya sistemi tarayıcısı, trafik yakalama ve Frida konsolu ile bir web UI sağlar【turn6view0†L2-L3】. En hızlı yol, MobSF'yi Docker'da çalıştırmak ve ardından iPhone'unuzu USB ile bağlamaktır:
|
||||
```bash
|
||||
docker pull opensecurity/mobile-security-framework-mobsf:latest
|
||||
docker run -p 8000:8000 --privileged \
|
||||
-v /var/run/usbmuxd:/var/run/usbmuxd \
|
||||
opensecurity/mobile-security-framework-mobsf:latest
|
||||
# Browse to http://127.0.0.1:8000 and upload your resigned IPA
|
||||
```
|
||||
MobSF, ikili dosyayı otomatik olarak dağıtacak, uygulama sandbox'ında bir Frida sunucusu etkinleştirecek ve etkileşimli bir rapor oluşturacaktır.
|
||||
|
||||
### iOS 17 & Kilit Modu uyarıları
|
||||
|
||||
* **Kilit Modu** (Ayarlar → Gizlilik & Güvenlik), dinamik bağlayıcının imzasız veya harici olarak imzalanmış dinamik kütüphaneleri yüklemesini engeller. Bu modun etkin olabileceği cihazları test ederken, **devre dışı** olduğundan emin olun, aksi takdirde Frida/objection oturumlarınız hemen sonlanacaktır.
|
||||
* Pointer Authentication (PAC), A12+ cihazlarda sistem genelinde uygulanmaktadır. Frida ≥16, PAC stripping'i şeffaf bir şekilde yönetir — yeni bir ana iOS sürümü çıktığında *frida-server* ve Python/CLI araç zincirinin güncel olduğundan emin olun.
|
||||
|
||||
## Referanslar
|
||||
|
||||
- [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed)
|
||||
|
||||
- Apple geliştirici belgeleri – Bir cihazda Geliştirici Modunu Etkinleştirme: <https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device>
|
||||
- Mobil Güvenlik Çerçevesi (MobSF): <https://mobsf.github.io/Mobile-Security-Framework-MobSF/>
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user