Bypass Biometric Authentication (Android)

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Metode 1 - Bypassing sonder Crypto Object-gebruik

Die fokus hier is op die onAuthenticationSucceeded terugroep, wat krities is in die verifikasieproses. Navorsers by WithSecure het 'n Frida-skrip ontwikkel wat die omseiling van die NULL CryptoObject in onAuthenticationSucceeded(...) moontlik maak. Die skrip dwing 'n outomatiese omseiling van die vingerafdrukverifikasie by die oproep van die metode. Hieronder is 'n vereenvoudigde snipper wat die omseiling demonstreer in 'n Android Vingerafdruk-konteks, met die volledige 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-skripsie uit te voer:

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

Metode 2 - Uitsonderingshanteringbenadering

'n Ander Frida-skripsie deur WithSecure spreek die omseiling van onveilige kriptografiese objekgebruik aan. Die skripsie roep onAuthenticationSucceeded aan met 'n CryptoObject wat nie deur 'n vingerafdruk geoutoriseer is nie. As die toepassing probeer om 'n ander chiffreerobjek te gebruik, sal dit 'n uitsondering veroorsaak. Die skripsie berei voor om onAuthenticationSucceeded aan te roep en die javax.crypto.IllegalBlockSizeException in die Cipher-klas te hanteer, om te verseker dat daaropvolgende objekte wat deur die toepassing gebruik word, met die nuwe sleutel versleutel word.

Opdrag om die Frida-skripsie uit te voer:

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

By die vingerafdruk skerm te bereik en die begin van authenticate(), tik bypass() in die Frida konsole om die omweg 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 te haak by toepassingsmetodes tydens uitvoering. Vir vingerafdrukverifikasie kan hierdie raamwerke:

  1. Naboots die Verifikasie Terugroepings: Deur in te haak by die onAuthenticationSucceeded, onAuthenticationFailed, of onAuthenticationError metodes van die BiometricPrompt.AuthenticationCallback, kan jy die uitkoms van die vingerafdrukverifikasieproses beheer.

  2. Bypass SSL Pinning: Dit stel 'n aanvaller in staat om die verkeer tussen die kliënt en die bediener te onderskep en te wysig, moontlik die verifikasieproses te verander of sensitiewe data te steel.

Voorbeeldopdrag vir Frida:

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

Metode 4 - Omgekeerde Ingenieurswese & Kode Wysiging

Omgekeerde ingenieurswese hulpmiddels soos APKTool, dex2jar, en JD-GUI kan gebruik word om 'n Android-toepassing te dekompilieer, sy bronkode te lees, en sy outentiseringsmeganisme te verstaan. Die stappe behels gewoonlik die volgende:

  1. Dekompilering van die APK: Omskakeling van die APK-lêer na 'n meer mensleesbare formaat (soos Java-kode).

  2. Analise van die Kode: Soek na die implementering van vingerafdruk-outentisering en identifiseer potensiële swakpunte (soos terugvalmeganismes of onvanpaste valideringskontroles).

  3. Heropbou van die APK: Nadat die kode gewysig is om vingerafdruk-outentisering te omseil, word die toepassing heropgebou, onderteken, en op die toestel geïnstalleer vir toetsdoeleindes.

Metode 5 - Gebruik van Aangepaste Outentiseringshulpmiddels

Daar is gespesialiseerde hulpmiddels en skripte ontwerp om outentiseringmeganismes te toets en te omseil. Byvoorbeeld:

  1. MAGISK-modules: MAGISK is 'n hulpmiddel vir Android wat gebruikers in staat stel om hul toestelle te root en modules by te voeg wat hardewarevlak-inligting, insluitend vingerafdrukke, kan wysig of vervals.

  2. Aangepaste Skripte: Skripte kan geskryf word om te kommunikeer met die Android Debug Bridge (ADB) of direk met die toepassing se agterkant om vingerafdruk-outentisering te simuleer of te omseil.

Verwysings

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Last updated