Captura no iOS
Capturar em um iPhone / iPad sempre foi uma dor de cabeça. As ferramentas comuns normalmente exigem um jailbreak ou só conseguem configurar um proxy (o que ainda significa instalar um perfil e um certificado, e os apps com fixação de certificado continuam não podendo ser capturados). A captura no iOS oferece três métodos sem jailbreak, desde “ver as requisições do sistema com configuração zero” até “tráfego completo do dispositivo inteiro” e “texto claro completo de um único app”. Um deles vai alcançar seu alvo.
1. Preparação comum
Seção intitulada “1. Preparação comum”- Conecte o dispositivo: use um cabo de dados para conectar o iPhone / iPad ao computador e depois toque em Confiar no dispositivo.
- Sem necessidade de jailbreak: os três métodos são para dispositivos sem jailbreak.
- Compatível com sistemas novos: as versões mais recentes do iOS (incluindo o iOS 17 e superior) migraram para um novo canal de dispositivo, e a conexão e a captura continuam funcionando aqui.
- Se o mesmo dispositivo também aparecer na rede, escolha a entrada USB / rede conforme o caso.
2. Como escolher entre os três métodos
Seção intitulada “2. Como escolher entre os três métodos”| Sua necessidade | Qual usar | O que você pode ver | Precisa instalar certificado / reassinar? |
|---|---|---|---|
| Ver rapidamente quais requisições HTTPS o sistema enviou (endereço / status / cabeçalhos) | Captura em nível de sistema | Funciona também para apps comuns (apps comuns não conseguem ver o corpo) | Nenhum dos dois; apenas um perfil de diagnóstico |
| Todo o tráfego do dispositivo inteiro (incluindo não HTTP, handshake / SNI) | Captura na NIC | Dados completos (texto cifrado por padrão, descriptografável sob demanda) | Não é necessário para ver o texto cifrado; reassinatura só é necessária para descriptografar um app específico |
| As trocas em texto claro completas de um app específico (incluindo o corpo) | Captura na camada de aplicação | Texto claro completo de um único app | O app alvo precisa ser reassinado com um certificado de desenvolvimento |
Nenhum dos três exige jailbreak. A captura em nível de sistema é especialmente sem complicação: mesmo para apps comuns e apps da App Store você consegue ver quais endereços HTTPS eles requisitam, algo que as ferramentas comuns não conseguem fazer em um iPhone sem jailbreak.
3. Captura em nível de sistema: a mais sem complicação, funciona também para apps comuns
Seção intitulada “3. Captura em nível de sistema: a mais sem complicação, funciona também para apps comuns”Quer ver rapidamente quais requisições HTTPS este iPhone enviou, sem instalar um certificado, configurar um proxy ou lidar com a fixação de certificado? Este é o método mais sem complicação.
- Lista as transações HTTP(S) que o sistema envia: método da requisição, URL completa (o endereço fica em texto claro mesmo para HTTPS), código de status, cabeçalhos de requisição e cabeçalhos de resposta.
- Nenhum certificado CA para instalar, nenhum proxy para configurar, nenhuma fixação de certificado com que lidar.
- Quanto você consegue ver é limitado pelos próprios logs de diagnóstico do sistema:
- Apps comuns e apps da App Store: normalmente você só consegue ver o endereço da requisição e os cabeçalhos da requisição.
- Apps assinados com um certificado de desenvolvimento: você consegue ver o corpo completo de requisição / resposta.
Pré-requisito: você precisa instalar o perfil de diagnóstico do dispositivo correspondente (uma vez é suficiente).
4. Captura na NIC: veja tudo neste dispositivo
Seção intitulada “4. Captura na NIC: veja tudo neste dispositivo”Capture todo o tráfego de rede do dispositivo, independentemente do app ou do protocolo, incluindo QUIC não HTTP e protocolos personalizados.
- O que você vê por padrão: por padrão são pacotes em texto cifrado + metadados (endereço de destino, porta e o nome de host SNI do handshake TLS), o suficiente para ver claramente “a quais lugares este dispositivo se conectou e com qual protocolo”.
- Quer texto claro: use “Descriptografar este programa” no app alvo para descriptografar seu texto claro; isso exige que o app tenha sido reassinado com um certificado de desenvolvimento.
5. Captura na camada de aplicação: texto claro completo de um único app
Seção intitulada “5. Captura na camada de aplicação: texto claro completo de um único app”Voltada a um único app, este método obtém o texto claro completo (incluindo o corpo) que ele envia e recebe. A fixação de certificado não consegue detê-la, porque ela lê de dentro do app.
- Reiniciar o programa alvo: você pode fechar e reabrir o app primeiro para capturar também o tráfego do início da execução.
- Ative o “tráfego de socket” como alternativa quando o texto claro não puder ser decodificado: para apps que fazem link estático / usam uma biblioteca personalizada e dos quais os métodos usuais não conseguem obter texto claro, ative este interruptor para chegar aos dados por um caminho de nível mais baixo.
- Apenas os apps reassinados com um certificado de desenvolvimento ficam selecionáveis na lista de apps; os demais ficam esmaecidos.
Pré-requisito: o app alvo precisa ser reassinado com um certificado de desenvolvimento; apps da App Store e apps de sistema precisam ser reassinados primeiro para poderem ser usados como alvo.
6. Você também pode usar a captura por proxy
Seção intitulada “6. Você também pode usar a captura por proxy”Além dos três métodos acima, um iPhone / iPad também pode usar a captura por proxy: aponte o proxy Wi-Fi do dispositivo para esta máquina, instale o certificado raiz, e você poderá capturar texto claro HTTPS exatamente como em um computador e usar o conjunto completo de recursos de reescrita e reenvio. Serve para depurar apps que passam pelo proxy do sistema, ou para cenários que precisam de reescrita / reenvio baseados em regras de requisições móveis.
- Instalar o certificado: escaneie o QR code no telefone para instalação com um toque → Gerenciamento e instalação de certificados
- Recursos de captura e reescrita: → Captura por proxy
7. Quando usar a captura no iOS
Seção intitulada “7. Quando usar a captura no iOS”- Para investigar rapidamente “quais endpoints um app requisitou e o que eles retornaram”, a captura em nível de sistema é a mais fácil, e até apps comuns funcionam.
- Para ver todo o tráfego do dispositivo inteiro (incluindo não HTTP), use a captura na NIC.
- Se você puder reassinar o app alvo e quiser o corpo completo em texto claro, use a captura na camada de aplicação.
- Para visualizar e editar ao mesmo tempo (reescrever / reenviar requisições móveis), use a captura por proxy.
Voltar para Captura por proxy · Relacionados: Visualização e decodificação de dados · Gerenciamento e instalação de certificados