6 KiB
Bypass da Autenticação Biométrica (Android)
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Você trabalha em uma empresa de segurança cibernética? Você quer ver sua empresa anunciada no HackTricks? ou você quer ter acesso à última versão do PEASS ou baixar o HackTricks em PDF? Confira os PLANOS DE ASSINATURA!
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Adquira o swag oficial do PEASS & HackTricks
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe suas técnicas de hacking enviando PRs para o repositório hacktricks e hacktricks-cloud repo.
Esses métodos foram copiados de https://securitycafe.ro/2022/09/05/mobile-pentesting-101-bypassing-biometric-authentication/
Método 1 - Quando o objeto criptográfico não é usado
A implementação de autenticação depende do callback onAuthenticationSucceded ser chamado. Os pesquisadores da F-Secure desenvolveram um script Frida que pode ser usado para burlar o CryptoObject NULL em onAuthenticationSucceeded(…). O script irá automaticamente burlar a impressão digital quando o método mencionado for chamado. Aqui está um exemplo curto que mostra a burla para a impressão digital do Android. O aplicativo completo pode ser baixado do meu 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 - Tratamento de Exceção
Este script Frida desenvolvido pela F-Secure pode ser usado para contornar o uso inseguro do objeto criptográfico. Tudo o que o script precisa fazer é chamar manualmente o onAuthenticationSucceded com um CryptoObject não autorizado (não desbloqueado pela impressão digital) armazenado no Keystore. O problema é que se o aplicativo tentar usar outro objeto de cifra, então uma exceção será lançada. Este script tentará chamar onAuthenticationSucceded e capturar a exceção javax.crypto.IllegalBlockSizeException na classe Cipher. A partir de agora, todos os objetos que o aplicativo usa serão criptografados usando esta nova chave.
frida -U -f com.st3v3nss.insecurebankingfingerprint --no-pause -l fingerprint-bypass-via-exception-handling.js
Agora, vá para a tela de impressão digital e aguarde a chamada do authenticate(). Assim que você vir isso na tela, digite bypass() no console do 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 🎥
- Você trabalha em uma empresa de segurança cibernética? Você quer ver sua empresa anunciada no HackTricks? ou você quer ter acesso à última versão do PEASS ou baixar o HackTricks em PDF? Confira os PLANOS DE ASSINATURA!
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Adquira o swag oficial do PEASS & HackTricks
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe suas técnicas de hacking enviando PRs para o repositório hacktricks e repositório hacktricks-cloud.