Domanda

Ho un'applicazione locale (che non ho scritto, e non posso cambiare) che parla a un servizio Web remoto. Esso utilizza HTTPS, e mi piacerebbe vedere cosa c'è nel traffico.

C'è un modo che io possa fare questo? Preferirei un sistema Windows, ma sono felice di impostare un proxy su Linux se questo rende le cose più facili.

Quello che sto considerando:

  1. Riorientare il sito web hacking il mio file hosts (o la creazione di DNS alternativo).
  2. Installazione di un server HTTPS su quel sito, con un certificato auto-firmato (ma di fiducia).
  3. A quanto pare, Wireshark può vedere cosa c'è in HTTPS, se si alimentano la chiave privata. Non ho mai provato questo.
  4. In qualche modo, questa delega il traffico al server reale (vale a dire si tratta di una vera e man-in-the-middle "attacco").

Vi sembra ragionevole? Wireshark può davvero vedere cosa c'è nel traffico HTTPS? Qualcuno mi può puntare a un proxy adatto (e la configurazione per lo stesso)?

È stato utile?

Soluzione

Fiddler fare quello che vuoi?

  

Che cosa è Fiddler?

     

Fiddler è un Web Debugging Proxy che   log tutte HTTP (S) il traffico tra il   computer e Internet. Violinista   consente di ispezionare tutti i HTTP (S)   traffico, impostare punti di interruzione, e "giocherellare"   con i dati in entrata o in uscita.   Fiddler include un potente   sottosistema di scripting basato su eventi, e   può essere esteso utilizzando qualsiasi .NET   lingua.

     

Fiddler è freeware e può eseguire il debug   il traffico da qualsiasi   applicazione, tra cui Internet   Explorer, Mozilla Firefox, Opera, e   di piú.

Altri suggerimenti

Wireshark può sicuramente visualizzare i flussi criptati TLS / SSL in testo semplice. Tuttavia, sarà sicuramente bisogno la chiave privata del server di farlo. La chiave privata deve essere aggiunto a Wireshark come opzione SSL sotto preferenze. Si noti che questo funziona solo se è possibile seguire il flusso SSL fin dall'inizio. Non funzionerà se una connessione SSL viene riutilizzato.

Per Internet Explorer questo (SSL sessione di riutilizzo) può essere evitato eliminando lo stato SSL utilizzando la finestra di dialogo Opzioni Internet. Altri ambienti possono richiedere il riavvio di un browser o anche il riavvio di un sistema (per evitare sessione SSL riutilizzo).

L'altro vincolo di chiave è che un cifrario RSA deve essere utilizzato. Wireshark non può decodificare flusso di TLS / SSL che utilizzano DFH (Diffie-Hellman).

Supponendo che si può soddisfare i vincoli di cui sopra, il "Segui SSL Stream" tasto destro del mouse comando funziona piuttosto bene.

È necessario impostare un proxy per l'applicazione locale e se si pretende molto onore impostazioni proxy, metti un proxy e percorso trasparente tutto il traffico HTTPS in esso prima di andare al di fuori. Qualcosa di simile può essere l ' "uomo" nel mezzo: http://crypto.stanford.edu/ssl -mitm

Inoltre, ecco brevi istruzioni su come archiviare questo con Wireshark: http: // predev. wikidot.com/decrypt-ssl-traffic

Si dovrebbe anche considerare Charles . Dalla descrizione del prodotto, al momento di questa risposta:

  

Charles è un monitor proxy HTTP / HTTP / Reverse Proxy che permette allo sviluppatore di visualizzare tutte le HTTP e SSL / HTTPS traffico tra loro macchina e Internet. Ciò include le richieste, le risposte e le intestazioni HTTP (che contengono i cookie e le informazioni cache).

Lo consiglierei WireShark, è lo strumento migliore per seguire su diversi pezzi di traffico. Anche se, io non sono sicuro di quello che si può vedere con SSL attivato. Forse, se si fornisce con un certificato?

  1. Per usare HTTPS proxy per monitorare, dipende dal tipo di handshake. Se l'applicazione locale non controlla il certificato del server per la firma di CA, che non si può fingere, e il server non verifica il certificato dell'applicazione locale (o se ne avete uno di impostare il proxy HTTPS), allora è possibile impostare un proxy HTTPS per monitorare il traffico HTTPS. In caso contrario, penso che sia impossibile per monitorare il traffico con delega https.

  2. Un altro modo si può provare è quello di aggiungere sonda strumentazione presso le routine del vostro programma client dove inviare e ricevere messaggi dalla sua libreria https. Ha bisogno di qualche lavoro di reverse engineering, ma dovrebbe funzionare per voi per tutte le situazioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top