Manipolazione del traffico SSL tramite ettercap MitM e iptables

2

Sto cercando di capire la relazione tra alcuni strumenti e concetti usati per MitM su una rete wifi e come la transazione https (su questa rete wifi) tra un'app Android e il rispettivo server può essere intercettata e modificata. Sono nuovo in questo dominio, quindi per favore portami con me.

Quindi voglio CATTURARE e MANIPOLARE tutto il traffico HTTPS tra un'app Android e il server con cui sta comunicando. L'utente che utilizza l'app si trova su una rete PSK WPA / WPA2. Ho già acquisito l'iniziale handshake WPA e sono stato in grado di forzare il PSK con successo tramite l'handshake e ora faccio parte della stessa rete dell'utente che utilizza l'app di destinazione.

Ora per essere in grado di catturare il traffico ho bisogno di ottenere una posizione MitM. Ci sono molti modi per farlo. Ce ne sono un paio che conosco, tra cui Cain APR e ettercap.

Ho scelto di usare ettercap in ARP per avvelenare la vittima. Da quando il dispositivo mobile comunica via SSL e voglio intercettare questa comunicazione SSL, apporto le modifiche necessarie a etter.conf e accendo l'IP forwarding sul mio sistema per eseguire la rappresentazione del certificato ettercap, dove ettercap genera effettivamente il server imposter e i certificati CA su il volo.

La tecnica sopra mostrerebbe comunque alla vittima un avviso di errore del certificato e se l'utente accetta che il certificato falso sia aggiunto come CA radice attendibile sul dispositivo della vittima. Avrei potuto usare SSL Strip qui, ma ancora una volta, se l'utente si connette al server direttamente su https (senza un reindirizzamento), la striscia SSL potrebbe non essere la soluzione migliore.

Ora, sebbene io possa annusare il traffico SSL ora, ma sarebbe relativamente più difficile manipolare questo traffico SSL usando ettercap. Quindi, invece, provo a usare iptables per reindirizzare il traffico verso un numero di porta alternativo su una seconda porta del sistema locale dove ho un altro software in esecuzione che mi permetterebbe di manipolare i dati nel traffico reindirizzato.

Ora diciamo che il software che sto usando su questa porta è BURP Suite, che è qualcosa che vorrei usare per giocherellare con i dati.

Ora la cosa di cui mi sto confondendo è:

BURP has it's own Portswigger certificate. However, using ettercap I have already done a certificate impersonation earlier. So now, when I forward all of this traffic (using IP Tables and setting up BURP to use Transparent Proxy) to BURP, will I need to get the Portswigger certificate also trusted on the client's device ? Please explain either yes or no.

  1. Come attaccante del mondo reale, quanto sopra sarebbe probabilmente uno dei metodi che potrei usare per lanciare un attacco. La comprensione sopra è corretta?

  2. Come metro di valutazione un altro modo per ottenere ciò che posso pensare è se installo un server SSH sul dispositivo di test e installo anche Shark (nel caso di Android) / qualche altro dump come strumento e quindi monitorare / analizzare (usando Wireshark forse) tutto il traffico da remoto attraverso un client SSH sul mio sistema locale? Questo mi consentirà di fare il lavoro previsto?

  3. Quali potrebbero essere altri modi per farlo?

posta qre0ct 16.04.2015 - 12:53
fonte

1 risposta

1

La soluzione migliore è quando ettercap non miTM la connessione SSL, lo inoltra a Burp e Burp può essere configurato come proxy MiTM SSL trasparente. In questo caso, il client vedrà il certificato del server Burp, che deve essere considerato attendibile dal client. Come puoi vedere di seguito, è stata configurata solo una connessione SSL.

           SSL1            SSL2 
Client <--Ettercap--> Burp <--> SSL Website

Sebbene sia ettercap sia Burp possano essere configurati come SSL MiTM, rendono le cose solo più complicate. In questo caso, il client vedrà solo il certificato del server ettercap, quindi non è necessario aggiungere il certificato di Burp allo store. In questo caso avremo 3 diverse connessioni SSL, ma non ha alcun vantaggio rispetto a quello precedente.

       SSL1          SSL2      SSL3
Client <--> Ettercap <--> Burp <--> SSL Website

Per rispondere alle tue domande: Sì, come un attaccante del mondo reale quanto sopra sarebbe probabilmente uno dei metodi che potresti usare per lanciare un attacco.

SSH-in nel dispositivo Android e l'utilizzo di Shark non sarà sufficiente. Non sarai in grado di manipolare il traffico. Sarai in grado di decifrare il traffico solo se hai le chiavi del server TLS / SSL (che di solito non è il caso) e la perfetta segretezza non viene utilizzata.

    
risposta data 17.08.2015 - 22:17
fonte