iOS Basic Testing Operations
iOS Cihaz Tanımlama ve Erişim Özeti
Bir iOS Cihazının UDID'sini Tanımlama
Bir iOS cihazını benzersiz bir şekilde tanımlamak için, UDID olarak bilinen 40 haneli bir dizi kullanılır. macOS Catalina veya daha yenilerinde, bu Finder uygulamasında bulunabilir, çünkü iTunes artık mevcut değildir. Cihaz, USB ile bağlandığında ve Finder'da seçildiğinde, adı altındaki detaylar tıklandığında UDID'sini diğer bilgilerle birlikte gösterir.
Catalina'dan önceki macOS sürümlerinde, UDID'nin keşfi için iTunes yardımcı olur. Ayrıntılı talimatlar burada bulunabilir.
Komut satırı araçları, UDID'yi almak için alternatif yöntemler sunar:
I/O Registry Explorer aracı
ioreg
kullanarak:
ideviceinstaller
kullanarak macOS (ve Linux) için:
system_profiler
Kullanımı:
Cihazları listelemek için
instruments
kullanma:
Cihaza Erişim Shell'i
SSH erişimi, jailbreak sonrası OpenSSH paketi yüklenerek etkinleştirilir ve ssh root@<device_ip_address>
üzerinden bağlantılara izin verir. Cihazı güvence altına almak için root
ve mobile
kullanıcıları için varsayılan şifrelerin (alpine
) değiştirilmesi kritik öneme sahiptir.
USB üzerinden SSH, Wi-Fi yokluğunda gereklidir ve SSH bağlantıları için cihaz portlarını eşlemek amacıyla iproxy
kullanılır. Bu kurulum, USB üzerinden SSH erişimi sağlamak için şu komutla çalıştırılır:
Cihaz içi shell uygulamaları, NewTerm 2 gibi, doğrudan cihaz etkileşimini kolaylaştırır, bu da sorun giderme için özellikle faydalıdır. Ters SSH shell'leri de ana bilgisayardan uzaktan erişim için kurulabilir.
Unutulan Şifreleri Sıfırlama
Unutulan bir şifreyi varsayılan (alpine
) olarak sıfırlamak için, /private/etc/master.passwd
dosyasını düzenlemek gereklidir. Bu, mevcut hash'in root
ve mobile
kullanıcı girişlerinin yanındaki alpine
hash'i ile değiştirilmesini içerir.
Veri Aktarım Teknikleri
Uygulama Veri Dosyalarını Aktarma
SSH ve SCP ile Arşivleme ve Geri Alma: Uygulamanın Data dizinini tar
kullanarak arşivlemek ve ardından scp
ile aktarmak oldukça basittir. Aşağıdaki komut, Data dizinini bir .tgz dosyasına arşivler ve ardından cihazdan çekilir:
Grafiksel Kullanıcı Arayüzü Araçları
iFunbox ve iExplorer Kullanımı: Bu GUI araçları, iOS cihazlarındaki dosyaları yönetmek için faydalıdır. Ancak, iOS 8.4 ile birlikte, Apple bu araçların uygulama sandbox'una erişimini kısıtladı, cihaz jailbreak edilmedikçe.
Dosya Yönetimi için Objection Kullanımı
Objection ile Etkileşimli Shell: Objection'ı başlatmak, bir uygulamanın Bundle dizinine erişim sağlar. Buradan, uygulamanın Belgeler dizinine geçebilir ve dosyaları yönetebilir, bunları iOS cihazına indirme ve yükleme işlemlerini gerçekleştirebilirsiniz.
Uygulamaları Elde Etme ve Çıkarma
IPA Dosyasını Elde Etme
Hava Üzerinden (OTA) Dağıtım Bağlantısı: Test için OTA üzerinden dağıtılan uygulamalar, npm aracılığıyla kurulan ve IPA dosyasını yerel olarak kaydetmek için kullanılan ITMS hizmetleri varlık indirme aracı ile indirilebilir.
Uygulama İkili Dosyasını Çıkarma
Bir IPA'dan: Şifrelenmemiş uygulama ikili dosyasına erişmek için IPA'yı açın.
Kırılmış Bir Cihazdan: Uygulamayı yükleyin ve şifrelenmemiş ikili dosyayı bellekten çıkarın.
Şifre Çözme Süreci
Manuel Şifre Çözme Genel Bakış: iOS uygulama ikili dosyaları Apple tarafından FairPlay kullanılarak şifrelenmiştir. Ters mühendislik yapmak için, şifrelenmemiş ikili dosyayı bellekten dökmek gerekir. Şifre çözme süreci, PIE bayrağını kontrol etmeyi, bellek bayraklarını ayarlamayı, şifrelenmiş bölümü tanımlamayı ve ardından bu bölümü şifrelenmemiş haliyle değiştirmeyi içerir.
PIE Bayrağını Kontrol Etme ve Değiştirme:
Şifreli Bölümü Belirleme ve Belleği Dökme:
otool
kullanarak şifreli bölümün başlangıç ve bitiş adreslerini belirleyin ve jailbreak yapılmış cihazdan belleği gdb
kullanarak dökün.
Şifreli Bölümü Üzerine Yazma:
Orijinal uygulama ikili dosyasındaki şifreli bölümü, şifrelenmemiş döküm ile değiştirin.
Şifre Çözümlemenin Tamamlanması: Şifrelemenin yokluğunu belirtmek için ikili dosyanın meta verilerini MachOView gibi araçlar kullanarak değiştirin, cryptid
değerini 0 olarak ayarlayın.
Şifre Çözümü (Otomatik Olarak)
frida-ios-dump
frida-ios-dump aracı, iOS cihazlarından otomatik olarak uygulamaları şifre çözmek ve çıkarmak için kullanılır. Öncelikle, dump.py
dosyasını iOS cihazına bağlanacak şekilde yapılandırmak gerekir; bu, iproxy aracılığıyla localhost üzerinden 2222 portu ile veya doğrudan cihazın IP adresi ve portu üzerinden yapılabilir.
Cihazda yüklü olan uygulamalar şu komutla listelenebilir:
Belirli bir uygulamayı, örneğin Telegram'ı dökmek için aşağıdaki komut kullanılır:
Bu komut, uygulama dökümünü başlatır ve mevcut dizinde Telegram.ipa
dosyasının oluşturulmasına neden olur. Bu işlem, imzasız veya sahte imzalı uygulamaların ios-deploy gibi araçlar kullanılarak yeniden yüklenebileceği jailbreak'li cihazlar için uygundur.
flexdecrypt
flexdecrypt aracı ve onun sarmalayıcısı flexdump, yüklü uygulamalardan IPA dosyalarının çıkarılmasına olanak tanır. Cihazda flexdecrypt için kurulum komutları, .deb
paketinin indirilmesi ve yüklenmesini içerir. flexdump, aşağıdaki komutlarda gösterildiği gibi uygulamaları listelemek ve dökmek için kullanılabilir:
bagbak
bagbak, başka bir Frida tabanlı araç, uygulama şifrelemesini çözmek için jailbreak yapılmış bir cihaza ihtiyaç duyar:
r2flutch
r2flutch, hem radare hem de frida kullanarak, uygulama şifrelemesi ve dökümü için hizmet eder. Daha fazla bilgi GitHub sayfasında bulunabilir.
Uygulama Yükleme
Sideloading, uygulamaların resmi App Store dışında yüklenmesini ifade eder. Bu işlem installd daemon tarafından yönetilir ve uygulamaların Apple tarafından verilen bir sertifika ile imzalanmasını gerektirir. Jailbroken cihazlar, sahte imzalı IPA paketlerinin yüklenmesini sağlayan AppSync aracılığıyla bunu atlayabilir.
Sideloading Araçları
Cydia Impactor: iOS'ta IPA dosyalarını ve Android'de APK dosyalarını imzalamak ve yüklemek için bir araçtır. Kılavuzlar ve sorun giderme bilgileri yalujailbreak.net adresinde bulunabilir.
libimobiledevice: iOS cihazlarıyla iletişim kurmak için Linux ve macOS için bir kütüphanedir. USB üzerinden uygulama yüklemek için ideviceinstaller için kurulum komutları ve kullanım örnekleri sağlanmıştır.
ipainstaller: Bu komut satırı aracı, iOS cihazlarında doğrudan uygulama yüklemeye olanak tanır.
ios-deploy: macOS kullanıcıları için, ios-deploy komut satırından iOS uygulamalarını yükler. IPA dosyasını açmak ve doğrudan uygulama başlatmak için
-m
bayrağını kullanmak sürecin bir parçasıdır.Xcode: Uygulamaları yüklemek için Xcode'u kullanarak Window/Devices and Simulators bölümüne gidin ve uygulamayı Installed Apps kısmına ekleyin.
iPad Dışı Cihazlarda Uygulama Yüklemeye İzin Ver
iPhone veya iPod touch cihazlarında iPad'e özel uygulamaları yüklemek için, Info.plist dosyasındaki UIDeviceFamily değeri 1 olarak değiştirilmelidir. Ancak, bu değişiklik imza doğrulama kontrolleri nedeniyle IPA dosyasının yeniden imzalanmasını gerektirir.
Not: Bu yöntem, uygulama daha yeni iPad modellerine özgü yetenekler talep ediyorsa, eski bir iPhone veya iPod touch kullanırken başarısız olabilir.
References
Last updated