7.1 KiB
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
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
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:
- Lažirati Pozive za Autentifikaciju: Povezivanjem sa metodama
onAuthenticationSucceeded
,onAuthenticationFailed
ilionAuthenticationError
izBiometricPrompt.AuthenticationCallback
, možete kontrolisati ishod procesa autentifikacije otiskom prsta. - 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:
- Dekompilacija APK-a: Pretvorite APK datoteku u čitljiviji format (kao što je Java kod).
- Analiza koda: Potražite implementaciju autentifikacije otiskom prsta i identifikujte potencijalne slabosti (kao što su mehanizmi povratka ili nepravilne provere validacije).
- 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:
- 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.
- 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
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.