Charles Proxy no Windows — do zero ao primeiro request interceptado
Configure um PC Windows como proxy auxiliar para o seu Termux / celular Android. Ao final, todo tráfego HTTP e HTTPS do device passará pelo Charles, pronto para análise no fluxo do prompt Engenheiro de Tráfego HTTP + Charles Proxy.
Pré-requisitos
- PC Windows 10/11 (x64), 4 GB RAM mínimo.
- Java não é necessário — o instalador do Charles 4.x/5.x traz JRE embutido.
- PC e celular na mesma rede Wi-Fi (mesma sub-rede, ex.: 192.168.0.x).
- Permissão de administrador no Windows para liberar a porta no Firewall.
Baixar e instalar o Charles
Baixe o instalador oficial (32 dias de trial totalmente funcional):
$ https://www.charlesproxy.com/download/latest-release/Execute o charles-proxy-*-win64.msi, aceite os padrões e abra o app.
Descobrir o IP do PC na rede
No Prompt de Comando (Win+R → cmd):
$ ipconfig | findstr /I IPv4Anote o IPv4 da interface Wi-Fi (algo como 192.168.0.10). Esse é o endereço que o celular vai usar como proxy.
Liberar a porta 8888 no Firewall do Windows
Abra PowerShell como Administrador e cole:
$ New-NetFirewallRule -DisplayName "Charles Proxy 8888" -Direction Inbound -Protocol TCP -LocalPort 8888 -Action AllowHabilitar o proxy no Charles
No Charles, vá em Proxy → Proxy Settings e confirme:
- HTTP Proxy Port: 8888
- Marque Enable transparent HTTP proxying
- Aba SOCKS: deixe desmarcado
Depois, em Proxy → Access Control Settings, adicione a faixa da sua rede:
$ 192.168.0.0/16Configurar o proxy no Android / Termux
Android (Wi-Fi manual):
- Configurações → Wi-Fi → mantenha pressionada a rede → Modificar → Avançado
- Proxy: Manual
- Nome do host:
IP-DO-PC(ex.: 192.168.0.10) - Porta: 8888
Termux (variáveis para curl/wget/pip):
$ export http_proxy="http://192.168.0.10:8888"
export https_proxy="http://192.168.0.10:8888"
export ALL_PROXY="http://192.168.0.10:8888"$ source ~/.bashrcInstalar o certificado root para HTTPS
Sem isso você só vê CONNECT ... criptografado. No Charles:
Help → SSL Proxying → Install Charles Root Certificate on a Mobile Device or Remote Browser
Ele mostra um endereço: chls.pro/ssl. No celular:
- Abra o navegador → acesse
chls.pro/ssl - Baixe o arquivo
.pem - Configurações → Segurança → Criptografia → Instalar certificado → CA
- Selecione o arquivo baixado e nomeie como Charles
network_security_config.xml. Para apps de terceiros, você precisa de root + Magisk module MoveCertificate ou usar Frida para bypassar o SSL pinning.Habilitar SSL Proxying para os domínios alvo
Proxy → SSL Proxying Settings → Add:
$ *$ 443Para produção, restrinja ao domínio alvo (ex.: api.exemplo.com) para reduzir ruído.
Validar o setup
No celular, abra o navegador e acesse:
$ https://httpbin.org/getNo Charles, o request deve aparecer na aba Structure ou Sequence em texto claro, com Host, Headers e Response JSON legíveis.
Troubleshooting rápido
- Connection refused → Firewall bloqueando a 8888 (volte ao passo 4).
- ERR_TUNNEL_CONNECTION_FAILED → Access Control sem a faixa da rede (passo 5).
- Cert inválido no app → SSL pinning ativo. Use Frida script frida-multiple-unpinning.
- Só vejo CONNECT → cert não instalado como CA (passo 7).
- Celular sem internet → PC hibernou ou trocou de IP. Fixe IP estático no roteador.
Próximos passos
- → Copilotos de IA — use o prompt de Charles + HTTP
- → Planos operacionais — pentest web guiado
- → Estudos avançados — antifraude, 3DS, IA local
