8.2 KiB
Eludir la 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 acceder a la última versión de PEASS o descargar HackTricks en PDF? Consulta los PLANES DE SUSCRIPCIÓN!
- Descubre La Familia PEASS, nuestra colección de NFTs exclusivos
- Consigue el merchandising oficial de PEASS & 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.
Método 1 – Eludir con No Uso de Objeto Crypto
El enfoque aquí está en el callback onAuthenticationSucceeded, que es crucial en el proceso de autenticación. Investigadores de WithSecure desarrollaron un script de Frida, que permite eludir el CryptoObject NULL en onAuthenticationSucceeded(...). El script fuerza un bypass automático de la autenticación de huella digital al invocar el método. A continuación se muestra un fragmento simplificado que demuestra el bypass en un contexto de Huella Digital Android, con la aplicación completa disponible en 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();
}
});
Comando para ejecutar el script de Frida:
frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-bypass.js
Método 2 – Enfoque de Manejo de Excepciones
Otro script de Frida de WithSecure aborda la elusión del uso inseguro de objetos criptográficos. El script invoca onAuthenticationSucceeded con un CryptoObject que no ha sido autorizado por una huella digital. Si la aplicación intenta usar un objeto de cifrado diferente, se desencadenará una excepción. El script se prepara para invocar onAuthenticationSucceeded y manejar la javax.crypto.IllegalBlockSizeException en la clase Cipher, asegurando que los objetos subsiguientes utilizados por la aplicación estén encriptados con la nueva clave.
Comando para ejecutar el script de Frida:
frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-bypass-via-exception-handling.js
Al llegar a la pantalla de huella digital y al inicio de authenticate()
, escribe bypass()
en la consola de Frida para activar el bypass:
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étodo 3 – Marcos de Instrumentación
Marcos de instrumentación como Xposed o Frida pueden ser utilizados para intervenir en métodos de aplicaciones en tiempo de ejecución. Para la autenticación por huella dactilar, estos marcos pueden:
- Simular los Callbacks de Autenticación: Al intervenir en los métodos
onAuthenticationSucceeded
,onAuthenticationFailed
, oonAuthenticationError
deBiometricPrompt.AuthenticationCallback
, puedes controlar el resultado del proceso de autenticación por huella dactilar. - Evitar SSL Pinning: Esto permite a un atacante interceptar y modificar el tráfico entre el cliente y el servidor, alterando potencialmente el proceso de autenticación o robando datos sensibles.
Ejemplo de comando para Frida:
frida -U -l script-to-bypass-authentication.js --no-pause -f com.generic.in
Método 4 – Ingeniería Inversa y Modificación de Código
Herramientas de ingeniería inversa como APKTool
, dex2jar
y JD-GUI
pueden ser utilizadas para descompilar una aplicación Android, leer su código fuente y entender su mecanismo de autenticación. Los pasos generalmente incluyen:
- Descompilación del APK: Convertir el archivo APK a un formato más legible por humanos (como código Java).
- Análisis del Código: Buscar la implementación de la autenticación por huella dactilar e identificar posibles debilidades (como mecanismos de reserva o verificaciones de validación inadecuadas).
- Recompilación del APK: Después de modificar el código para eludir la autenticación por huella dactilar, la aplicación se recompila, firma y se instala en el dispositivo para pruebas.
Método 5 – Uso de Herramientas de Autenticación Personalizadas
Existen herramientas y scripts especializados diseñados para probar y eludir mecanismos de autenticación. Por ejemplo:
- Módulos MAGISK: MAGISK es una herramienta para Android que permite a los usuarios rootear sus dispositivos y añadir módulos que pueden modificar o falsificar información a nivel de hardware, incluyendo huellas dactilares.
- Scripts Personalizados: Se pueden escribir scripts para interactuar con el Android Debug Bridge (ADB) o directamente con el backend de la aplicación para simular o eludir la autenticación por huella dactilar.
Referencias
☁️ 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 La Familia PEASS, nuestra colección de NFTs exclusivos
- Consigue el merchandising oficial de PEASS & 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.