Como interceptar a comunicação de um aplicativo sem Root - Android
Em alguns cenários, não temos um celular com acesso "root" para interceptar a comunicação do aplicativo com um proxy. Um exemplo real é o Samsung SM-J600GT onde não foi possível desabilitar o RMM no estado "prenormal", e portanto o processo de "root" não pôde ser feito.
Ao pesquisar, encontrei o método que vou descrever abaixo, onde é possível interceptar a comunicação do aplicativo sem o acesso "root" no aparelho. Isso é possível ao adicionar (ou modificar) no arquivo network_security_config localizado no diretório /res/xml, a configuração <trust-anchors> que é usada para definir quais CAs (Autoridades Certificadoras) são confiáveis para o aplicativo nas conexões usando o protocolo HTTPS.
Na estrutura da tag <trust-anchors>, os elementos <certificates src="system"> e <certificates src="user"> apontam para os certificados instalados no celular. Logo, para fazer o aplicativo confiar em CAs que não estão na lista padrão do Android, usamos a configuração abaixo:
Pre-Requisitos:
Arquivo .apk do aplicativo que será testado
Apktool instalado a partir do repositório oficial - apktool.org
Keytool - essa ferramenta é parte do JDK - Java Development Kit e para instalar basta instalar o JDK
## Instalação geral
apt update
apt install default-jdk
## Instalação a partir de uma versão específica do JDK
apt install openjdk-11-jdk (modifique para a versão que deseja)
## Confirma a instalação
keytool -help
Apksigner - está incluído no "Command Line Tools" do Android Studio SDK
Com essas ferramentas o processo pode ser iniciado.
Extrair os arquivos do aplicativo com Apktool
Nesse artigo vou usar o aplicativo Twitter Lite disponível no repositório Apkpure
apktool d [nome-do-arquivo].apk
android:networkSecuriyConfig="@xml/[nome-do-arquivo]"
No Twitter Lite, a referência não existe e, portanto, adicionei conforme podemos ver na imagem abaixo.
Depois dessa configuração, o arquivo .apk está pronto para o "build" com o comando:apktool b [nome-do-diretorio] -o [nome-do-arquivo].apk
Antes de instalar o aplicativo modificado no telefone, é necessário assiná-lo.Gerar o par de chaves e o certificado autoassinado com a Keytool
O par de chaves e o certificado que vão assinar o aplicativo são armazenados na keystore.
keytool -genkey -v -keystore [nome].keystore -keyalg RSA -keysize 2048 -validity 1000 -alias [nome]
Em seguida, assinamos o aplicativo usando a ferramenta apksigner, com o comando:apksigner sign --ks-key-alias [nome] --ks [nome].keystore [nome].apk
Dessa forma, conseguimos interceptar a comunicação do aplicativo sem ter acesso "root" no celular, conforme mostra a imagem abaixo.
Será criado um arquivo [nome].objection.apk que possui o "gadget" do Frida e deve ser instalado no celular. Após instalar o aplicativo modificado, execute o Objection para iniciar o aplicativo e interceptar a comunicação. Use o comando abaixo:
No exemplo acima, o processo foi realizado usando o aplicativo Twitter Lite. Usei esse mesmo método no aplicativo Wish também disponível no repositório Apkpure.
Comentários
Postar um comentário