7.4 KiB
Bypassar Autenticação Biométrica (Android)
Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
- Você trabalha em uma empresa de cibersegurança? Gostaria de ver sua empresa anunciada no HackTricks? ou gostaria de 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 PEASS & HackTricks
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para o repositório hacktricks e repositório hacktricks-cloud.
Método 1 – Bypass sem Uso de Objeto Criptográfico
O foco aqui está no callback onAuthenticationSucceeded, que é crucial no processo de autenticação. Pesquisadores da WithSecure desenvolveram um script Frida, permitindo o bypass do CryptoObject NULL em onAuthenticationSucceeded(...). O script força um bypass automático da autenticação por impressão digital ao ser invocado pelo método. Abaixo está um trecho simplificado demonstrando o bypass em um contexto de Impressão Digital Android, com a aplicação completa disponível no 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 executar o script Frida:
frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-bypass.js
Método 2 - Abordagem de Manipulação de Exceções
Outro script Frida da WithSecure aborda a bypassagem do uso inseguro do objeto de criptografia. O script invoca onAuthenticationSucceeded com um CryptoObject que não foi autorizado por uma impressão digital. Se a aplicação tentar usar um objeto de cifra diferente, isso irá desencadear uma exceção. O script se prepara para invocar onAuthenticationSucceeded e lidar com a javax.crypto.IllegalBlockSizeException na classe Cipher, garantindo que objetos subsequentes usados pela aplicação sejam criptografados com a nova chave.
Comando para executar o script Frida:
frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-bypass-via-exception-handling.js
Ao chegar na tela de impressão digital e a inicialização de authenticate()
, digite bypass()
no console do Frida para ativar o 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 - Frameworks de Instrumentação
Frameworks de instrumentação como Xposed ou Frida podem ser usados para se conectar aos métodos da aplicação em tempo de execução. Para autenticação por impressão digital, esses frameworks podem:
- Simular os Callbacks de Autenticação: Ao se conectar aos métodos
onAuthenticationSucceeded
,onAuthenticationFailed
ouonAuthenticationError
doBiometricPrompt.AuthenticationCallback
, é possível controlar o resultado do processo de autenticação por impressão digital. - Burlar o SSL Pinning: Isso permite que um atacante intercepte e modifique o tráfego entre o cliente e o servidor, potencialmente alterando o processo de autenticação ou roubando dados sensíveis.
Comando de exemplo para Frida:
frida -U -l script-to-bypass-authentication.js --no-pause -f com.generic.in
Método 4 - Engenharia Reversa e Modificação de Código
Ferramentas de engenharia reversa como APKTool
, dex2jar
e JD-GUI
podem ser usadas para descompilar um aplicativo Android, ler seu código-fonte e entender seu mecanismo de autenticação. Os passos geralmente incluem:
- Descompilar o APK: Converter o arquivo APK para um formato mais legível para humanos (como código Java).
- Analisar o Código: Procure a implementação da autenticação por impressão digital e identifique possíveis vulnerabilidades (como mecanismos de fallback ou verificações de validação inadequadas).
- Recompilar o APK: Após modificar o código para contornar a autenticação por impressão digital, o aplicativo é recompilado, assinado e instalado no dispositivo para testes.
Método 5 - Usando Ferramentas de Autenticação Personalizadas
Existem ferramentas e scripts especializados projetados para testar e contornar mecanismos de autenticação. Por exemplo:
- Módulos MAGISK: MAGISK é uma ferramenta para Android que permite aos usuários fazer root em seus dispositivos e adicionar módulos que podem modificar ou falsificar informações em nível de hardware, incluindo impressões digitais.
- Scripts Personalizados: Scripts podem ser escritos para interagir com a Android Debug Bridge (ADB) ou diretamente com o backend do aplicativo para simular ou contornar a autenticação por impressão digital.
Referências
Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
- Você trabalha em uma empresa de cibersegurança? Gostaria de ver sua empresa anunciada no HackTricks? ou gostaria de 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 PEASS & HackTricks
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para o repositório hacktricks e repositório hacktricks-cloud.