hacktricks/mobile-pentesting/android-app-pentesting/bypass-biometric-authentication-android.md

7.1 KiB
Raw Permalink Blame History

Bypass Biometric Authentication (Android)

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

Method 1 Bypassing with No Crypto Object Usage

Fokus ovde je na onAuthenticationSucceeded povratnom pozivu, koji je ključan u procesu autentifikacije. Istraživači iz WithSecure-a razvili su Frida skriptu, koja omogućava zaobilaženje NULL CryptoObject u onAuthenticationSucceeded(...). Skripta prisiljava automatsko zaobilaženje autentifikacije otiska prsta prilikom poziva metode. Ispod je pojednostavljeni isječak koji prikazuje zaobilaženje u kontekstu Android otiska prsta, sa punom aplikacijom dostupnom na GitHub.

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 скрипте:

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

Metod 2 Pristup upravljanju izuzecima

Još jedan Frida skript od WithSecure se bavi zaobilaženjem nesigurne upotrebe kripto objekata. Skript poziva onAuthenticationSucceeded sa CryptoObject koji nije autorizovan otiskom prsta. Ako aplikacija pokuša da koristi drugi objekat šifriranja, izazvaće izuzetak. Skript se priprema da pozove onAuthenticationSucceeded i obradi javax.crypto.IllegalBlockSizeException u klasi Cipher, osiguravajući da su sledeći objekti koje koristi aplikacija šifrovani novim ključem.

Komanda za pokretanje Frida skripta:

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

Upon reaching the fingerprint screen and the initiation of authenticate(), type `bypass()`` in the Frida console to activate the bypass:

Kada dođete do ekrana otiska prsta i pokrenete authenticate(), otkucajte `bypass()`` u Frida konzoli da aktivirate zaobilaženje:

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()

Metod 3 Instrumentacijski Okviri

Instrumentacijski okviri kao što su Xposed ili Frida mogu se koristiti za povezivanje sa metodama aplikacije u vreme izvođenja. Za autentifikaciju otiskom prsta, ovi okviri mogu:

  1. Lažirati Pozive za Autentifikaciju: Povezivanjem sa metodama onAuthenticationSucceeded, onAuthenticationFailed ili onAuthenticationError iz BiometricPrompt.AuthenticationCallback, možete kontrolisati ishod procesa autentifikacije otiskom prsta.
  2. Obići SSL Pinovanje: Ovo omogućava napadaču da presretne i izmeni saobraćaj između klijenta i servera, potencijalno menjajući proces autentifikacije ili kradući osetljive podatke.

Primer komande za Frida:

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

Metod 4 Reverzno inženjerstvo i modifikacija koda

Alati za reverzno inženjerstvo kao što su APKTool, dex2jar i JD-GUI mogu se koristiti za dekompilaciju Android aplikacije, čitanje njenog izvornog koda i razumevanje njenog mehanizma autentifikacije. Koraci obično uključuju:

  1. Dekompilacija APK-a: Pretvorite APK datoteku u čitljiviji format (kao što je Java kod).
  2. Analiza koda: Potražite implementaciju autentifikacije otiskom prsta i identifikujte potencijalne slabosti (kao što su mehanizmi povratka ili nepravilne provere validacije).
  3. Rekompilacija APK-a: Nakon modifikacije koda za zaobilaženje autentifikacije otiskom prsta, aplikacija se rekompajlira, potpisuje i instalira na uređaj za testiranje.

Metod 5 Korišćenje prilagođenih alata za autentifikaciju

Postoje specijalizovani alati i skripte dizajnirane za testiranje i zaobilaženje mehanizama autentifikacije. Na primer:

  1. MAGISK moduli: MAGISK je alat za Android koji omogućava korisnicima da root-uju svoje uređaje i dodaju module koji mogu modifikovati ili lažirati informacije na hardverskom nivou, uključujući otiske prstiju.
  2. Prilagođene skripte: Skripte se mogu napisati za interakciju sa Android Debug Bridge (ADB) ili direktno sa backend-om aplikacije kako bi simulirale ili zaobišle autentifikaciju otiskom prsta.

Reference

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}