Sniffing From Squid SSL

3

Ho creato un proxy Squid e un certificato SSL autofirmato. Il certificato SSL sul server è un certificato privato collegato alla funzione ssl-bump. Sto usando tshark per scaricare il traffico SSL, ma non posso annusare con tshark. Ad esempio il mio comando tshark è:

tshark -o "ssl.desegment_ssl_records: TRUE" -o "ssl.desegment_ssl_application_data: TRUE" -o "ssl.keys_list: 209.190.x.x,443,http,/etc/squid/ssl/file/squid.key" -o "ssl.debug_file: /tmp/.wireshark-log" -i eth0 -R "http.request.method==GET or http.request.method==POST"

So che squid funziona (e posso annusare tutti i dati da http), e posso vedere il log del sito https in /var/log/squid/access.log ma non posso annusare i dati completi di https. So anche che Squid diventa un man-in-the-middle in questo scenario e crea 2 chiavi SSL. Uno tra il client e il calamaro, l'altro tra il calamaro e il server. Non riesco ad annusare i dati tra il client e il calamaro ma penso di poter annusare i dati tra il server (me) e il calamaro.
Come posso annusarlo? C'è qualche alternativa a tshark?

    
posta John 07.09.2013 - 21:47
fonte

2 risposte

3

Con Bump SSL , Squid esegue un Attacco man-in-the-middle tra il client e il server; si pone come un server falso con un certificato falso quando parla al client e come un client falso quando parla al vero server SSL. Squid ottiene così tutti i dati. Se vuoi vedere cosa vede Squid, sembra che l'opzione migliore sarebbe semplicemente chiedere a Squid di inviarti una copia. Apparentemente, questo è almeno teoricamente fattibile attraverso la funzione ICAP : è un modo per Squid di fare proprio questo. Il software antivirus si collega a Squid tramite ICAP e controlla sia i contenuti dei messaggi HTTP che le intestazioni.

Altrimenti, se non hai l'aiuto di Squid, allora devi capire cosa succede a livello SSL. In particolare, gli strumenti ssldump possono decifrare il traffico SSL catturato solo se le seguenti condizioni sono tutte true:

  • Lo strumento di decrittografia riceve una copia della chiave privata server .
  • Lo strumento di decrittografia supporta gli algoritmi crittografici utilizzati per la connessione.
  • La suite di crittografia selezionata dal server (basata su ciò che il client supporta e preferisce) utilizza uno scambio di chiavi basato su RSA. Con le suite di crittografia "DHE", lo scambio di chiavi effettivo utilizza le chiavi Diffie-Hellman effimere e la chiave privata del server viene utilizzata solo per le firme; avere una copia di quella chiave privata non sarebbe di aiuto qui.

Nel tuo caso, ci sono due connessioni SSL, una tra il client e Squid, l'altra tra Squid e il server originale. Se hai una copia della chiave del server, allora puoi concentrarti su quest'ultima e dimenticarti di SSL Bump e Squid. Tuttavia, in un caso più generale, come amministratore di sistema di Squid controlli Squid, non il server di destinazione.

Con SSL Bump, Squid genera un falso certificato del server quando parla al client. Se riesci a ottenere una copia della chiave privata per quel falso certificato, dovresti essere in grado di applicare ssldump sulla connessione client-to-Squid. Come descritto qui , lo strumento che Squid usa per generare certificati falsi è configurabile, quindi puoi usare il tuo, che genera il certificato (ad esempio con OpenSSL ) e registra la chiave privata da qualche parte, in modo che una traccia acquisita possa essere decrittografato in seguito.

Per la suite di crittografia, sembra essere fattibile con la direttiva Squid https_port , che accetta un parametro "cipher=". Come detto qui , il valore di tale parametro è passato direttamente alla libreria SSL sottostante utilizzata da Squid e OpenSSL.

Vedi anche questo thread del forum dove qualcuno apparentemente sta cercando di fare la tua stessa cosa.

    
risposta data 04.01.2014 - 15:46
fonte
1

Se fossi in te otterrei SSLStrip ( link ). È davvero uno strumento superiore, ma funziona solo su linux. Se non hai Linux, questo è davvero buono! Kali Linux ( link ) è uno strumento gratuito che può essere eseguito da una VM o un'unità USB con il minimo sforzo. Dovrai comunque ottenere SSLStrip, ma Kali viene installato con Python, quindi usa "python setup.py" e funzionerà solo da solo. Non esiste una GUI per SSLStrip, ma è facile da usare. Kali viene anche fornito con gadget come Wireshark (per http) e aircrack-ng (per l'interruzione delle reti protette WEP e WPA / WPA2).

    
risposta data 05.12.2013 - 04:03
fonte

Leggi altre domande sui tag