iOS Basic Testing Operations
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
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 kullanılmaktadır. 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:
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 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.
SSH ve SCP ile Arşivleme ve Geri Alma: Uygulamanın Veri dizinini tar
kullanarak arşivlemek ve ardından scp
ile aktarmak oldukça basittir. Aşağıdaki komut, Veri dizinini bir .tgz dosyasına arşivler ve ardından cihazdan çekilir:
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.
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.
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.
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.
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ökme işlemi yapılmalıdır. Ş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 ikilinin meta verilerini MachOView gibi araçlarla değiştirin, cryptid
değerini 0 olarak ayarlayın.
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:
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 yeniden yüklenebileceği jailbreak'li cihazlar için uygundur; ios-deploy gibi araçlar kullanılabilir.
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, başka bir Frida tabanlı araç, uygulama şifrelemesini çözmek için jailbreak yapılmış bir cihaza ihtiyaç duyar:
r2flutch, hem radare hem de frida kullanarak, uygulama şifrelemesi ve dökümü için hizmet eder. Daha fazla bilgi GitHub sayfasında bulunabilir.
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.
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.
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.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)