6.1 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 La famille PEASS, notre collection exclusive de NFT
- 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 WithSecure ont développé un script Frida qui peut être utilisé pour contourner le CryptoObject NULL dans onAuthenticationSucceeded(…). Le script contournera automatiquement l'empreinte digitale lorsque la méthode mentionnée ci-dessus 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 WithSecure peut être utilisé pour contourner l'utilisation non sécurisée de l'objet crypto. Tout ce que le script doit faire, c'est 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, 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 à l'écran d'empreinte digitale et attendez que la fonction authenticate() soit appelée. Une fois que vous voyez cela à 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 La famille PEASS, notre collection exclusive de NFT
- 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.