Burp + Genymotion: no todo el tráfico de la aplicación en el emulador se ha procesado a través de Burp

1

He configurado Burp + Genymotion así: enlace para realizar pruebas de penetración en Aplicaciones de Android para el trabajo.

Las configuraciones de Wifi de Genymotion (Android 6.0.0, API 23) son:

proxy: 10.0.3.2, puerto: 8080, y el certificado de Portswigger CA está correctamente instalado.

Configuración de Burp (v1.7.21): escuchas de proxy que escuchan "solo bucle invertido" para 127.0.0.1:8080

Mi máquina es una PC de escritorio con Windows 10 Pro (1703).

Esta configuración funciona para interceptar casi todo el tráfico de los navegadores y aplicaciones, también https.

Pero de alguna manera, algunas aplicaciones aún logran canalizar un poco de tráfico alrededor de burp.

¿Hay alguna forma de interceptar ese tráfico también?

Gracias

    
pregunta Martin Fürholz 16.05.2017 - 08:43
fuente

2 respuestas

1

Hay 3 casos probables:

  1. La aplicación de Android establece otro proxy en sus solicitudes http, por lo tanto, evita el proxy del sistema y burpsuite.
  2. La aplicación configura sus controladores http para ignorar la configuración del proxy de Android y conectarse directamente al destino.
  3. La aplicación está utilizando un protocolo que no es http.

Si 1 o 2 es el caso , tendrás que usar Wirehark o técnicas de ingeniería inversa para encontrar los dominios con los que interactúa la aplicación, digamos xxx.com y yyy.org.
Luego tiene que usar adb shell para modificar / etc / hosts, asumamos que Burp está escuchando el 10.0.3.2, agregue las siguientes líneas a / etc / hosts:

10.0.3.2 xxx.com  
10.0.3.2 yyy.org

Es posible que deba volver a montar la partición del sistema como "rw" para poder cambiar / etc / hosts:

mount -o rw,remount,rw /system

Luego, bajo burp proxy, configúrelo para que escuche en el puerto 80 y 443, luego en la configuración de cada uno de estos escuchas habilite " Opción de proxy invisible ", si hay tráfico http / https enviado por la aplicación, ahora podrá verlos / interceptarlos en burp.

Estamos haciendo que el dispositivo resuelva los nombres de dominio de la aplicación a la dirección de nuestro burpsuite. También podemos cambiar el DNS del dispositivo a nuestro servidor controlado que devuelve la dirección de burp para todas las solicitudes. Esta solución se queda corta si la aplicación se conecta directamente a direcciones IP en lugar de nombres de dominio. Si la aplicación utiliza protocolos no http, burpsuite no podrá captar el tráfico.

    
respondido por el Silverfox 16.07.2017 - 08:21
fuente
0

Estoy pensando que esas aplicaciones usan Fijación de certificados . Esas aplicaciones rechazan el certificado de Burp porque esperan sus propios certificados. Dado que Burp necesita su propio certificado para MITM las conexiones, no logra descifrar la conexión. Puede consultar la pestaña Alertas en Burp Suite para ver las conexiones fallidas.

Tienes un par de opciones:

  • Portswigger lanzó un Asistente móvil de Burp Suite . Pero funciona para iOS 8 y 9, lo cual no es bueno para ti. Dice en la página:

      

    Puede intentar evadir la colocación de certificados SSL en aplicaciones seleccionadas, lo que permite a Burp Suite romper sus conexiones HTTPS e interceptar, inspeccionar y modificar todo el tráfico. (Compatible con iOS 8 y 9).

  • Puede usar la aplicación SSLUnpinning_Xposed (no tengo la reputación suficiente para publicar más de 2 enlaces, solo busque el nombre en Google), que es una aplicación similar a la anterior. Funciona solo en los dispositivos Android, pero requiere un dispositivo rooteado y un marco Xposed instalado. No tuve éxito en la instalación del framework Xposed en un emulador, pero puedes intentarlo de todos modos. Esta aplicación no garantiza que funcione porque algunas aplicaciones toman precauciones para evitar que la aplicación SSLUnpinning_Xposed funcione correctamente.

  • Por último, puede aplicar ingeniería inversa a la aplicación y modificar la lógica de fijación de certificados para que la aplicación acepte el certificado de Burp. Esta manera está garantizada para trabajar pero más difícil de hacer. Si la aplicación está ofuscada, es posible que deba leer y entender el código Smali para encontrar la lógica de fijación de certificados. Si está intentando MITM aplicaciones bancarias , recomendaría estas opciones porque otras formas no funcionarán la mayor parte del tiempo. Hay grandes artículos en internet sobre este tema. Por ejemplo, puede google Anular la asignación de certificados en Android para diversión y beneficio y hacer clic en el primer enlace.

respondido por el zapuya-akgq701 16.05.2017 - 09:50
fuente

Lea otras preguntas en las etiquetas