Mitm Proxy usando c # SslStream problemi quando si fa direttamente dal file host [chiuso]

1

Sto cercando di creare un proxy MITM Windows locale con C # per gestire un'applicazione non supportata da un'azienda che non esiste più.

Il Proxy deve servire solo un dominio HTTPS che viene fatto creando un proxy che ascolta sull'indirizzo locale: porta 127.0.0.1:443.

Viene quindi creata una voce nel file host, ad esempio 127.0.0.1 my.single.domain.com.

Se dovessi connetterti a questo con un browser che utilizza la propria impostazione proxy e senza alcuna voce host, il browser invierà un "CONNECT ... etc" al proxy.

Ci sono molti esempi per questo e posso farlo funzionare bene da questi esempi. (Titanium.Web.Proxy ecc.)

Quando si utilizza un file host come descritto sopra, l'handshake di ssl / tls viene avviato immediatamente piuttosto che un "CONNECT .... etc" inviato. Questo perché il browser ora giustamente ritiene che 127.0.0.1 sia il server attuale.

Sono davvero in difficoltà a trovare un buon esempio di come gestirlo utilizzando l'opzione C # SslStream. La maggior parte sono per semplici demo di server client e francamente la maggior parte non funziona, inclusi gli esempi di MSDN.

Il mio requisito specifico è un browser che naviga verso

URI: HTTPS: \\ my.single.domain.com \ ma nessun altro dominio utilizza questo proxy, quindi utilizza il file host. (Un port forwarder non viene usato a causa di motivi fuori dal mio controllo)

Dove sono in grado di intercettare (MITM) i dati che passano.

Devo creare due connessioni SslStream adesso ?? Uno per gestire il browser e poi un secondo per gestire il server.

Solo un buon esempio di base sarebbe fantastico: -)

    
posta William Humphreys 24.03.2016 - 01:58
fonte

0 risposte

Leggi altre domande sui tag