Bypass Biometric Authentication (Android)
Reading time: 4 minutes
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)
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 PRs 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
,onAuthenticationFailed
ouonAuthenticationError
deBiometricPrompt.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)
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 PRs au HackTricks et HackTricks Cloud dépÎts github.