Configurazione di Burp Suite per iOS

Tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks

Installazione del certificato Burp su dispositivi iOS

Per l’analisi del traffico web sicuro e per trattare SSL pinning su dispositivi iOS, è possibile utilizzare Burp Suite tramite il Burp Mobile Assistant o tramite configurazione manuale. Di seguito una guida riassuntiva per entrambi i metodi:

Installazione automatica con Burp Mobile Assistant

Il Burp Mobile Assistant semplifica l’installazione del certificato Burp, la configurazione del proxy e lo SSL Pinning. Indicazioni dettagliate sono disponibili nella documentazione ufficiale di PortSwigger.

Passaggi per l’installazione manuale

  1. Configurazione del proxy: Inizia impostando Burp come proxy nelle impostazioni Wi‑Fi dell’iPhone.
  2. Download del certificato: Vai su http://burp nel browser del dispositivo per scaricare il certificato.
  3. Installazione del certificato: Installa il profilo scaricato tramite Impostazioni > Generali > VPN e gestione dispositivo, quindi abilita la fiducia per la CA di PortSwigger in Impostazioni di fiducia dei certificati.

Configurazione di un proxy di intercettazione

La configurazione permette l’analisi del traffico tra il dispositivo iOS e Internet tramite Burp, richiedendo una rete Wi‑Fi che supporti il traffico client‑to‑client. Se non disponibile, una connessione USB tramite usbmuxd può essere usata come alternativa. I tutorial di PortSwigger forniscono istruzioni dettagliate sulla configurazione del dispositivo e sull’installazione del certificato.

Proxy trasparente tramite OpenVPN + iptables REDIRECT

Se l’app target ignora il proxy HTTP configurato, un’alternativa è mettere il dispositivo iOS dietro un researcher-controlled VPN gateway e reindirizzare trasparentemente il traffico verso Burp o mitmproxy.

Questo non è un bypass del certificate pinning di per sé. Risolve solo il plumbing di rete in modo che il traffico del dispositivo raggiunga il tuo interception proxy senza dover configurare un proxy per singola app o per il dispositivo. Se l’app effettua un vero certificate pinning, la decrittazione HTTPS fallirà comunque finché il pinning non viene bypassato separatamente.

Flusso tipico:

  1. Esegui un server OpenVPN su un host Linux e connetti il dispositivo iOS in modo che il suo traffico arrivi su tun0.
  2. Associa Burp o mitmproxy all’IP listener della VPN sulla porta 8080.
  3. Abilita invisible proxying in Burp perché i client reindirizzati non sono proxy‑aware e si comporteranno come se si connettessero direttamente alla destinazione.
  4. Reindirizza le connessioni TCP 80 e 443 che arrivano su tun0 verso il listener locale del proxy.
  5. Aggiungi una regola POSTROUTING MASQUERADE sull’interfaccia di uscita in modo che il traffico proxyato possa lasciare il gateway e le risposte ritornino attraverso la VPN.
  6. Installa e attiva la fiducia per la CA dell’interception proxy sul dispositivo iOS in modo che le app che si affidano solo allo system trust store accettino i certificati leaf generati.

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

Note:

  • Questo è utile quando vuoi intercettazione forzata senza modificare l’app target o configurare un proxy esplicito nelle impostazioni Wi‑Fi di iOS.
  • Reindirizzare 443 verso Burp funziona solo per le app che si fidano della CA installata o per app dove la validazione/pinning TLS è già stata aggirata.
  • Lo script di esempio nel repository upstream prende un IP e aggiunge /24 nella regola POSTROUTING. In pratica, usa la subnet reale del client VPN invece di presumere un /24 fisso.
  • Se usi Burp, abilita Proxy –> Options –> Edit listener –> Request handling –> Support invisible proxying.
  • mitmproxy può essere usato nella stessa configurazione se è legato all’IP del listener VPN e i requisiti della modalità trasparente sono soddisfatti.

Configurazione avanzata per dispositivi jailbroken

Per gli utenti con dispositivi jailbroken, SSH su USB (via iproxy) offre un metodo per instradare il traffico direttamente attraverso Burp:

  1. Stabilisci la connessione SSH: Usa iproxy per inoltrare SSH a localhost, permettendo la connessione dal dispositivo iOS al computer che esegue Burp.
iproxy 2222 22
  1. Port forwarding remoto: Inoltra la porta 8080 del dispositivo iOS al localhost del computer per abilitare l’accesso diretto all’interfaccia di Burp.
ssh -R 8080:localhost:8080 root@localhost -p 2222
  1. Impostazione proxy globale: Infine, configura le impostazioni Wi‑Fi dell’iOS per usare un proxy manuale, indirizzando tutto il traffico web attraverso Burp.

Monitoraggio/Sniffing di rete completo

Il monitoraggio del traffico non-HTTP del dispositivo può essere eseguito in modo efficiente usando Wireshark, uno strumento capace di catturare tutte le forme di traffico dati. Per i dispositivi iOS, il monitoraggio in tempo reale del traffico è facilitato dalla creazione di una Remote Virtual Interface, un processo dettagliato in this Stack Overflow post. Prima di iniziare, è necessario installare Wireshark su un sistema macOS.

La procedura comporta diversi passaggi chiave:

  1. Avvia una connessione tra il dispositivo iOS e l’host macOS via USB.
  2. Accertati del UDID del dispositivo iOS, un passaggio necessario per il monitoraggio del traffico. Questo può essere fatto eseguendo un comando nel Terminale macOS:
$ rvictl -s <UDID>
Starting device <UDID> [SUCCEEDED] with interface rvi0
  1. Dopo l’identificazione dell’UDID, aprire Wireshark e selezionare l’interfaccia “rvi0” per la cattura dei dati.
  2. Per il monitoraggio mirato, ad esempio per catturare il traffico HTTP relativo a un indirizzo IP specifico, è possibile utilizzare i Capture Filters di Wireshark:

Installazione del certificato Burp nel simulatore

  • Export Burp Certificate

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

  • Trascina e rilascia il certificato all’interno dell’emulatore
  • All’interno dell’emulatore vai su Settings –> General –> Profile –> PortSwigger CA, e verifica il certificato
  • All’interno dell’emulatore vai su Settings –> General –> About –> Certificate Trust Settings, e abilita PortSwigger CA

Congratulazioni, hai configurato con successo il certificato CA di Burp nel simulatore iOS

Tip

Il simulatore iOS utilizzerà le configurazioni proxy di MacOS.

Configurazione proxy MacOS

Passaggi per configurare Burp come proxy:

  • Vai su System Preferences –> Network –> Advanced
  • Nella scheda Proxies seleziona Web Proxy (HTTP) e Secure Web Proxy (HTTPS)
  • In entrambe le opzioni configura 127.0.0.1:8080

  • Clicca su Ok e poi su Apply

Riferimenti

Tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks