Quando falamos de testes em aplicativos mobile, conseguir interceptar o tráfego do app com a API / Backend é fundamental para o sucesso da exploração. Nesse post vou mostrar uma das maneiras possíveis de se fazer isso.
Configurando o proxy
No burp
Antes de tudo, é necessário se certificar que o burp está utilizando o endereço “127.0.0.1:8080”. Então abra o burp e vá em Proxy -> Proxy settings -> Proxy para confirmar essa informação.
No dispositivo
O proxy será configurado através da rede Wi-Fi do dispositivo e durante o teste algumas coisas podem acabar barrando essa comunicação, como por exemplo uma proteção presente no app ou qualquer outro problema de conexão. Quando isso acontece, o sistema operacional Android entende que aquela rede Wi-Fi não possui conexão com a internet e começa a rotear os seus pacotes através dos dados móveis, o que faz com que não consigamos mais interceptar seu tráfego, para evitar que isso aconteça é necessário desabilitar os dados móveis no aparelho.
Para isso, basta arrastar a barra superior para baixo e clicar no ícone do LTE.
Após isso é só confirmar o desligamento dos dados móveis.
Com os dados móveis desligados, vamos realizar um port forwarding para criar um túnel que redireciona todo o tráfego do dispositivo para a máquina local na porta 8080.
Para isso, basta executar o seguinte comando do adb:
adb reverse tcp:8080 tcp:8080
Após a criação do túnel, chegou a hora de configurar o proxy no aparelho.
Novamente arraste a barra superior para baixo, então clique e segure o símbolo do Wi-Fi.
Então, aparecerá as redes disponíveis para o dispositivo, novamente clique e segure na rede “AndroidWifi”.
Nas opções que irão aparecer vá em “Modify network”.
Então altere o proxy para manual e coloque as informações do burp:
Com isso já é possível visualizar o tráfego do dispositivo através do burp.
Instalando o certificado no Android
Como pode ser visto no exemplo acima, apesar de o tráfego estar sendo interceptado, não foi possível acessar o site do Google. Analisando os logs do burp é possível identificar o problema.
O erro foi causado pelo certificado, o que faz com que o cliente não consiga acessar sites que utilizem o TLS. Para resolver esse problema é necessário instalar o certificado do burp no dispositivo Android.
Para realizar o download do certificado, acesse o endereço “http://burp” do navegador da sua máquina.
O certificado baixado possui o nome “cacert.der”, para realizar a instalação no dispositivo, é necessário alterar a sua extensão para “.cer”.
mv cacert.der cacert.cer
Após isso, envie o arquivo do certificado para o dispositivo Android.
adb push cacert.cer /sdcard/Download/cacert.cer
Agora, no dispositivo vá em “Settings”.
Depois em “Security & location”.
Depois em “Encryption & credentials”.
E por fim em “Install from SD card”.
Ao abrir essa opção, vá no menu presente no canto superior esquerdo e em seguida abra a pasta de Downloads.
Pronto, ai está o certificado.
Agora basta clicar no arquivo, escolher o nome do certificado e realizar a instalação.
** Nesse momento, pode ser que o aparelho peça para você configurar uma senha para o dispositivo, esse é um mecanismo de segurança padrão do Android e basta seguir o passo a passo.
Pronto, agora já é possível acessar os sites utilizando o https.