Burp + Genymotion: non tutto il traffico proveniente dall'app in emulatore inoltrato tramite Burp

1

Ho impostato Burp + Genymotion in questo modo: link per eseguire alcuni test di penetrazione su App Android per lavoro.

Le impostazioni WiFi di Genymotion (Android 6.0.0, API 23) sono:

proxy: 10.0.3.2, porta: 8080 e il certificato CA Portswigger è installato correttamente.

Impostazioni Burp (v1.7.21): gli ascoltatori Proxy che ascoltano solo "loopback" per 127.0.0.1:8080

La mia macchina è un PC desktop Windows 10 Pro (1703).

Questa configurazione funziona per intercettare quasi tutto il traffico da browser e app, anche https.

Ma in qualche modo alcune app riescono ancora a canalizzare il traffico intorno al rutto.

C'è un modo per intercettare anche quel traffico?

Grazie

    
posta Martin Fürholz 16.05.2017 - 08:43
fonte

2 risposte

1

Ci sono 3 casi probabili:

  1. Applicazione Android che imposta un altro proxy sulle sue richieste http, ignorando quindi proxy di sistema e burpsuite.
  2. Applicazione che imposta i suoi gestori http per ignorare le impostazioni del proxy Android e connettersi direttamente alla destinazione.
  3. L'applicazione utilizza un protocollo non http.

Se 1 o 2 è il caso , dovrai usare tecniche di wirehark o reverse engineering per trovare i domini con cui l'applicazione sta interagendo, diciamo xxx.com e yyy.org.
Devi quindi usare adb shell per modificare / etc / hosts, assumiamo l'ascolto di burp su 10.0.3.2, aggiungi le seguenti righe a / etc / hosts:

10.0.3.2 xxx.com  
10.0.3.2 yyy.org

Potrebbe essere necessario rimontare la partizione di sistema come "rw" per poter modificare / etc / hosts:

mount -o rw,remount,rw /system

Quindi, sotto il proxy di burp, impostalo per ascoltare sulla porta 80 e 443, quindi nelle impostazioni per ciascuno di questi listener abilita " proxy invisibile ", se il traffico http / https inviato dall'applicazione sarà ora visibile / intercettato in Burp.

Stiamo facendo in modo che il dispositivo risolva i nomi di dominio dell'applicazione nell'indirizzo di burpsuite. Possiamo anche cambiare il DNS del dispositivo sul nostro server controllato che restituisce l'indirizzo di burp per tutte le richieste. Questa soluzione non è sufficiente se l'applicazione si collega direttamente agli indirizzi IP anziché ai nomi di dominio. Se l'applicazione utilizza protocolli non http, burpsuite non sarà in grado di rilevare il traffico.

    
risposta data 16.07.2017 - 08:21
fonte
0

Penso che quelle app stiano utilizzando Blocco dei certificati . Queste app rifiutano il certificato di Burp perché si aspettano i loro certificati. Dal momento che Burp ha bisogno del proprio certificato MITM per le connessioni, non riesce a decodificare la connessione. Puoi controllare la scheda Avvisi su Burp Suite per vedere le connessioni fallite.

Hai un paio di opzioni:

  • Portswigger ha rilasciato un Burp Suite Mobile Assistant . Ma funziona per IOS 8 e 9, che non va bene per te. Dice sulla pagina:

    It can attempt to circumvent SSL certificate pinning in selected apps, allowing Burp Suite to break their HTTPS connections and intercept, inspect and modify all traffic. (Supported on iOS 8 and 9).

  • Puoi utilizzare l'app SSLUnpinning_Xposed (non ho abbastanza reputazione per pubblicare più di 2 link, basta cercare il nome su google), che è un'app simile a quanto sopra. Funziona solo sui dispositivi Android ma richiede un dispositivo rooted e il framework Xposed installato. Non ho avuto successo nell'installare il framework Xposed su un emulatore, ma puoi provare comunque. Questa app non garantisce il funzionamento perché alcune app prendono precauzioni per impedire il corretto funzionamento dell'app SSLUnpinning_Xposed.

  • Infine, puoi decodificare l'app e modificare la logica di blocco del certificato in modo che l'app accetti il certificato di Burp. In questo modo è garantito lavorare ma è più difficile da fare. Se l'app è offuscata, potrebbe essere necessario leggere e comprendere il codice Smali per trovare la logica di blocco del certificato. Se stai provando a MITM Apps bancarie , consiglierei queste opzioni perché altri modi non funzionano la maggior parte del tempo. Ci sono ottimi articoli su internet su questo argomento. Ad esempio, puoi google Ignorare il blocco dei certificati su Android per divertimento e profitto e fare clic sul primo link.

risposta data 16.05.2017 - 09:50
fonte

Leggi altre domande sui tag