Bypass Biometric Authentication (Android)
Reading time: 7 minutes
tip
Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Metode 1 – Bypass sonder Crypto Object Gebruik
Die fokus hier is op die onAuthenticationSucceeded terugroep, wat van kardinale belang is in die outentikasieproses. Navorsers by WithSecure het 'n Frida script ontwikkel, wat die omseiling van die NULL CryptoObject in onAuthenticationSucceeded(...) moontlik maak. Die script dwing 'n outomatiese omseiling van die vingerafdrukoutentikasie by die metode se aanroep. Hieronder is 'n vereenvoudigde snit wat die omseiling in 'n Android Vingerafdruk konteks demonstreer, met die volle toepassing beskikbaar op 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();
}
});
Opdrag om die Frida-skrip te loop:
frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-bypass.js
Metode 2 – Uitsondering Hantering Benadering
Nog 'n Frida script deur WithSecure spreek die omseiling van onveilige kripto objek gebruik aan. Die script roep onAuthenticationSucceeded aan met 'n CryptoObject wat nie deur 'n vingerafdruk geoutoriseer is nie. As die aansoek probeer om 'n ander cipher objek te gebruik, sal dit 'n uitsondering ontlok. Die script berei voor om onAuthenticationSucceeded aan te roep en die javax.crypto.IllegalBlockSizeException in die Cipher klas te hanteer, wat verseker dat daaropvolgende objek wat deur die aansoek gebruik word, met die nuwe sleutel geënkripteer is.
Opdrag om die Frida script te loop:
frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-bypass-via-exception-handling.js
Wanneer jy die vingerafdrukskerm bereik en die inisiasie van authenticate()
, tik bypass()
in die Frida-konsol om die omseiling te aktiveer:
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()
Metode 3 – Instrumentasie Raamwerke
Instrumentasie raamwerke soos Xposed of Frida kan gebruik word om in toepassingsmetodes tydens uitvoering in te haak. Vir vingerafdrukverifikasie kan hierdie raamwerke:
- Die Verifikasie Terugroepe Naboots: Deur in die
onAuthenticationSucceeded
,onAuthenticationFailed
, ofonAuthenticationError
metodes van dieBiometricPrompt.AuthenticationCallback
in te haak, kan jy die uitkoms van die vingerafdrukverifikasieproses beheer. - SSL Pinning Omseil: Dit stel 'n aanvaller in staat om die verkeer tussen die kliënt en die bediener te onderskep en te wysig, wat moontlik die verifikasieproses kan verander of sensitiewe data kan steel.
Voorbeeldopdrag vir Frida:
frida -U -l script-to-bypass-authentication.js --no-pause -f com.generic.in
Metode 4 – Terugvoering en Kodewysiging
Terugvoering gereedskap soos APKTool
, dex2jar
, en JD-GUI
kan gebruik word om 'n Android-toepassing te dekompileer, sy bronnkode te lees, en sy outentikasie-meganisme te verstaan. Die stappe sluit gewoonlik in:
- Dekomplilering van die APK: Converteer die APK-lêer na 'n meer menslike leesbare formaat (soos Java-kode).
- Analiseer die Kode: Soek na die implementering van vingerafdrukoutentikasie en identifiseer potensiële swakpunte (soos terugvalmeganismes of onvanpaste valideringskontroles).
- Hersamestelling van die APK: Na die wysiging van die kode om vingerafdrukoutentikasie te omseil, word die toepassing hersamestel, onderteken, en op die toestel geïnstalleer vir toetsing.
Metode 5 – Gebruik van Aangepaste Outentikasie Gereedskap
Daar is gespesialiseerde gereedskap en skripte ontwerp om outentikasie-meganismes te toets en te omseil. Byvoorbeeld:
- MAGISK Modules: MAGISK is 'n gereedskap vir Android wat gebruikers toelaat om hul toestelle te root en modules by te voeg wat hardewarevlak-inligting kan wysig of spoof, insluitend vingerafdrukke.
- Aangepaste Skripte: Skripte kan geskryf word om met die Android Debug Bridge (ADB) of direk met die toepassing se agterkant te kommunikeer om vingerafdrukoutentikasie te simuleer of te omseil.
Metode 6 – Universele Frida Hook vir BiometricPrompt
(API 28-34)
In 2023 het 'n gemeenskap Frida-skrip met die naam Universal-Android-Biometric-Bypass op CodeShare verskyn. Die skrip haak elke oorlaai van BiometricPrompt.authenticate()
sowel as die ou FingerprintManager.authenticate()
en aktiveer direk onAuthenticationSucceeded()
met 'n gefabriseerde AuthenticationResult
wat 'n null CryptoObject
bevat. Omdat dit dinamies aanpas by API-vlakke, werk dit steeds op Android 14 (API 34) as die teikentoepassing geen kriptografiese kontroles op die teruggekeer CryptoObject
uitvoer.
# Install the script from CodeShare and run it against the target package
frida -U -f com.target.app --no-pause -l universal-android-biometric-bypass.js
Key ideas
- Alles gebeur in gebruikersruimte – geen kernuitbuiting of root is nodig nie.
- Die aanval bly heeltemal stil vir die UI: die stelsels biometriese dialoog verskyn nooit.
- Versagting: verifieer altyd
result.cryptoObject
en sy cipher/handtekening voordat sensitiewe funksies ontgrendel word.
Method 7 – Downgrade / Fallback Manipulation
Begin met Android 11, kan ontwikkelaars spesifiseer watter autentiseerders aanvaarbaar is via setAllowedAuthenticators()
(of die ouer setDeviceCredentialAllowed()
). 'n runtime hooking aanval kan die allowedAuthenticators
bit-veld dwing na die swakker
BIOMETRIC_WEAK | DEVICE_CREDENTIAL
waarde:
// Frida one-liner – replace strong-only policy with weak/device-credential
var PromptInfoBuilder = Java.use('androidx.biometric.BiometricPrompt$PromptInfo$Builder');
PromptInfoBuilder.setAllowedAuthenticators.implementation = function(flags){
return this.setAllowedAuthenticators(0x0002 | 0x8000); // BIOMETRIC_WEAK | DEVICE_CREDENTIAL
};
As die app nie daarna die teruggekeer AuthenticationResult
valideer nie, kan 'n aanvaller eenvoudig die PIN/Pattern terugvalknoppie druk of selfs 'n nuwe swak biometriese registrasie doen om toegang te verkry.
Metode 8 – Verskaffer / Kernel-vlak CVE's
Hou 'n oog op Android-sekuriteitsbulletins: verskeie onlangse kernel-kant foute laat plaaslike voorregverhoging toe deur die vingerafdruk HAL en effektief die sensorpyplyn deaktiveer of kortsluit. Voorbeelde sluit in:
- CVE-2023-20995 – logiese fout in
captureImage
vanCustomizedSensor.cpp
(Pixel 8, Android 13) wat ontgrendeling omseil sonder gebruikersinteraksie toelaat. - CVE-2024-53835 / CVE-2024-53840 – “moontlike biometriese omseiling as gevolg van 'n ongewone wortel oorsaak” wat in die Desember 2024 Pixel bulletin reggestel is.
Alhoewel hierdie kwesbaarhede die vergrendelingskerm teiken, kan 'n ge-root toetspersoon dit met app-vlak foute ketting om in-app biometrie ook te omseil.
Versterking Kontrolelys vir Ontwikkelaars (Vinige Pentester Aantekeninge)
- Handhaaf
setUserAuthenticationRequired(true)
ensetInvalidatedByBiometricEnrollment(true)
wanneer Keystore sleutels gegenereer word. 'n Geldige biometriese is dan nodig voordat die sleutel gebruik kan word. - Weier 'n
CryptoObject
met null of onverwagte cipher / handtekening; behandel dit as 'n fatale autentikasiefout. - Wanneer
BiometricPrompt
gebruik word, verkiesBIOMETRIC_STRONG
en val nooit terug opBIOMETRIC_WEAK
ofDEVICE_CREDENTIAL
vir hoë-risiko aksies. - Pin die nuutste
androidx.biometric
weergawe (≥1.2.0-beta02) – onlangse vrystellings voeg outomatiese null-cipher kontroles by en verskerp toegelate autentiseerder kombinasies.
Verwysings
tip
Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.