Bypass Biometric Authentication (Android)
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
L'attenzione qui è sul callback onAuthenticationSucceeded, che è cruciale nel processo di autenticazione. I ricercatori di WithSecure hanno sviluppato uno script Frida, che consente di bypassare il NULL CryptoObject in onAuthenticationSucceeded(...). Lo script forza un bypass automatico dell'autenticazione tramite impronta digitale al momento dell'invocazione del metodo. Di seguito è riportato un frammento semplificato che dimostra il bypass in un contesto di impronta digitale Android, con l'applicazione completa disponibile su GitHub.
Comando per eseguire lo script Frida:
Un altro Frida script di WithSecure affronta il bypass dell'uso di oggetti crittografici insicuri. Lo script invoca onAuthenticationSucceeded con un CryptoObject che non è stato autorizzato da un'impronta digitale. Se l'applicazione tenta di utilizzare un oggetto cifrato diverso, verrà generata un'eccezione. Lo script si prepara a invocare onAuthenticationSucceeded e gestire il javax.crypto.IllegalBlockSizeException nella classe Cipher, assicurando che gli oggetti successivi utilizzati dall'applicazione siano crittografati con la nuova chiave.
Comando per eseguire lo script Frida:
Al raggiungimento dello schermo delle impronte digitali e all'inizio di authenticate()
, digita bypass()
nella console di Frida per attivare il bypass:
I framework di strumentazione come Xposed o Frida possono essere utilizzati per agganciarsi ai metodi dell'applicazione durante l'esecuzione. Per l'autenticazione tramite impronta digitale, questi framework possono:
Fingere i Callback di Autenticazione: Agganciandosi ai metodi onAuthenticationSucceeded
, onAuthenticationFailed
o onAuthenticationError
del BiometricPrompt.AuthenticationCallback
, puoi controllare l'esito del processo di autenticazione tramite impronta digitale.
Evitare il SSL Pinning: Questo consente a un attaccante di intercettare e modificare il traffico tra il client e il server, potenzialmente alterando il processo di autenticazione o rubando dati sensibili.
Esempio di comando per Frida:
Strumenti di ingegneria inversa come APKTool
, dex2jar
e JD-GUI
possono essere utilizzati per decompilare un'applicazione Android, leggere il suo codice sorgente e comprendere il suo meccanismo di autenticazione. I passaggi generalmente includono:
Decompilazione dell'APK: Convertire il file APK in un formato più leggibile (come il codice Java).
Analisi del codice: Cercare l'implementazione dell'autenticazione tramite impronte digitali e identificare potenziali vulnerabilità (come meccanismi di fallback o controlli di validazione inadeguati).
Ricompilazione dell'APK: Dopo aver modificato il codice per bypassare l'autenticazione tramite impronte digitali, l'applicazione viene ricompilata, firmata e installata sul dispositivo per il test.
Esistono strumenti e script specializzati progettati per testare e bypassare i meccanismi di autenticazione. Ad esempio:
Moduli MAGISK: MAGISK è uno strumento per Android che consente agli utenti di rootare i propri dispositivi e aggiungere moduli che possono modificare o falsificare informazioni a livello hardware, comprese le impronte digitali.
Script personalizzati: Possono essere scritti script per interagire con l'Android Debug Bridge (ADB) o direttamente con il backend dell'applicazione per simulare o bypassare l'autenticazione tramite impronte digitali.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)