Bypass Biometric Authentication (Android)

Reading time: 4 minutes

tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks

Metode 1 – Omseiling 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.

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

Opdrag om die Frida-skrip te loop:

bash
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 crypto objek gebruik aan. Die script roep onAuthenticationSucceeded aan met 'n CryptoObject wat nie deur 'n vingerafdruk geverifieer 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:

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

Wanneer jy die vingerafdrukskerm bereik en die authenticate() begin, 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:

  1. Die Verifikasie Terugroepe Naboots: Deur in die onAuthenticationSucceeded, onAuthenticationFailed, of onAuthenticationError metodes van die BiometricPrompt.AuthenticationCallback in te haak, kan jy die uitkoms van die vingerafdrukverifikasieproses beheer.
  2. SSL Pinning Omseil: Dit laat 'n aanvaller toe 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:

bash
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:

  1. Dekomplilering van die APK: Skakel die APK-lêer om na 'n meer menslike leesbare formaat (soos Java-kode).
  2. Analise van die Kode: Soek na die implementering van vingerafdrukoutentikasie en identifiseer potensiële swakpunte (soos terugvalmeganismes of onvanpaste valideringskontroles).
  3. Hersamestelling van die APK: Nadat die kode gewysig is om vingerafdrukoutentikasie te omseil, word die toepassing hersamestel, onderteken, en op die toestel geïnstalleer vir toetsing.

Metode 5 – Gebruik van Pasgemaakte Outentikasiegereedskap

Daar is gespesialiseerde gereedskap en skripte ontwerp om outentikasie-meganismes te toets en te omseil. Byvoorbeeld:

  1. 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.
  2. Pasgemaakte 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.

Verwysings

tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks