¿Cómo fuzz protocolo propietario sobre SSL?

8

Estoy realizando una investigación de vulnerabilidades en una arquitectura cliente / servidor que utiliza un protocolo propietario personalizado enviado a través de SSL (puerto 443). Necesito poder interceptar el tráfico, y poder verlo en texto claro en algo como Wireshark , modificar el tráfico y Luego envíalo al servidor. El "cliente" es un complemento de Microsoft Office. Mi objetivo final es poder borrar las comunicaciones de red sin cifrar.

He intentado generar un certificado autofirmado con OpenSSL e importar la clave privada a Wireshark como protocolo de "datos", pero no tuve suerte. Todavía veo los datos como "Datos de aplicación cifrados" .

He intentado seguir estos dos enlaces:

pero proporcionan ejemplos para HTTP . No estoy seguro de si hay alguna diferencia, porque este es un protocolo propietario (aún se envía a través del puerto 443).

Mi objetivo final es poder usar un fuzzer, como Sulley , para detectar vulnerabilidades en el servidor. ¿Alguien recomienda una buena manera de lograr esto?

    
pregunta eliteparakeet 17.06.2013 - 23:59
fuente

3 respuestas

9

Hay dos formas de descifrar el tráfico SSL en tránsito:

El primero es tener la clave privada del servidor. Si tienes eso, puedes enviarlo a Wirehark, que hará el resto. También hay un puñado de herramientas dedicadas para esto. Pero no se puede hacer sin la clave privada del servidor.

El segundo es MITM la conexión. Fiddler hará esto, como se mencionó anteriormente, y hay varias herramientas de grado industrial que también lo harán. El problema es que necesita tener un certificado en el que el cliente confíe. Si utiliza la tienda estándar de Windows CA, entonces será suficiente agregar su certificado de firma como CA en la computadora cliente.

La segunda opción suena más como lo que quieres hacer, y Fiddler se parece mucho a la herramienta que estás buscando, ya que "intuir" con una conexión es exactamente lo que estás tratando de hacer.

Tenga en cuenta que si está trabajando con un protocolo personalizado, lo que está tratando de hacer puede implicar escribir algún código personalizado. Pero es posible.

    
respondido por el tylerl 18.06.2013 - 06:07
fuente
3

Puede probar el depurador de proxy HTTP como fiddler y Burp Suite , porque HTTPS también envía datos a través de la capa SSL, que es lo mismo que su protocolo personalizado sobre la capa SSL. Los depuradores de proxy utilizan el enfoque de hombre en el medio, por lo que debe configurar el certificado de Fiddler para que el cliente confíe en él. No es necesario que genere un certificado utilizando este enfoque.

    
respondido por el neo 18.06.2013 - 05:38
fuente
0

Pruebe tcpcatcher (gratis, Java), o vea mi respuesta a ¿Qué es una manera fácil de realizar un ataque de hombre-en-medio? en SSL? para obtener una breve lista de otras herramientas y métodos.

Si pudo hacer que el servidor use su certificado autofirmado, debería poder usar Wireshark, pero debe limitar los cifrados para que no se pueda realizar un intercambio de claves EDH utilizado (no PFS , y vea el responda a ¿Por qué diferentes técnicas de intercambio de claves para el intercambio de claves SSL? ). El primer enlace que publicaste se refiere al uso de EDH en el "Método Dos" para evitar las escuchas ilegales cuando Eve tiene la clave privada RSA.

    
respondido por el mr.spuratic 18.06.2013 - 12:47
fuente

Lea otras preguntas en las etiquetas