¿Cómo interceptar y analizar el tráfico de aplicaciones SSL móviles?

3

¿Cuál es la mejor manera de analizar las solicitudes enviadas por una aplicación móvil a través de SSL? El protocolo de comunicación no es necesariamente HTTP / S, por lo que interceptarlos con BURP / ZAP / Fiddler o cualquier otro proxy HTTP no funcionará necesariamente, pero ¿Cómo puedo conseguir que el tráfico llegue al proxy?

He leído material aquí relacionado con temas similares, pero no pude encontrar una descripción de un flujo completo que pudiera seguir para realizar esta tarea.

¿El dispositivo en el que está instalada la aplicación debe estar rooteado para que yo realice esta tarea?

Si la aplicación utiliza la fijación de certificados, ¿todavía hay una manera de hacer esto?

Estoy especialmente interesado en entender cómo funciona el modelo de seguridad de Whatsapp, es decir, qué mecanismo tienen implementado para evitar que un usuario malintencionado recupere el historial de chat de un usuario legítimo (ya que no hay un inicio de sesión real. cookie / otro mecanismo enviado desde el dispositivo que identifica al usuario frente al servidor?)

Mi organización está considerando implementar una aplicación de mensajería que funcione de manera similar y estamos tratando de asegurarnos de que un usuario malintencionado no pueda robar la identidad de un usuario legítimo. (no pretendemos implementar un mecanismo de inicio de sesión)

    
pregunta user3074662 08.02.2015 - 07:56
fuente

3 respuestas

3

Si está activado o tiene acceso a un cuadro de Mac o Linux, una excelente aplicación para interceptar el tráfico https junto con http es MITMProxy . No solo es excelente para ver el tráfico a medida que se pasa, sino que también puede modificarlo muy fácilmente. Todo lo que se necesita para ver el tráfico https es instalar los certificados provistos en el dispositivo que desea interceptar, luego cambiar la configuración del proxy en su dispositivo de destino a la IP de su computadora y configurar el puerto en 8080. Más información está disponible en su documentación .

    
respondido por el ajkblue 08.02.2015 - 17:36
fuente
3
  

¿Cuál es la mejor manera de analizar las solicitudes enviadas por una aplicación móvil?   sobre SSL? El protocolo de comunicación no es necesariamente HTTP / S por lo que   interceptándolos con BURP / ZAP / Fiddler o cualquier otro proxy HTTP   no necesariamente funciona, pero - ¿Cómo obtengo el tráfico para incluso alcanzar el   proxy?

Para los HTTPS clásicos, debes usar Burp / Zap / mitmproxy ya que no hay mejores alternativas que conozca. Realmente no he visto ningún otro protocolo que use las suites SSL / TLS en las aplicaciones, pero intentaría realizar una ingeniería inversa para obtener el protocolo o intentar obtener las claves de cifrado y descifrar el tráfico. Pero llevaría mucho tiempo.

¿Está seguro de que es realmente otro protocolo distinto de HTTPS en un puerto no estándar?

  

¿El dispositivo en el que está instalada la aplicación debe estar   arraigado para que realice esta tarea?

No necesita un dispositivo rooteado para el rastreo de HTTPS, todo lo que tiene que hacer es configurar un proxy y un certificado de confianza. Para otros protocolos - bueno, eso depende ... Puede redirigir todo el tráfico a la puerta de enlace de su elección, pero siempre que el protocolo esté cifrado, creo que no será de gran utilidad para usted.

  

Si la aplicación utiliza el anclaje de certificados, ¿todavía hay una manera de   hacer esto?

Sí, la fijación de certificados se puede omitir en las dos plataformas principales. Ambos requieren raíz, pensamiento.

  • Para Android hay una extensión de sustrato de Cydia llamada SSL Trust Killer que funciona al interceptar ciertas llamadas y modificarlas para que se vuelvan verdaderas durante la validación. A menos que haya una implementación propia de verificación de certificado, esto va a funcionar. De lo contrario, es más probable que haya un error de implementación en la verificación de certificados;)

  • iOS tiene varios mecanismos, el que uso es a través de Snoop-it framework. Si eso no funciona, siempre puedes volver al método swizzling.

  

Me interesa específicamente entender cómo funciona el Whatsapp   el modelo de seguridad funciona, es decir, qué mecanismo tienen implementado para   evitar que un usuario malintencionado recupere el historial de chat de un legítimo   usuario (ya que no hay un inicio de sesión real - ¿Hay una cookie / otra?   Mecanismo enviado desde el dispositivo que identifica al usuario delante de la   servidor?)

     

Mi organización está considerando implementar una aplicación de mensajería   que funciona de una manera similar y estamos tratando de asegurarnos de que una   usuario malicioso no puede robar la identidad de un usuario legítimo. (estamos   sin intención de implementar un mecanismo de inicio de sesión)

Bueno, su mejor opción es contratar a probadores de penetración capaces para la evaluación de seguridad de la aplicación. Creo que la seguridad de WhatsApp debería ser muy alta, ya que tuvieron pocos incidentes de seguridad desagradables y son una organización de alto perfil con una gran base de usuarios y toman la seguridad de una manera seria ... Pero nunca se puede estar muy seguro.

Espero que esta publicación ayude un poco.

    
respondido por el user1164108 08.02.2015 - 18:48
fuente
0

podría usar algunas formas para lograrlo:

si está utilizando un dispositivo Android para dispositivos móviles, puede conectarse a una red inalámbrica doméstica y usar una computadora como host para hacer un MITM (man en el centro) y dirigir todos los paquetes móviles a través de su host y monitorear los paquetes usando Wirehark (?)

Si está usando un emulador como BlueStacks, podría instalar ProxyCap y editar la configuración para redirigir todos los paquetes de bluestacks a través de su ProxyCap local.

hay algunas aplicaciones para instalar en un dispositivo Android para redirigir las aplicaciones a un proxy, pero no funcionan al 100%, la mayoría de las aplicaciones no se aplican a la regla de proxy, Además, un teléfono raíz ofrece más opciones y variedad cuando se mete con este tipo de cosas,

Si encuentra más formas de hacerlo, por favor comparta :)

    
respondido por el nir 08.02.2015 - 14:16
fuente

Lea otras preguntas en las etiquetas