Sniffing From Squid SSL

3

Creé un proxy Squid y un certificado SSL autofirmado. El certificado SSL en el servidor es un certificado privado vinculado a la función ssl-bump. Estoy usando tshark para volcar el tráfico SSL, pero no puedo olerlo con tshark. Por ejemplo, mi comando tshark es:

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"

Sé que Squid funciona (y puedo oler todos los datos de http), y puedo ver el registro del sitio https en /var/log/squid/access.log pero no puedo oler todos los datos de https. También sé que Squid se convierte en un hombre en el medio en este escenario y hace 2 claves SSL. Uno entre el cliente y el calamar, el otro entre el calamar y el servidor. No puedo oler los datos entre el cliente y el calamar, pero creo que puedo oler los datos entre el servidor (yo) y el calamar.
¿Cómo puedo olerlo? ¿Hay alguna alternativa para tshark?

    
pregunta John 07.09.2013 - 21:47
fuente

2 respuestas

3

Con SSL Bump , Squid ejecuta un Man-in-the-Middle attack entre el cliente y el servidor; se presenta como un servidor falso con un certificado falso cuando se habla con el cliente y como un cliente falso cuando se habla con el verdadero servidor SSL. Squid obtiene así todos los datos. Si quieres ver lo que ve Squid, entonces parece que la mejor opción sería simplemente pedirle a Squid que te envíe una copia. Aparentemente, esto es al menos teóricamente factible a través de la función ICAP : es una forma en que Squid puede hacer eso. El software antivirus se enlaza con Squid a través de ICAP e inspecciona tanto el contenido del mensaje HTTP como los encabezados.

De lo contrario, si no cuenta con la ayuda de Squid, debe comprender lo que ocurre a nivel de SSL. En particular, las herramientas ssldump pueden descifrar el tráfico SSL capturado solo si las siguientes condiciones son todas verdaderas:

  • La herramienta de descifrado recibe una copia de la clave privada servidor .
  • La herramienta de descifrado admite los algoritmos criptográficos utilizados para la conexión.
  • El conjunto de cifrado seleccionado por el servidor (según lo que el cliente admita y prefiera) utiliza un intercambio de claves basado en RSA. Con las suites de cifrado "DHE", el intercambio de clave real utiliza claves efímeras Diffie-Hellman, y la clave privada del servidor se usa solo para firmas; tener una copia de esa clave privada no ayudaría aquí.

En su caso, hay dos conexiones SSL, una entre el cliente y Squid, la otra entre Squid y el servidor original. Si tiene una copia de la clave del servidor, entonces puede concentrarse en la última, y olvidarse de todo sobre SSL Bump y Squid. Sin embargo, en un caso más general, como el administrador de Squid usted controla Squid, no el servidor de destino.

Con SSL Bump, Squid genera un certificado de servidor falso cuando habla con el cliente. Si puede obtener una copia de la clave privada para ese certificado falso, entonces debería poder aplicar ssldump en la conexión de cliente a Squid. Como se describe en aquí , la herramienta que Squid usa para generar certificados falsos es configurable, por lo que podría usar el suyo propio, que genera el certificado (p. ej., con OpenSSL ) y registra la clave privada en algún lugar, para que se pueda realizar un rastreo capturado descifrado más adelante.

Para la suite de cifrado, esto parece ser factible con la directiva Squid https_port , que acepta un parámetro "cifrado=". Como se dice aquí , el valor de ese parámetro es pasado directamente a la biblioteca SSL subyacente que usa Squid, y eso es OpenSSL.

Vea también este hilo del foro donde alguien aparentemente está tratando de hacer lo mismo que tú.

    
respondido por el Tom Leek 04.01.2014 - 15:46
fuente
1

Si fuera usted, obtendría SSLStrip ( enlace ). Realmente es una herramienta superior, pero solo funciona en Linux. Si no tienes Linux, ¡esto es realmente bueno! Kali Linux ( enlace ) es una herramienta gratuita que se puede ejecutar desde una VM o una unidad USB con un mínimo esfuerzo. Aún tendrás que obtener SSLStrip, pero Kali viene con Python instalado, así que solo usa "python setup.py" y solo funcionará. No hay GUI para SSLStrip, pero es fácil de usar. Kali también viene con accesorios como Wireshark (para http) y aircrack-ng (para irrumpir en redes protegidas WEP y WPA / WPA2).

    
respondido por el user2218101 05.12.2013 - 04:03
fuente

Lea otras preguntas en las etiquetas