# Bypass Biometric Authentication (Android) {{#include ../../banners/hacktricks-training.md}} ## **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](https://github.com/WithSecureLABS/android-keystore-audit/blob/master/frida-scripts/fingerprint-bypass.js) 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](https://github.com/St3v3nsS/InsecureBanking). ```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](https://github.com/WithSecureLABS/android-keystore-audit/blob/master/frida-scripts/fingerprint-bypass-via-exception-handling.js) 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 - [https://securitycafe.ro/2022/09/05/mobile-pentesting-101-bypassing-biometric-authentication/](https://securitycafe.ro/2022/09/05/mobile-pentesting-101-bypassing-biometric-authentication/) {{#include ../../banners/hacktricks-training.md}}