Modo ottimale per catturare il traffico HTTP (S) su applicazioni iOS ignare al proxy

3

Sto cercando di catturare il traffico HTTP (S) da un'applicazione Xamarin iOS proxy-inconsapevole. Gli strumenti attualmente disponibili sono un Mac con Linux Mint VM, strumenti per sviluppatori Xcode e iOS, Burp Suite Community Edition, Charles Proxy e Wireshark.

Strategie

Ho testato le seguenti strategie con vari gradi di successo (ma mai pieno successo):

Burp Suite e Charles Proxy

Impostazione: Burp Suite / Charles Proxy in esecuzione su un Mac, con il certificato CA del proxy installato sul dispositivo iOS. Il dispositivo iOS è configurato per utilizzare un proxy HTTP.

Problema: intercetta solo alcune richieste non eseguite dall'API HttpClient nativa di Xamarin, come Google Analytics, che non è utile per analizzare l'API di interesse.

Wireshark

Impostazione: dispositivo iOS collegato tramite cavo USB al Mac, realizzato un'interfaccia di rete sul Mac per questa guida in modo da catturare i pacchetti direttamente dal dispositivo iOS lasciando che Wireshark legga da quella interfaccia di rete.

Problema: tutte le richieste sono HTTPS e non possono essere decodificate.

Suite VPN e Burp

Impostazione: creando una VPN a cui si connette il dispositivo iOS, tutto il traffico verrà instradato attraverso tale VPN e in Burp Suite. La VPN è configurata su una VM Linux Mint con la sua scheda di rete collegata alla scheda Wi-Fi del mio Mac.

Problema: ho parzialmente seguito un tutorial che descrive una VPN PPTP con Burp Suite, ma iOS 10 e versioni successive hanno abbandonato il supporto per PPTP. I tentativi di replica con OpenVPN hanno prodotto risultati insoddisfacenti (un altro post su ServerFault qui ).

Domanda del giorno

Come si fa a intercettare in modo efficace e (si spera relativamente facilmente) il traffico HTTP (S) da un'app per dispositivi mobili iOS che non rispetta le impostazioni del proxy di sistema?

    
posta Pan Ziyue 29.07.2018 - 12:21
fonte

1 risposta

2

Questa è stata una svolta piuttosto interessante degli eventi, a quanto pare, il problema con il metodo VPN / Burp Suite riguardava la configurazione del proxy invisibile di Burp Suite (in cui trascuravo dopo aver risolto alcuni problemi) come risposta nel Domanda ServerFault che ho postato in precedenza . Per contribuire alla comunità, ecco un tutorial su come MITM un'app per iOS non-proxy proxy 10!

Guida su MITM'in un'app per iOS non consapevole del proxy per iOS 10 e versioni successive

Configurazione della VM

Configura una VM Linux di tua scelta (ho usato Linux Mint, ma le distribuzioni basate su Ubuntu e Debian funzionano altrettanto bene con il resto del tutorial), e scarica Burp Suite , preferibilmente la versione JAR in quanto è più portabile.

Installa OpenVPN come per DigitalOcean's Guida . Verifica che il tuo dispositivo iOS possa connettersi a e che può accedere a Internet.

iptables configurazione

Dovresti aver già configurato iptables come da guida sopra per masquerading delle connessioni client. Ora devi configurare iptables per inoltrare tutte le richieste HTTP e HTTPS dall'interfaccia tun0 di OpenVPN alla porta 8080 (o qualunque altra sia la tua copia di Burp Suite)

# iptables -t nat -A PREROUTING -i tun0 -p tcp --dport 80 -j REDIRECT --to-port 8080
# iptables -t nat -A PREROUTING -i tun0 -p tcp --dport 443 -j REDIRECT --to-port 8080

Il bit divertente

Avvia Burp Suite, assicurandosi di:

  1. Disabilita intercetta : non vuoi interrompere e ispezionare / modificare ogni singola connessione a meno che non ti serva quella funzione
  2. Proxy > Opzioni > Proxy Listeners > Modifica e attiva l'ascolto su tutte le interfacce
  3. Proxy > Opzioni > Proxy Listeners > Modifica > Gestione richieste e abilita il proxy invisibile o nessuna delle operazioni precedenti funzionerà!

Divertiti;)

    
risposta data 29.07.2018 - 16:13
fonte

Leggi altre domande sui tag