Bypass Biometric Authentication (Android)
Tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d’abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
Méthode 1 – Contournement sans utilisation d’objet Crypto
L’accent est mis ici sur le onAuthenticationSucceeded callback, qui est crucial dans le processus d’authentification. Des chercheurs de WithSecure ont développé un Frida script, permettant de contourner le NULL CryptoObject dans onAuthenticationSucceeded(…). Le script force un contournement automatique de l’authentification par empreinte digitale lors de l’invocation de la méthode. Ci-dessous se trouve un extrait simplifié démontrant le contournement dans un contexte d’empreinte digitale Android, avec l’application complète disponible sur 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();
}
});
Commande pour exécuter le script Frida :
frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-bypass.js
Méthode 2 – Approche de gestion des exceptions
Un autre script Frida de WithSecure traite du contournement de l’utilisation d’objets crypto non sécurisés. Le script invoque onAuthenticationSucceeded avec un CryptoObject qui n’a pas été autorisé par une empreinte digitale. Si l’application essaie d’utiliser un objet de chiffrement différent, cela déclenchera une exception. Le script se prépare à invoquer onAuthenticationSucceeded et à gérer le javax.crypto.IllegalBlockSizeException dans la classe Cipher, garantissant que les objets suivants utilisés par l’application sont chiffrés avec la nouvelle clé.
Commande pour exécuter le script Frida :
frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-bypass-via-exception-handling.js
Lors de l’accès à l’écran d’empreinte digitale et de l’initiation de authenticate(), tapez bypass() dans la console Frida pour activer le contournement :
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()
Méthode 3 – Cadres d’instrumentation
Les cadres d’instrumentation comme Xposed ou Frida peuvent être utilisés pour s’accrocher aux méthodes d’application à l’exécution. Pour l’authentification par empreinte digitale, ces cadres peuvent :
- Simuler les rappels d’authentification : En s’accrochant aux méthodes
onAuthenticationSucceeded,onAuthenticationFailedouonAuthenticationErrordeBiometricPrompt.AuthenticationCallback, vous pouvez contrôler le résultat du processus d’authentification par empreinte digitale. - Contourner le SSL Pinning : Cela permet à un attaquant d’intercepter et de modifier le trafic entre le client et le serveur, potentiellement en altérant le processus d’authentification ou en volant des données sensibles.
Exemple de commande pour Frida :
frida -U -l script-to-bypass-authentication.js --no-pause -f com.generic.in
Méthode 4 – Ingénierie Inverse & Modification de Code
Les outils d’ingénierie inverse comme APKTool, dex2jar et JD-GUI peuvent être utilisés pour décompiler une application Android, lire son code source et comprendre son mécanisme d’authentification. Les étapes incluent généralement :
- Décompilation de l’APK : Convertir le fichier APK en un format plus lisible par l’homme (comme le code Java).
- Analyse du Code : Rechercher l’implémentation de l’authentification par empreinte digitale et identifier les faiblesses potentielles (comme les mécanismes de secours ou les vérifications de validation incorrectes).
- Recompilation de l’APK : Après avoir modifié le code pour contourner l’authentification par empreinte digitale, l’application est recompilée, signée et installée sur l’appareil pour des tests.
Méthode 5 – Utilisation d’Outils d’Authentification Personnalisés
Il existe des outils et des scripts spécialisés conçus pour tester et contourner les mécanismes d’authentification. Par exemple :
- Modules MAGISK : MAGISK est un outil pour Android qui permet aux utilisateurs de rooter leurs appareils et d’ajouter des modules qui peuvent modifier ou usurper des informations au niveau matériel, y compris les empreintes digitales.
- Scripts Personnalisés : Des scripts peuvent être écrits pour interagir avec le pont de débogage Android (ADB) ou directement avec le backend de l’application pour simuler ou contourner l’authentification par empreinte digitale.
Références
Tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d’abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
HackTricks

