Wireshark SSL stripping

1

bene questa domanda potrebbe essere posta nei forum di Wireshark o nei forum Stackoverflow ma, penso che la domanda invluisca anche i fattori di sviluppo e di sicurezza, quindi trovo che il forum di sicurezza delle informazioni sia il posto adatto per porre questa domanda. Bene dritto al punto. Ecco i passaggi che ho seguito fino a quando non ho riscontrato un problema.

  1. Ho un sito web che funziona su un protocollo HTTPS che serve l'applicazione Android
  2. Solitamente eseguo il debug di richieste / risposte tramite Wireshark in esecuzione sul sistema operativo Windows.
  3. Ho richiesto la chiave privata al programmatore del server in modo da poterla allegare a Wireshark.
  4. Il programmatore del server ha detto che non sa dove si trova la chiave ora dato che la chiave si trova in un'immagine Docker, ma lo cercherà presto.
  5. Avevo ancora bisogno di eseguire il debug della mia app piuttosto che copiare il log.d () su tutta la mia app per Android.
  6. scoperto che c'era un'applicazione chiamata "SSL" in Google Playstore e l'ho scaricata e provata.
  7. installa un "certificato di acquisizione dei pacchetti" (che Android è piuttosto diffidente perché è un certificato di terze parti)
  8. l'ho installato comunque, perché il mio telefono di prova è un telefono fittizio
  9. ha iniziato a catturare i pacchetti HTTPS decrittografati

Come può effettivamente funzionare ?? questa applicazione ovviamente sa come recuperare i pacchetti diretti ad altre app. Ma come può decifrare lo ssl? o è il contrario? sono le app che segnalano i pacchetti HTTP decrittografati a questa app? Infine, Wireshark è in grado di decodificare i pacchetti proprio come l'app principale scambiando le chiavi con il server?

    
posta ksp0422 18.05.2016 - 15:53
fonte

1 risposta

1

Per cominciare - Non entrerò troppo nei dettagli per questa risposta. Maggiori informazioni su HTTPS e sul sistema di certificazione, se sei curioso; -)

HTTPS ha bisogno che i certificati funzionino. Questi certificati sono pensati per essere una garanzia che stai parlando con il server giusto (e non con il server di un intruso). La sola crittografia (senza questa autenticazione) sarebbe piuttosto inutile, perché sarebbe banale intercettare e decrittografare il traffico.

Per gestire tutto questo materiale di certificazione, utilizziamo una infrastruttura a chiave pubblica . Il tuo telefono si fida solo dei certificati firmati da un'autorità di certificazione.

Installando l'app, nel passaggio 7 hai menzionato che hai importato un "certificato di acquisizione dei pacchetti". Ora il tuo telefono si fida di tutto ciò che ha fiducia in precedenza, oltre a tutti i certificati firmati dal "certificato di acquisizione dei pacchetti".

Ora l'app può fungere da proxy tra il tuo dispositivo e la tua applicazione web. Decodifica il tuo traffico in modo che possa visualizzare il contenuto del pacchetto e quindi ricodificarlo con la propria connessione sicura all'applicazione web. È simile a un attacco Man-in-the-middle . Funziona solo perché ti sei fidato del certificato. (Se non ti fidi del certificato, molto probabilmente il tuo telefono genererà un errore di connessione.)

Ma in che modo l'app ottiene i pacchetti? Probabilmente utilizza la API VPN Android e si presenta al sistema Android come tunnel VPN. Pertanto, Android inoltra tutti i pacchetti all'app.

Wireshark non può essere utilizzato come proxy perché wireshark ascolta solo per il traffico e non altera o inserisce nuove richieste. Se vuoi un altro strumento in grado di intercettare HTTPS, prova OWASP ZAP , Burp Suite o mitmproxy .

    
risposta data 18.05.2016 - 16:35
fonte

Leggi altre domande sui tag