6.5 KiB
Contourner l'authentification biométrique (Android)
Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!
- Travaillez-vous dans une entreprise de cybersécurité? Voulez-vous voir votre entreprise annoncée dans HackTricks? ou voulez-vous avoir accès à la dernière version du PEASS ou télécharger HackTricks en PDF? Consultez les PLANS D'ABONNEMENT!
- Découvrez La famille PEASS, notre collection exclusive de NFTs
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au dépôt hacktricks et dépôt hacktricks-cloud.
Méthode 1 - Contournement sans utilisation d'objet Crypto
L'accent est mis ici sur le rappel onAuthenticationSucceeded, qui est crucial dans le processus d'authentification. Les chercheurs de WithSecure ont développé un script Frida, permettant de contourner le CryptoObject NULL 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 aborde le contournement de l'utilisation d'objets cryptographiques non sécurisés. Le script invoque onAuthenticationSucceeded avec un CryptoObject qui n'a pas été autorisé par une empreinte digitale. Si l'application tente d'utiliser un objet de chiffrement différent, cela déclenchera une exception. Le script se prépare à invoquer onAuthenticationSucceeded et à gérer l'exception javax.crypto.IllegalBlockSizeException dans la classe Cipher, garantissant que les objets ultérieurs 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
Lorsque vous atteignez l'écran d'empreintes digitales et que vous lancez authenticate()
, saisissez 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 accrocher des méthodes d'application en temps d'exécution. Pour l'authentification par empreinte digitale, ces cadres peuvent :
- Simuler les rappels d'authentification : En accrochant les méthodes
onAuthenticationSucceeded
,onAuthenticationFailed
, ouonAuthenticationError
duBiometricPrompt.AuthenticationCallback
, vous pouvez contrôler le résultat du processus d'authentification par empreinte digitale. - Contourner l'épinglage SSL : Cela permet à un attaquant d'intercepter et de modifier le trafic entre le client et le serveur, potentiellement altérant le processus d'authentification ou volant des données sensibles.
Commande d'exemple pour Frida :
frida -U -l script-to-bypass-authentication.js --no-pause -f com.generic.in
Méthode 4 – Rétro-ingénierie & Modification de Code
Des outils de rétro-ingénierie 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 comprennent généralement :
- Décompiler l'APK : Convertir le fichier APK dans un format plus lisible par les humains (comme du code Java).
- Analyser le Code : Rechercher l'implémentation de l'authentification par empreinte digitale et identifier les éventuelles faiblesses (comme les mécanismes de secours ou les vérifications de validation incorrectes).
- Recompiler 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 les tests.
Méthode 5 – Utilisation d'Outils d'Authentification Personnalisés
Il existe des outils spécialisés et des scripts 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 pouvant modifier ou imiter 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.