Bypass Biometric Authentication (Android)

HackTricks'i Destekleyin

Yöntem 1 – Kripto Nesne Kullanımı Olmadan Atlatma

Burada odak noktası, kimlik doğrulama sürecinde kritik öneme sahip olan onAuthenticationSucceeded geri çağrısıdır. WithSecure'daki araştırmacılar, onAuthenticationSucceeded(...) içindeki NULL CryptoObject'in atlatılmasını sağlayan bir Frida scripti geliştirdiler. Script, metodun çağrılmasıyla birlikte parmak izi kimlik doğrulamasının otomatik olarak atlatılmasını zorlar. Aşağıda, bir Android Parmak İzi bağlamında atlatmayı gösteren basitleştirilmiş bir kod parçası bulunmaktadır; tam uygulama GitHub'da mevcuttur.

biometricPrompt = new BiometricPrompt(this, executor, new BiometricPrompt.AuthenticationCallback() {
@Override
public void onAuthenticationSucceeded(@NonNull BiometricPrompt.AuthenticationResult result) {
Toast.makeText(MainActivity.this,"Success",Toast.LENGTH_LONG).show();
}
});

Frida betiğini çalıştırmak için komut:

frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-bypass.js

Yöntem 2 – İstisna Yönetimi Yaklaşımı

WithSecure tarafından yazılan başka bir Frida script, güvensiz kripto nesne kullanımını atlatmayı ele alıyor. Script, parmak izi ile yetkilendirilmemiş bir CryptoObject ile onAuthenticationSucceeded'i çağırır. Uygulama farklı bir şifreleme nesnesi kullanmaya çalışırsa, bir istisna tetiklenecektir. Script, onAuthenticationSucceeded'i çağırmaya ve Cipher sınıfındaki javax.crypto.IllegalBlockSizeException'ı yönetmeye hazırlanır, böylece uygulama tarafından kullanılan sonraki nesnelerin yeni anahtar ile şifrelenmesini sağlar.

Frida script'ini çalıştırmak için komut:

frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-bypass-via-exception-handling.js

Parmak izi ekranına ulaştığınızda ve authenticate() başlatıldığında, bypass'ı etkinleştirmek için Frida konsoluna bypass() yazın:

Spawning com.generic.insecurebankingfingerprint...
[Android Emulator 5554::com.generic.insecurebankingfingerprint]-> Hooking BiometricPrompt.authenticate()...
Hooking BiometricPrompt.authenticate2()...
Hooking FingerprintManager.authenticate()...
[Android Emulator 5554::com.generic.insecurebankingfingerprint]-> bypass()

Yöntem 3 – Enstrümantasyon Çerçeveleri

Xposed veya Frida gibi enstrümantasyon çerçeveleri, uygulama yöntemlerine çalışma zamanında bağlanmak için kullanılabilir. Parmak izi kimlik doğrulaması için bu çerçeveler:

  1. Kimlik Doğrulama Geri Aramalarını Taklit Etme: BiometricPrompt.AuthenticationCallback'ın onAuthenticationSucceeded, onAuthenticationFailed veya onAuthenticationError yöntemlerine bağlanarak, parmak izi kimlik doğrulama sürecinin sonucunu kontrol edebilirsiniz.

  2. SSL Pinning'i Atlatma: Bu, bir saldırganın istemci ile sunucu arasındaki trafiği kesip değiştirmesine olanak tanır, bu da kimlik doğrulama sürecini değiştirebilir veya hassas verileri çalabilir.

Frida için örnek komut:

frida -U -l script-to-bypass-authentication.js --no-pause -f com.generic.in

Yöntem 4 – Tersine Mühendislik ve Kod Değiştirme

APKTool, dex2jar ve JD-GUI gibi tersine mühendislik araçları, bir Android uygulamasını decompile etmek, kaynak kodunu okumak ve kimlik doğrulama mekanizmasını anlamak için kullanılabilir. Adımlar genellikle şunları içerir:

  1. APK'yı Decompile Etme: APK dosyasını daha okunabilir bir formata (Java kodu gibi) dönüştürme.

  2. Kodu Analiz Etme: parmak izi kimlik doğrulama uygulamasını arama ve potansiyel zayıflıkları (yedekleme mekanizmaları veya uygunsuz doğrulama kontrolleri gibi) belirleme.

  3. APK'yı Yeniden Derleme: Parmak izi kimlik doğrulamayı atlamak için kodu değiştirdikten sonra, uygulama yeniden derlenir, imzalanır ve test için cihaza yüklenir.

Yöntem 5 – Özel Kimlik Doğrulama Araçları Kullanma

Kimlik doğrulama mekanizmalarını test etmek ve atlamak için tasarlanmış özel araçlar ve betikler vardır. Örneğin:

  1. MAGISK Modülleri: MAGISK, kullanıcıların cihazlarını rootlamasına ve parmak izleri de dahil olmak üzere donanım düzeyindeki bilgileri değiştirebilen veya taklit edebilen modüller eklemesine olanak tanıyan bir Android aracıdır.

  2. Özel Yapım Betikler: Android Debug Bridge (ADB) ile etkileşimde bulunmak veya uygulamanın arka ucuyla doğrudan etkileşimde bulunarak parmak izi kimlik doğrulamayı simüle etmek veya atlamak için betikler yazılabilir.

Referanslar

Support HackTricks

Last updated