6.2 KiB
Contourner l'authentification biométrique (Android)
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- 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 de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT !
- Découvrez The PEASS Family, 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 repo hacktricks et au repo hacktricks-cloud.
Ces méthodes ont été copiées depuis https://securitycafe.ro/2022/09/05/mobile-pentesting-101-bypassing-biometric-authentication/
Méthode 1 - Lorsque l'objet crypto n'est pas utilisé
La mise en œuvre de l'authentification repose sur l'appel du rappel onAuthenticationSucceded . Les chercheurs de F-Secure ont développé un script Frida qui peut être utilisé pour contourner l'objet CryptoObject NULL dans onAuthenticationSucceeded(…). Le script contournera automatiquement l'empreinte digitale lorsque la méthode susmentionnée est appelée. Voici un court exemple qui montre le contournement pour l'empreinte digitale Android. L'application complète peut être téléchargée depuis mon 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();
}
});
frida -U -f com.st3v3nss.insecurebankingfingerprint --no-pause -l fingerprint-bypass.js
Méthode 2 - Gestion des exceptions
Ce script Frida développé par F-Secure peut être utilisé pour contourner l'utilisation non sécurisée de l'objet crypto. Tout ce que le script doit faire est d'appeler manuellement onAuthenticationSucceded avec un CryptoObject non autorisé (non déverrouillé par empreinte digitale) stocké dans le Keystore. Le problème est que si l'application tente d'utiliser un autre objet de chiffrement, alors une exception sera levée. Ce script tentera d'appeler onAuthenticationSucceded et de capturer l'exception javax.crypto.IllegalBlockSizeException dans la classe Cipher. Désormais, tous les objets utilisés par l'application seront chiffrés à l'aide de cette nouvelle clé.
frida -U -f com.st3v3nss.insecurebankingfingerprint --no-pause -l fingerprint-bypass-via-exception-handling.js
Maintenant, allez sur l'écran d'empreinte digitale et attendez que la fonction authenticate() soit appelée. Une fois que vous la voyez à l'écran, tapez bypass() dans la console Frida :
Spawning `com.st3v3nss.insecurebankingfingerprint`...
[Android Emulator 5554::com.st3v3nss.insecurebankingfingerprint ]-> Hooking BiometricPrompt.authenticate()...
Hooking BiometricPrompt.authenticate2()...
Hooking FingerprintManager.authenticate()...
[Android Emulator 5554::com.st3v3nss.insecurebankingfingerprint ]-> bypass()
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- 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 de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT !
- Découvrez The PEASS Family, 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 au dépôt hacktricks-cloud.