Configuração do Burp Suite para iOS

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporte o HackTricks

Installing the Burp Certificate on iOS Devices

Para análise segura do tráfego web e SSL pinning em dispositivos iOS, o Burp Suite pode ser utilizado tanto através do Burp Mobile Assistant quanto via configuração manual. Abaixo segue um guia resumido para ambos os métodos:

Automated Installation with Burp Mobile Assistant

O Burp Mobile Assistant simplifica o processo de instalação do Burp Certificate, configuração do proxy e SSL Pinning. Orientações detalhadas podem ser encontradas na documentação oficial da PortSwigger.

Manual Installation Steps

  1. Proxy Configuration: Start by setting Burp as the proxy under the iPhone’s Wi-Fi settings.
  2. Certificate Download: Navigate to http://burp on your device’s browser to download the certificate.
  3. Certificate Installation: Install the downloaded profile via Settings > General > VPN & Device Management, then enable trust for the PortSwigger CA under Certificate Trust Settings.

Configuring an Interception Proxy

A configuração permite a análise do tráfego entre o dispositivo iOS e a internet através do Burp, exigindo uma rede Wi‑Fi que suporte tráfego client-to-client. Se isso não for possível, uma conexão USB via usbmuxd pode servir como alternativa. Os tutoriais da PortSwigger fornecem instruções detalhadas sobre device configuration e certificate installation.

Transparent Proxying via OpenVPN + iptables REDIRECT

If the target app ignores the configured HTTP proxy, an alternative is to place the iOS device behind a researcher-controlled VPN gateway and transparently redirect the traffic into Burp or mitmproxy.

This is not a certificate pinning bypass by itself. It only solves the network plumbing so the device traffic reaches your interception proxy without configuring a per-app or per-device proxy. If the app performs real certificate pinning, HTTPS decryption will still fail until pinning is bypassed separately.

Fluxo típico:

  1. Run an OpenVPN server on a Linux host and connect the iOS device so its traffic arrives on tun0.
  2. Bind Burp or mitmproxy to the VPN listener IP on port 8080.
  3. Enable invisible proxying in Burp because redirected clients are not proxy-aware and will talk as if they were connecting directly to the destination.
  4. Redirect TCP 80 and 443 arriving on tun0 to the local proxy listener.
  5. Add a POSTROUTING MASQUERADE rule on the egress interface so proxied traffic can leave the gateway and replies return through the VPN.
  6. Install and trust the interception proxy CA on the iOS device so apps that rely only on the system trust store accept the generated leaf certificates.

Example rules:

# Redirect VPN client traffic into the local interception proxy
iptables -t nat -A PREROUTING -i tun0 -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -i tun0 -p tcp --dport 443 -j REDIRECT --to-ports 8080

# Allow VPN client traffic to egress back to the Internet
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Notas:

  • Isto é útil quando você quer forced interception sem alterar o app alvo ou configurar um proxy explícito nas configurações de Wi-Fi do iOS.
  • Redirecionar 443 para Burp funciona apenas para apps que confiam na CA instalada ou para apps onde TLS validation / pinning já foi contornado.
  • O script de exemplo no repositório upstream pega um IP e acrescenta /24 na regra POSTROUTING. Na prática, use a actual VPN client subnet em vez de presumir um /24 fixo.
  • Se você usar Burp, habilite Proxy –> Options –> Edit listener –> Request handling –> Support invisible proxying.
  • mitmproxy pode ser usado na mesma configuração se estiver vinculado ao IP do listener VPN e os requisitos de transparent-mode forem satisfeitos.

Configuração Avançada para Jailbroken Devices

Para usuários com dispositivos jailbroken, SSH sobre USB (via iproxy) oferece um método para rotear o tráfego diretamente pelo Burp:

  1. Estabelecer Conexão SSH: Use iproxy para encaminhar SSH para localhost, permitindo a conexão do dispositivo iOS ao computador que está executando o Burp.
iproxy 2222 22
  1. Encaminhamento de Porta Remota: Encaminhe a porta 8080 do dispositivo iOS para o localhost do computador para permitir acesso direto à interface do Burp.
ssh -R 8080:localhost:8080 root@localhost -p 2222
  1. Configuração de Proxy Global: Por fim, configure as configurações de Wi-Fi do dispositivo iOS para usar um proxy manual, direcionando todo o tráfego web através do Burp.

Monitoramento Completo de Rede/Sniffing

O monitoramento de tráfego não-HTTP do dispositivo pode ser conduzido de forma eficiente usando o Wireshark, uma ferramenta capaz de capturar todas as formas de tráfego de dados. Para dispositivos iOS, o monitoramento de tráfego em tempo real é facilitado pela criação de uma Remote Virtual Interface, um processo detalhado em this Stack Overflow post. Antes de começar, a instalação do Wireshark em um sistema macOS é um pré-requisito.

O procedimento envolve vários passos principais:

  1. Inicie uma conexão entre o dispositivo iOS e o host macOS via USB.
  2. Obtenha o UDID do dispositivo iOS, um passo necessário para o monitoramento de tráfego. Isso pode ser feito executando um comando no macOS Terminal:
$ rvictl -s <UDID>
Starting device <UDID> [SUCCEEDED] with interface rvi0
  1. Após a identificação do UDID, abra o Wireshark e selecione a interface “rvi0” para captura de dados.
  2. Para monitoramento direcionado, como capturar tráfego HTTP relacionado a um IP específico, podem ser usados os Capture Filters do Wireshark:

Burp Cert Installation in Simulator

  • Export Burp Certificate

In Proxy –> Options –> Export CA certificate –> Certificate in DER format

  • Arrastar e soltar o certificado dentro do Emulador
  • Dentro do emulador vá para Settings –> General –> Profile –> PortSwigger CA, e verifique o certificado
  • Dentro do emulador vá para Settings –> General –> About –> Certificate Trust Settings, e ative o PortSwigger CA

Parabéns, você configurou com sucesso o Certificado CA do Burp no iOS simulator

Tip

O iOS simulator usará as configurações de proxy do MacOS.

MacOS Proxy Configuration

Passos para configurar o Burp como proxy:

  • Vá para System Preferences –> Network –> Advanced
  • Na aba Proxies marque Web Proxy (HTTP) e Secure Web Proxy (HTTPS)
  • Em ambas as opções configure 127.0.0.1:8080

  • Clique em Ok e em Apply

References

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporte o HackTricks