Eliminación de SSL de Wireshark

1

Bueno, esta pregunta podría hacerse en los foros de Wireshark o en los foros de Stackoverflow, pero creo que la pregunta incluye los factores de seguridad y desarrollo, por lo que creo que el foro de Seguridad de la información es el lugar adecuado para formular esta pregunta. Bien directo al punto. Estos son los pasos que he seguido hasta que encontré un problema.

  1. Tengo un sitio web que se ejecuta en un protocolo HTTPS que sirve la aplicación de Android
  2. Generalmente depuro solicitudes / respuestas a través de Wireshark ejecutándose en el sistema operativo Windows.
  3. Solicité la clave privada al programador del servidor para poder adjuntarla a Wireshark.
  4. El programador del servidor dijo que no sabe dónde está la clave ahora, ya que la clave está en una imagen de Docker, pero la buscará pronto.
  5. Todavía necesitaba depurar mi aplicación en lugar de copiar y pegar Log.d () en toda mi aplicación de Android.
  6. descubrí que había una aplicación llamada "SSL" en Google Playstore y la descargué y probé.
  7. instala un "certificado de captura de paquetes" (que Android es bastante sospechoso porque es un certificado de terceros)
  8. lo instalé porque mi teléfono de prueba es un teléfono ficticio
  9. comenzó a capturar paquetes HTTPS que se han descifrado

¿Cómo puede funcionar esto realmente? esta aplicación, obviamente, sabe cómo recuperar paquetes que se dirigen a otras aplicaciones. Pero, ¿cómo se puede descifrar el ssl? ¿O es al revés? ¿Están las aplicaciones informando los paquetes HTTP descifrados a esta aplicación? Finalmente, ¿puede Wireshark descifrar paquetes igual que la aplicación principal al intercambiar claves con el servidor?

    
pregunta ksp0422 18.05.2016 - 15:53
fuente

1 respuesta

1

Para empezar, no entraré en demasiados detalles para esta respuesta. Lea más sobre HTTPS y el sistema de certificados si tiene curiosidad ;-)

HTTPS necesita certificados para funcionar. Estos certificados pretenden ser una garantía de que está hablando con el servidor correcto (y no con el servidor de un intruso). Solo el cifrado (sin esta autenticación) sería bastante inútil, ya que sería trivial interceptar y descifrar el tráfico.

Para administrar todo este material de certificación, usamos una Infraestructura de clave pública . Su teléfono confía solo en certificados firmados por una autoridad de certificación.

Al instalar la aplicación, mencionó en el paso 7 que importó un "certificado de captura de paquetes". Ahora su teléfono confía en todo lo que confiaba antes, además de todos los certificados firmados por el "certificado de captura de paquetes".

Ahora la aplicación puede actuar como un proxy entre su dispositivo y su aplicación web. Descifra el tráfico para que pueda mostrar el contenido del paquete y luego lo vuelve a cifrar con su propia conexión segura a la aplicación web. Esto es similar a un ataque Man-in-the-middle . Esto solo funciona porque confiaste en el certificado. (Si no confiaras en el certificado, es probable que tu teléfono arroje un error de conexión).

¿Pero cómo obtiene la aplicación los paquetes? Probablemente utiliza la API de VPN de Android y se presenta al sistema de Android como un túnel de VPN. Por lo tanto, Android reenvía todos los paquetes a la aplicación.

Wireshark no se puede usar como un proxy, ya que wirehark solo escucha el tráfico y no altera ni inserta nuevas solicitudes. Si desea otra herramienta que pueda interceptar HTTPS, intente OWASP ZAP , Suite Burp o mitmproxy .

    
respondido por el Lukas 18.05.2016 - 16:35
fuente

Lea otras preguntas en las etiquetas