Objection Tutorial

AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile!

HackTricks'i desteklemenin diğer yolları:

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

pip3 install objection

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:

frida-ps -Uai
objection --gadget asvid.github.io.fridaapp explore

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.

env

Frida Bilgisi

frida

Yükleme/İndirme

file download <remote path> [<local path>]
file upload <local path> [<remote path>]

Frida betiği içe aktar

import <local path frida-script>

SSLPinning

SSLPinning

android sslpinning disable #Attempts to disable SSL Pinning on Android devices.

Kök algılama

android root disable  #Attempts to disable root detection on Android devices.
android root simulate #Attempts to simulate a rooted Android environment.

Komutu Yürüt

android shell_exec whoami

Ekran Görüntüleri

android ui screenshot /tmp/screenshot
android ui FLAG_SECURE false  #This may enable you to take screenshots using the hardware keys

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

android hooking list activities
android hooking list services
android hooking list receivers

Frida, bulunamazsa bir hata başlatacaktır

Mevcut etkinliği almak

android hooking get current_activity

Sınıfları Arama

Uygulamamızdaki sınıfları aramaya başlayalım

android hooking search classes asvid.github.io.fridaapp

Bir sınıfın arama yöntemleri

Şimdi MainActivity sınıfının içindeki yöntemleri çıkaralım:

android hooking search methods asvid.github.io.fridaapp MainActivity

Bir sınıfın bildirilen yöntemlerini ve parametrelerini listele

Sınıfın yöntemlerinin hangi parametrelere ihtiyaç duyduğunu belirleyelim:

android hooking list class_methods asvid.github.io.fridaapp.MainActivity

Sınıfları Listele

Ayrıca, mevcut uygulama içinde yüklenen tüm sınıfları listeleyebilirsiniz:

android hooking list classes #List all loaded classes, As the target application gets usedmore, this command will return more classes.

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:

android hooking watch class_method asvid.github.io.fridaapp.MainActivity.sum --dump-args --dump-backtrace --dump-return

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.

android hooking watch class asvid.github.io.fridaapp.MainActivity --dump-args --dump-return

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.

android heap print_instances <class>

Anahtar Deposu/Intentler

Anahtar deposu ve intentlerle oynayabilirsiniz:

android keystore list
android intents launch_activity
android intent launch_service

Bellek

Döküm

memory dump all <local destination> #Dump all memory
memory dump from_base <base_address> <size_to_dump> <local_destination> #Dump a part

Liste

memory list modules

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:

memory search "<pattern eg: 41 41 41 ?? 41>" (--string) (--offsets-only)
memory write "<address>" "<pattern eg: 41 41 41 41>" (--string)

SQLite

SQLite veritabanlarıyla etkileşimde bulunmak için sqlite komutunu kullanabilirsiniz.

Exit

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!

Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'i desteklemenin diğer yolları:

Last updated