Inspeccionar tráfego de rede no Android

Como desenvolvedor Android, eu quero inspecionar o tráfego de rede no meu dispositivo Android. Com seus próprios aplicativos, na verdade, existem muitas ferramentas que ajudam a depurar o tráfego HTTP(s). No entanto, como você pode monitorar outros vários aplicativos, como por exemplo: Youtube, Twitter, etc.?

Este artigo irá ajudá-lo a fazê-lo usando a ferramenta mitmproxy.

Em suma, o mitmproxy é um proxy interativo man-in-the-middle para HTTP e HTTPS com uma interface de console, e mais importante, é gratuito!

Você pode ler este documento para entender como ele funciona.

Prerequisites

  • Mitmproxy tool
  • Android Emulator with root permission

Important Note: Quando você criar o emulador, você deve escolher “(Google APIs)” no Target (android version), não escolha “(Google Play)” ou você não será capaz de obter acesso adb root.

Idea

Idealmente, instalamos o certificado mitmproxy CA manualmente como um CA adicionado pelo usuário e feito!

Felizmente, desde o Android 7, os aplicativos ignoram os CAs adicionados pelo usuário, a menos que estejam configurados para usá-los. E a maioria dos aplicativos não optam explicitamente pelo uso de certificados de usuário. Então, precisamos colocar nosso certificado mitmproxy CA na loja de certificados do sistema como uma CA confiável.

Agora vamos começar!

>

Criar certificado mitmproxy

  • Instalar mitmproxy
brew install mitmproxy
  • Gerar certificado
mitmproxy

Renome certificado

  • Entrar sua pasta de certificados
cd ~/.mitmproxy/
    >

  • Certificados de CA no Android são armazenados pelo nome de seu hash, com um ‘0’ como extensão. Agora gere o hash do seu certificado
openssl x509 -inform PEM -subject_hash_old -in mitmproxy-ca-cert.cer | head -1
  • Por exemplo, a saída é hash_value.Podemos agora copiar mitmproxy-ca-cert.cer para hash_value.0 e o nosso certificado de sistema está pronto a usar
  • >

>>574747>>

Inserir certificado no sistema certificado armazenar

>

    >

  • Enter pasta do emulador dentro do SDK do Android
cd .../Android/SDK/emulator/
    >

  • Receba uma lista dos seus AVDs com emulator -list-avds
./emulator -list-avds
  • Inicie o seu emulador androide com -writable-system opção em ordem para escrever para/system
./emulator -avd <avd_name_here> -writable-system
  • Restart adb como raiz
adb root
  • Remontar a partição do sistema como escrevível
adb shell "mount -o rw,remount /"
  • Push your certificado para o sistema armazenar certificado e definir permissões de arquivo
adb push ~/.mitmproxy/hash_value.0 /system/etc/security/cacerts
adb shell "chmod 664 /system/etc/security/cacerts/hash_value.0"
  • Reboot seu emulador
adb reboot

Agora instalamos o certificado CA no Emulador.

>

Configurar Proxy no Emulador

  • Configurações do Emulador Aberto, adicionar proxy manual com hostname: 127.0.0.1 e porta 8080

>>

Lançamento da ferramenta e veja a magia!

Pode iniciar qualquer uma das três ferramentas do terminal:

  • mitmproxy -> dá-lhe uma TUI interactiva
  • mitmdump -> dá-lhe uma saída de terminal simples e simples
  • mitmweb -> dá-lhe uma GUI baseada no browser

Por exemplo, eu abro a aplicação Youtube e monitorizo o tráfego como abaixo.

  • Executar mitmproxy

  • Executar mitmweb para ver os detalhes da API

Voila!

Deixe um comentário