6.1 KiB
Bypass de Autenticación Biométrica (Android)
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- ¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión de PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
- Descubre The PEASS Family, nuestra colección exclusiva de NFTs
- Consigue la merchandising oficial de PEASS y HackTricks
- Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦@carlospolopm.
- Comparte tus trucos de hacking enviando PRs al repositorio de hacktricks y al repositorio de hacktricks-cloud.
Estos métodos fueron copiados de https://securitycafe.ro/2022/09/05/mobile-pentesting-101-bypassing-biometric-authentication/
Método 1 - Cuando no se utiliza el objeto criptográfico
La implementación de autenticación se basa en que se llame al callback onAuthenticationSucceded. Los investigadores de F-Secure desarrollaron un script de Frida que se puede utilizar para bypass el CryptoObject NULL en onAuthenticationSucceeded(…). El script automáticamente bypassará la huella dactilar cuando se llame al método mencionado anteriormente. Aquí hay un ejemplo corto que muestra el bypass para la huella dactilar de Android. La aplicación completa se puede descargar desde mi 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étodo 2 - Manejo de excepciones
Este script de Frida desarrollado por F-Secure se puede utilizar para evitar el uso inseguro del objeto criptográfico. Todo lo que el script necesita hacer es llamar manualmente a onAuthenticationSucceded con un objeto CryptoObject no autorizado (no desbloqueado por huella digital) almacenado en el Keystore. El truco está en que si la aplicación intenta usar otro objeto de cifrado, entonces se lanzará una excepción. Este script intentará llamar a onAuthenticationSucceded y capturar la excepción javax.crypto.IllegalBlockSizeException en la clase Cipher. A partir de ahora, todos los objetos que la aplicación use se cifrarán usando esta nueva clave.
frida -U -f com.st3v3nss.insecurebankingfingerprint --no-pause -l fingerprint-bypass-via-exception-handling.js
Ahora, ve a la pantalla de huella digital y espera a que se llame a authenticate(). Una vez que lo veas en la pantalla, escribe bypass() en la consola de 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 🎥
- ¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión de PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
- Descubre The PEASS Family, nuestra colección exclusiva de NFTs
- Obtén la oficial PEASS & HackTricks swag
- Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦@carlospolopm.
- Comparte tus trucos de hacking enviando PRs al repositorio de hacktricks y al repositorio de hacktricks-cloud.