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:  Onde transmitir “Mad Men” gratuitamente e legalmente

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