Discussione Decriptare pacchetti di applicazioni che utilizzano https

Ralfox

Utente Bronze
29 Gennaio 2017
31
3
2
30
Salve a tutti, per scopo puramente didattico ho cercato di intercettare dei pacchetti che il mio dispositivo android scambia con il server di una data applicazione.
Per fare ciò ho utilizzato tcpdumb in correlazione a netcat, in modo tale da indirizzare il traffico tcp su una data porta e osservare i pacchetti con Wireshark.
Wireshark rileva i pacchetti che ovviamente sono criptati. C'è qualche modo di condividere la chiave di decriptazione della sessione tra dispositivi? Su windows esiste SSLKEYLOGFILE che è possibile sfruttare su wireshark per decriptare i pacchetti, esiste una cosa simile pure per android? Avete qualche consiglio per riuscire a osservare l'app data in chiaro? Vi ringrazio anticipatamente.

EDIT: L'utilizzo di proxy è inutile, in quanto è presente l'ssl pinning e anche con l'utilizzo di frida l'applicazione non riesce a connettersi al server.
 
Bypassare l'SSL Pinning non è possibile per tutte le applicazioni.
Oltre Frida potresti provare qualche modulo di xposed (se hai android) oppure Flex se hai un dispositivo con iOS.

Ovviamente c'è sempre la via "sporca", ovvero decompilare l'apk ed evitare che istanzi il pinner, ma è complesso.
 
  • Mi piace
Reazioni: Ralfox
Ultima modifica:
Bypassare l'SSL Pinning non è possibile per tutte le applicazioni.
Oltre Frida potresti provare qualche modulo di xposed (se hai android) oppure Flex se hai un dispositivo con iOS.

Ovviamente c'è sempre la via "sporca", ovvero decompilare l'apk ed evitare che istanzi il pinner, ma è complesso.

Ho provato col modulo "SSLUnpinning 2.0" però anche qui con alcune app come twitter riesce con altre no, è possibile che alcune app implementino meccanismi di sicurezza più invasivi? Riguardo la decompilazione dell'apk, hai qualche guida o suggerimento per capire come funziona questo pinner? Grazie per l'aiuto.

EDIT: Stavo pensando, è possibile a livello teorico, aggiungere all'apk decompilata ad esempio il certificato di Fiddler in modo da essere considerato attendibile?
 
Devi impostare un proxy sul tuo dispositivo e far passare il traffico sul tuo computer.

Sul tuo pc poi per sniffare il traffico usi CharlesProxy o Fiddler. Personalmente mi sono trovato bene con CharlesProxy.
 
  • Mi piace
Reazioni: Ralfox
Devi impostare un proxy sul tuo dispositivo e far passare il traffico sul tuo computer.

Sul tuo pc poi per sniffare il traffico usi CharlesProxy o Fiddler. Personalmente mi sono trovato bene con CharlesProxy.

Facendo così tuttavia non dovrei installare dei certificati sul dispositivo? Con l'ssl pinning alcune applicazioni non riescono a connettersi al server..
 
Ho fatto lo sniffing per una applicazione usando un telefono roottato con xposed ed il modulo "justtrustme", il proxy fornito da Fiddler e magicamente vedevo tutti i pacchetti deceyptati. Prova e facci sapere.
 
Ho fatto lo sniffing per una applicazione usando un telefono roottato con xposed ed il modulo "justtrustme", il proxy fornito da Fiddler e magicamente vedevo tutti i pacchetti deceyptati. Prova e facci sapere.
Ho provato questo modulo, dopo averlo abilitato e dopo aver installato il certificato di Fiddler sul dispositivo, applicazioni come ad esempio Twitter non riescono a collegarsi al server, stessa cosa con il modulo "TrustMeAlready" mentre con il modulo "SSLUnpinning 2.0" alcune applicazioni vanno altre no, non so se magari sbaglio qualcosa oppure è la versione di android a dare problemi.
Android 5.0 (Lollipop, API 21) Asus_Z00AD x86