Mobile
Testes móveis são um verdadeiro desafio. Esperamos que este guia o ajude a começar.
Dispositivos Físicos vs Virtuais
Como regra geral, é aconselhável testar em um dispositivo físico. Embora os emuladores Android geralmente sejam bons, eles não representam 100% um dispositivo físico (pense em scanners de impressão digital/reconhecimento facial). Este guia não cobre a configuração de um dispositivo virtual (ainda).
Jailbreaking/Rooting
A primeira coisa que precisamos fazer é fazer jailbreak/root no dispositivo de teste, se ainda não foi feito. Isso permitirá que você teste o aplicativo de forma mais eficaz.
iOS
Instalar checkra1n
O checkra1n é um dos exploits de jailbreak mais consistentes, mas esteja ciente de que ele não persiste após reinicializações. Cada vez que for necessária a execução de root, o dispositivo precisará ser reiniciado e re-explorado com o checkra1n.
Atualmente, o checkra1n só suporta execução em Linux e macOS. Há uma iniciativa para criar uma interface gráfica para Windows, mas o progresso está lento. Até lá, se o seu host não for Linux, você deve usar a sua distribuição favorita de Linux live-boot e baixar o checkra1n do site oficial.
Uma vez que seu dispositivo iOS esteja conectado e o checkra1n esteja em execução, o processo é muito simples. Siga os prompts no checkra1n (ele lhe dirá tudo o que você precisa saber) e você deverá ter um iPhone com root funcionando rapidamente.
Após o nosso iPhone estar com root e ligado, você pode acessar um console root conectando-se diretamente via SSH no telefone com as credenciais root/alpine.
Instalar o servidor Frida
Para instalar o Frida, precisamos adicionar o repositório https://build.frida.re ao Cydia. Para fazer isso, basta abrir o Cydia, clicar na aba Sources, clicar em Edit no canto superior direito e depois em Add no canto superior esquerdo. Uma vez adicionado, instale o pacote Frida. O Frida deve iniciar automaticamente.
Android
No seu computador de teste, instale o adb
e fastboot
das ferramentas SDK da plataforma Android, se ainda não estiverem instalados:
Ubuntu:
Arch:
Windows:
Baixe a versão mais recente das SDK Platform-tools aqui.
Habilitar opções de desenvolvedor
Para acessar o telefone via USB e iniciar o processo de rooting, você precisará habilitar as opções de desenvolvedor e ativar a depuração USB.
Em Configurações > Sobre o telefone, role para baixo até Número da versão (alternativamente, pode ser Versão do Kernel) e toque sete vezes até aparecer uma notificação dizendo que as opções de desenvolvedor foram desbloqueadas.
Em Configurações > Opções de desenvolvedor, habilite a Depuração USB. Clique em OK no prompt e novamente em OK se aparecer outro prompt com uma impressão digital RSA.
Você pode testar se está funcionando corretamente conectando o dispositivo de teste via USB e executando:
Um número de série deve aparecer, indicando que a depuração USB está funcionando corretamente. Você pode precisar aceitar a impressão digital RSA do computador de teste se o comando falhar.
Desbloquear o bootloader
Em Configurações > Opções de desenvolvedor, habilite o Desbloqueio OEM.
Você pode precisar consultar o fabricante do seu dispositivo de teste para obter mais detalhes sobre o processo de desbloqueio, pois alguns fabricantes têm requisitos diferentes (como a necessidade de um código de desbloqueio).
Geralmente, o processo é o seguinte:
Reinicie no modo fastboot. Você pode fazer isso manualmente pressionando os botões Power e Volume Down por dez segundos. Caso contrário, você pode simplesmente executar:
Desbloqueie o bootloader com uma das seguintes variações:
Para dispositivos Motorola: Será necessário inserir códigos de desbloqueio no site da Motorola para obter uma chave única.
Para dispositivos HTC: Será necessário inserir um código de desbloqueio no site da HTC para obter um token de desbloqueio único.
Você deve receber uma mensagem OKAY no seu terminal se for bem-sucedido.
Reinicie o telefone. Faça isso manualmente pelo menu fastboot ou execute:
Instalar TWRP
O TWRP (Team Win Recovery Project) é uma recuperação personalizada usada para fazer root no seu dispositivo e substituir o firmware por uma ROM personalizada.
Procure seu dispositivo aqui e baixe a versão mais recente do TWRP.
Reinicie seu telefone no bootloader com:
Grave a imagem do TWRP no dispositivo:
Reinicie o dispositivo:
Confirme se o TWRP foi gravado corretamente:
Se tudo correu bem, você deverá estar no menu do TWRP.
Instalar Magisk
O Magisk é um conjunto de ferramentas poderoso que fornece acesso root e contorna detecções de root e verificações de integridade do sistema.
Baixe o arquivo ZIP mais recente do repositório do GitHub para o seu computador de teste.
No TWRP, acesse Advanced > ADB Sideload e deslize para iniciar o processo de sideload. Execute:
Reinicie seu telefone. Se tudo correu bem, você deverá ter o aplicativo Magisk instalado.
Finalmente, você pode verificar se o root está disponível:
Se esses comandos funcionarem, você está pronto para prosseguir.
Instalar o servidor Frida
Instalar o servidor Frida diretamente no seu telefone permite a instrumentação dinâmica (hooking em processos para realizar ações interessantes).
Descubra a arquitetura do dispositivo.
Baixe o servidor Frida mais recente para o seu dispositivo (geralmente
frida-server-VERSÃO-android-ARQUITETURA.xz
).Descompacte o arquivo:
Envie o arquivo do servidor para o seu dispositivo:
Se o Frida estiver instalado no seu computador de teste, teste se o servidor está em execução executando:
Se você obter uma lista de processos, está tudo certo.
Configuração
Ponto de Acesso Sem Fio
Com um adaptador WiFi USB conectado, use o create_ap
para criar um ponto de acesso, por exemplo:
Isso criará o ponto de acesso MeuPontoDeAcesso com a senha MinhaSenha. Uma rede sem fio será criada em wlan0
e NATada através de eth0
. Basta conectar o telefone ao ponto de acesso e verificar se você pode acessar a Internet.
Proxy do Burp Suite
Adicione um novo ouvinte de proxy vinculado ao gateway do ponto de acesso. Se o ponto de acesso foi configurado na sua máquina virtual e você está usando o Burp Suite no seu host, vincule o proxy ao interface host-only/VM NAT.
No dispositivo de teste, configure um proxy nas configurações de rede apontando para o proxy do Burp Suite. Teste se está funcionando tentando acessar http://burp.
Se for bem-sucedido, baixe o certificado CA e instale-o. Como instalar um CA personalizado em iPhones e Como instalar um CA personalizado em Android.
Após a instalação, verifique se você pode interceptar qualquer coisa enquanto estiver no navegador do dispositivo. Se puder, parabéns! Caso contrário, ou o guia não foi útil ou você perdeu algum passo.
Abra o aplicativo em escopo (se instalado) e verifique se ele funciona corretamente. Se funcionar, parabéns! Você encontrou sua primeira vulnerabilidade! Isso significa que não há pinning de certificado. Se não funcionar, parece que você precisará se esforçar mais e contornar o pinning de certificado.
Frida
Se o Frida ainda não estiver instalado, execute:
Testar o servidor Frida
No dispositivo de teste, conecte-se via SSH, localize onde você instalou o servidor Frida e execute-o em segundo plano (se ainda não estiver em execução). Você também pode usar adb shell
para executá-lo no Android.
No seu computador de teste, verifique se você consegue se conectar ao servidor Frida:
Se for bem-sucedido, uma lista de processos deve ser exibida.
Sideloading de Aplicação
Se você não está testando a versão do aplicativo atualmente disponível na Apple App Store/Google Play Store, precisará fazer o sideloading no dispositivo.
iPhone
Para instalar um arquivo IPA (mesmo que não esteja assinado), podemos usar a ferramenta muito útil criada por Karen, o appinst
. Para obter esta ferramenta, primeiro precisamos adicionar o repositório https://cydia.akemi.ai/ ao Cydia. Para fazer isso, basta abrir o Cydia, clicar na aba Sources, clicar em Edit no canto superior direito e depois em Add no canto superior esquerdo. Depois de feito isso, encontre o pacote appinst (App Installer) e instale-o. Agora, a utilidade appinst
estará disponível para uso a partir da linha de comando. Além disso, para instalar aplicativos móveis assinados incorretamente, você precisará instalar o pacote AppSync Unified do mesmo repositório.
Com uma cópia do arquivo IPA do aplicativo no seu computador de teste, execute (as credenciais devem ser root/alpine
):
Em seguida, conecte-se via SSH e instale o aplicativo:
Android
Com uma cópia do aplicativo APK no seu computador de teste, execute:
Verifique se ele está instalado e abre corretamente!
Próximos Passos
Agora você pode começar a experimentar ferramentas como:
Objection
drozer
r2flutch
E mais.
Também recomendamos dar uma olhada nos Frida Codeshares para obter alguns exemplos reais de scripts Frida.
Conclusão
Este guia cobre os passos iniciais para configurar dispositivos móveis para testes de segurança, incluindo o jailbreak/root, configuração de ambientes de teste e uso de ferramentas essenciais. Lembre-se de sempre realizar essas ações de maneira ética e com a devida autorização para evitar consequências legais.
Last updated