Come intercettare e analizzare il traffico delle applicazioni SSL mobili?

3

Qual è il modo migliore per analizzare le richieste inviate da un'applicazione mobile su SSL? Il protocollo di comunicazione non è necessariamente HTTP / S, quindi intercettarli con BURP / ZAP / Fiddler o qualsiasi altro proxy HTTP non funzionerà necessariamente, ma - Come faccio a ottenere che il traffico raggiunga persino il proxy?

Ho letto del materiale qui relativo a soggetti simili ma non sono riuscito a trovare la descrizione di un flusso completo che potrei seguire per eseguire effettivamente questo compito.

Il dispositivo su cui è installata l'applicazione deve essere rootato per eseguire questa operazione?

Se l'applicazione utilizza il blocco dei certificati, c'è ancora un modo per farlo?

Sono specificamente interessato a capire come funziona il modello di sicurezza di Whatsapp, ovvero quale meccanismo hanno in atto per impedire a un utente malintenzionato di recuperare la cronologia della chat di un utente legittimo (visto che non esiste un vero accesso - Esiste un cookie / altro meccanismo inviato dal dispositivo che identifica l'utente davanti al server?)

La mia organizzazione sta prendendo in considerazione l'implementazione di un'applicazione di messaggistica che funziona in modo simile e stiamo cercando di assicurarsi che un utente malintenzionato non possa rubare l'identità di un utente legittimo. (non intendiamo implementare un meccanismo di login)

    
posta user3074662 08.02.2015 - 07:56
fonte

3 risposte

3

Se hai acceso o hai accesso a una macchina Mac o Linux, una grande applicazione per intercettare il traffico https insieme a http è MITMProxy . Non solo è ottimo per visualizzare il traffico mentre viene trasmesso, ma puoi modificarlo molto facilmente. Tutto ciò che è necessario per visualizzare il traffico https consiste nell'installare i certificati forniti sul dispositivo che si desidera intercettare, quindi modificare le impostazioni proxy sul dispositivo di destinazione sull'IP del computer e impostare la porta su 8080. Ulteriori informazioni sono disponibili in la loro documentazione .

    
risposta data 08.02.2015 - 17:36
fonte
3

What is the best way to analyze requests sent by a mobile application over SSL? The communication protocol is not necessarily HTTP/S so intercepting them with BURP/ZAP/Fiddler or any other HTTP proxy will not necessarily work, but - How do I get the traffic to even reach the proxy?

Per il classico HTTPS dovresti usare Burp / Zap / mitmproxy perché non ci sono alternative migliori che io conosca. Non ho mai visto nessun altro protocollo che utilizza suite SSL / TLS nelle app, ma vorrei provare a decodificare l'app per ottenere il protocollo o provare a ottenere le chiavi di crittografia e decrittografare il traffico. Ma ci vorrebbe un sacco di tempo.

Sei sicuro che sia davvero un altro protocollo rispetto a HTTPS su porte non standard?

Does the device on which the application is installed need to be rooted for me to perform this task?

Non hai bisogno del dispositivo rooted per lo sniffing HTTPS, tutto ciò che devi fare è impostare il proxy e un certificato attendibile. Per altri protocolli - beh, questo dipende ... Puoi reindirizzare tutto il traffico verso il gateway di tua scelta, ma finché il protocollo è crittografato, credo che non ti sarà molto utile.

If the application uses certificate pinning, is there still a way to do this?

Sì, il blocco dei certificati può essere ignorato su entrambe le piattaforme principali. Entrambi richiedono la radice, il pensiero.

  • Per Android esiste un'estensione Cydia Substrate chiamata SSL Trust Killer che funziona intercettando determinate chiamate e modificandole per restituire true durante la convalida. A meno che non ci sia una propria implementazione del ceritificato, questo funzionerà. Altrimenti, c'è molto probabilmente un bug di implementazione nel controllo dei certificati;)

  • iOS ha diversi meccanismi, quello che uso è attraverso il framework Snoop-it. Se ciò non funziona, puoi sempre ripristinare il metodo swizzling.

I am specifically interested in understanding how the Whatsapp security model works - i.e. what mechanism do they have in place to prevent a malicious user to fetch the chat history of a legitimate user (seeing as there is no actual login - Is there a cookie/another mechanism sent from the device identifying the user in front of the server?)

My organization is considering implementing a messaging application that works in a similar way and we are trying to make sure that a malicious user cannot steal the identity of a legitimate user. (we are not intending to implement a login mechanism)

Bene, la soluzione migliore è assumere un tester di penetrazione capace per la valutazione della sicurezza dell'applicazione. Credo che la sicurezza di WhatsApp dovrebbe essere molto alta, dato che hanno avuto pochi incidenti di sicurezza e sono piuttosto un'organizzazione di alto profilo con una vasta base di utenti e prendono la sicurezza in modo serio ... Ma non si può mai essere troppo sicuri.

Spero che questo post aiuti un po '.

    
risposta data 08.02.2015 - 18:48
fonte
0

potresti utilizzare alcuni modi per ottenere questo:

Se si utilizza un dispositivo Android mobile, è possibile connettersi a una rete domestica e utilizzare un computer come host per eseguire un MITM (man in the middle) e indirizzare tutti i pacchetti mobili attraverso l'host e monitorare i pacchetti utilizzando Wireshark (?)

se stai usando un emulatore come BlueStacks puoi installare ProxyCap e modificare le impostazioni per reindirizzare tutti i pacchetti bluestacks attraverso il tuo ProxyCap locale.

ci sono alcune app da installare su un dispositivo Android per reindirizzare le app a un proxy ma non funzionano al 100% anche la maggior parte delle app non si applica alla regola proxy, inoltre, un telefono root offre più opzioni per il controllo di questo tipo di cose,

se trovi altri modi per farlo, per favore condividi:)

    
risposta data 08.02.2015 - 14:16
fonte

Leggi altre domande sui tag