Bypass Biometric Authentication (Android)

Reading time: 4 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks

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 script, koji 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.

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

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

Metod 2 – Pristup Rukovanju 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 šifarski objekat, to će izazvati 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:

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

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 Povratne Informacije o Autentifikaciji: 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:

bash
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 radi testiranja.

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

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks