Objection Tutorial
Hata ödülü ipucu: Intigriti'ye kaydolun, hackerlar tarafından oluşturulan premium bir hata ödülü platformu! Bugün bize katılın https://go.intigriti.com/hacktricks ve $100,000'a kadar ödüller kazanmaya başlayın!
Giriş
objection - Çalışma Zamanı Mobil Keşif
Objection, Frida tarafından desteklenen bir çalışma zamanı mobil keşif aracıdır. Mobil uygulamaları ve güvenlik durumlarını değerlendirmeye yardımcı olmak amacıyla geliştirilmiştir ve jailbreak veya root gerektirmez.
Not: Bu bir jailbreak / root bypass değildir. objection
kullanarak, karşılaştığınız geçerli kum havuzunun uyguladığı tüm kısıtlamalarla hala sınırlısınız.
Özet
objection'ın amacı, kullanıcının Frida'nın sunduğu ana eylemleri çağırmasına izin vermektir. Aksi takdirde, test etmek istediği her uygulama için tek bir betik oluşturması gerekir.
Öğretici
Bu öğretici için buradan indirebileceğiniz APK'yı kullanacağım:
Veya orijinal depodan indirebilirsiniz (app-release.apk)
Kurulum
Bağlantı
Normal bir ADB bağlantısı oluşturun ve cihazda frida sunucusunu başlatın (ve frida'nın hem istemci hem de sunucuda çalıştığını kontrol edin).
Root edilmiş bir cihaz kullanıyorsanız, test etmek istediğiniz uygulamayı seçmeniz gerekmektedir --gadget seçeneğinde. Bu durumda:
Temel Eylemler
Bu öğreticide tüm obje komutları listelenmeyecek, sadece daha kullanışlı bulduklarım yer alacak.
Ortam
Ortamın içinde (şifreler veya dosya yolları gibi) bazı ilginç bilgiler bulunabilir.
Frida Bilgisi
Yükleme/İndirme
Frida betiği içe aktar
SSLPinning
SSLPinning
Kök algılama
Komutu Yürüt
Ekran Görüntüleri
Statik analiz dinamik hale getirildi
Gerçek bir uygulamada objection'ı kullanmadan önce bu bölümde keşfedilen tüm bilgileri bilmeliyiz, statik analiz sayesinde. Neyse ki, bu şekilde belki de yeni bir şeyler görebilirsiniz çünkü burada yalnızca sınıfların, metodların ve dışa aktarılan nesnelerin tam listesine sahip olacaksınız.
Bu ayrıca uygulamanın okunabilir kaynak kodunu bir şekilde alamıyorsanız da faydalıdır.
Aktiviteleri, alıcıları ve servisleri listele
Frida, bulunamazsa bir hata başlatacaktır
Mevcut etkinliği almak
Sınıfları Arama
Uygulamamızdaki sınıfları aramaya başlayalım
Bir sınıfın arama yöntemleri
Şimdi MainActivity sınıfının içindeki yöntemleri çıkaralım:
Bir sınıfın bildirilen yöntemlerini ve parametrelerini listele
Sınıfın yöntemlerinin hangi parametrelere ihtiyaç duyduğunu belirleyelim:
Sınıfları Listele
Ayrıca, mevcut uygulama içinde yüklenen tüm sınıfları listeleyebilirsiniz:
Bu, bir sınıfın yöntemini kancalamak ve yalnızca sınıfın adını bildiğinizde oldukça yararlıdır. Bu işlevi kullanarak sınıfa ait modülü arayabilir ve ardından yöntemini kancalayabilirsiniz.
Kolayca Kancalamak
Bir yöntemi kancalamak (izlemek)
Uygulamanın kaynak kodundan MainActivity'den sum() işlevinin her saniye çalıştığını biliyoruz. Her işlev çağrıldığında (argümanlar, dönüş değeri ve geri izleme) tüm olası bilgileri dökmeyi deneyelim:
Bir sınıfın tamamını kancalamak (izlemek)
Aslında MainActivity sınıfının tüm metodlarını gerçekten ilginç buluyorum, hepsini kancalamaya karar verelim. Dikkatli olun, bu bir uygulamayı çökertebilir.
Eğer sınıf kancalandığında uygulamayla oynarsanız, her işlevin ne zaman çağrıldığını, argümanlarını ve dönüş değerini göreceksiniz.
Bir işlevin boolean dönüş değerini değiştirme
Kaynak kodundan, checkPin işlevinin bir String alıp bir boolean döndürdüğünü görebilirsiniz. Şimdi işlevin her zaman true dönmesini sağlayalım:
Şimdi, PIN kodu için metin kutusuna herhangi bir şey yazarsanız, her şeyin geçerli olduğunu göreceksiniz:
Sınıf örnekleri
Belirli bir Java sınıfının canlı örneklerini arayın ve yazdırın, tam nitelikli bir sınıf adıyla belirtilir. Out, genellikle bir nesne için özellik değerlerini içeren bir keşfedilen itiraz için bir dize değeri almaya yönelik bir girişimin sonucudur.
Anahtar Deposu/Intentler
Anahtar deposu ve intentlerle oynayabilirsiniz:
Bellek
Döküm
Liste
Listede en altta frida'yı görebilirsiniz:
Frida'nın neyi ihraç ettiğini kontrol edelim:
Arama/Yazma
Objection ile bellek içinde arama yapabilir ve yazabilirsiniz:
SQLite
SQLite veritabanlarıyla etkileşimde bulunmak için sqlite
komutunu kullanabilirsiniz.
Exit
Objection'da Neleri Kaçırıyorum
Hooking yöntemleri bazen uygulamayı çökertebilir (bu aynı zamanda Frida'dan kaynaklanabilir).
Sınıfların örneklerini kullanarak örnek fonksiyonları çağıramazsınız. Ve yeni sınıf örnekleri oluşturamaz ve bunları kullanarak fonksiyonları çağıramazsınız.
Uygulama tarafından kullanılan tüm ortak şifreleme yöntemlerini kancalamak için (sslpinnin için olduğu gibi) şifrelenmiş metni, düz metni, anahtarları, IV'leri ve kullanılan algoritmaları görmek için bir kısayol bulunmamaktadır.
Hata ödülü ipucu: Intigriti'ye kaydolun, hackerlar tarafından oluşturulan bir premium hata ödülü platformuna katılın! Bugün https://go.intigriti.com/hacktricks adresinde bize katılın ve 100.000 $'a kadar ödüller kazanmaya başlayın!
Last updated