Notícias de dispositivos móveis, gadgets, aplicativos Android

Ignorando e desativando a fixação de SSL no Android para realizar ataques man-in-the-middle

A fixação de certificado é uma camada extra de segurança para obter proteção contra intermediários. Ele garante que apenas Autoridades de Certificação (CA) certificadas possam assinar certificados para o seu domínio, e não qualquer CA no armazenamento do seu navegador.

Os desenvolvedores de aplicativos implementam a fixação de certificados para evitar engenharia reversa, permitindo que os desenvolvedores especifiquem em qual certificado o aplicativo pode confiar. Em vez de confiar no armazenamento de certificados.

Analisando o código-fonte para fixação SSL

Procurando por strings como ‚ÄúcheckClientTrusted” ou “checkServerTrusted‚Äú, mostraria um peda√ßo de c√≥digo com fixa√ß√£o.

Se o código não estiver ofuscado, modificaremos o código para se livrar da fixação, recompilaremos e assinaremos com o APKTOOL.

Al√©m disso, voc√™ pode fazer uma an√°lise est√°tica com uma estrutura de seguran√ßa como MOBSF, se encontrar ‚ÄúArquivos de certificado/chave codificados dentro do aplicativo” ou “Keystore codificado encontrado‚ÄĚent√£o ele tem fixa√ß√£o SSL.

Leia também Lista de verificação completa de testes de penetração do Android

Ignorar fixação SSL

Para desabilitar a promessa, queremos descompilar o arquivo do aplicativo e encontrar o método vinculado para fixar o controle e remover a verificação. O objetivo final é fazer com que o cliente aceite seu próprio certificado SSL como válido.

Estamos usando um aplicativo Android em nosso cen√°rio, se voc√™ tiver o dispositivo enraizado, poder√° usar os m√≥dulos do Xposed Framework dispon√≠veis para desativar a fixa√ß√£o SSL. √Č um m√©todo muito simples e direto.

Mas a melhor maneira √© realizar uma revis√£o manual desmontando o apk. Voc√™ precisar√° localizar onde, dentro do pequeno c√≥digo-fonte, as verifica√ß√Ķes de fixa√ß√£o do certificado s√£o feitas.

$ apktool -d teste.apk

Pesquisando no c√≥digo pequeno por palavras-chave como ‚ÄúX509TrustManager‚ÄĚ, ‚Äúcert‚ÄĚ, ‚Äúpinning‚ÄĚ, para descobrir onde o login de fixa√ß√£o do certificado est√° palavras-chave como ‚ÄúX509TrustManager‚ÄĚ, ‚Äúcert‚ÄĚ, ‚Äúpinning‚ÄĚ, etc, para descobrir onde est√° o certificado a fixa√ß√£o do login √© executada.

N√≥s recomendamos:  Por que os chatbots s√£o uma solu√ß√£o ideal para uma empresa de aprendizagem de idiomas

Depois de terminar de modificar o código, é necessário compilar e renunciar ao aplicativo com um certificado de desenvolvedor. O certificado de assinatura de código aqui fornece integridade e garante que o aplicativo não seja adulterado.

$ apktool b teste/ -o exemplo.modificado.apk

Depois disso, o aplicativo precisa apenas ser reinstalado no dispositivo e testado. Uma vez instalado, o aplicativo ainda funciona, como suposto, no entanto, est√° atualmente sujeito a um ataque man-in-the-middle como resultado do certificado fixado ter sido ignorado.

Ignorar a fixação de certificados de qualquer uma dessas formas permite que você conduza efetivamente um ataque man-in-the-middle nos aplicativos que são protegidos com HTTPS e SSL, tendo a capacidade de interceptar tokens de sessão e até mesmo ver nomes de usuários e senhas em texto simples em uma ferramenta como uma suíte para arrotar ou violinista.

Mitiga√ß√£o ‚Äď Ignorar SSL

O certificado tende a expirar de acordo com o fórum CAB. Os certificados CA não serão emitidos por um período máximo de 3 anos. Portanto, você deve planejar uma atualização do aplicativo com um certificado atualizado.

Devemos implementar métodos de ofuscação para evitar que nosso código-fonte seja descompilado. Você pode enviar um aplicativo para empresas de pentesting para análise de código-fonte.

Table of Contents