Configurar la solución de dos proxy con mitmproxy para la investigación de dispositivos móviles de Facebook
Cuando Meta implementó el protocolo TLS 1.3 en sus apps para celulares para aumentar la seguridad de extremo a extremo, algunos investigadores de seguridad descubrieron que ya no podÃan interceptar el tráfico de las apps para celulares de Meta, como Facebook, con Burp Suite, incluso cuando usaban la configuración de Whitehat. Mientras seguimos diagnosticando este problema (creemos que está relacionado con un error de JDK en el análisis de registros TLS), querÃamos publicar una solución alternativa que permitiera a los investigadores usar Burp Suite para las pruebas de apps para celulares.
Usar mitmproxy como proxy alternativo
mitmproxy es un servidor proxy conocido que puede realizar muchas funciones útiles, como grabar el tráfico que pasa por el proxy, interceptar, asociar/reemplazar, manipular el tráfico, etc.
Durante nuestras pruebas, descubrimos que mitmproxy pudo transmitir el tráfico desde la app de Facebook para celulares con su configuración predeterminada, sin cambios especiales. Si bien solo sirve para inspeccionar el tráfico, mitmproxy es una buena opción para los investigadores que solo quieren supervisar el tráfico fuera de Burp Suite.
Sin embargo, sabemos que muchos investigadores se sienten a gusto con Burp Suite y utilizan el ecosistema de plugins para crear funciones de investigación avanzadas. Afortunadamente, mitmproxy puede ofrecer una solución a los investigadores mediante su configuración de proxy ascendente.
Usar mitmproxy con Burp como proxy ascendente
En esta configuración, usamos mitmproxy como una capa proxy que degradará el tráfico TLS 1.3 entrante a TLS 1.2 y, luego, lo reenviará a Burp. La cadena se ve asÃ:
Usaremos los siguientes puertos:
mitmproxyescuchará en el puerto8645.- Burp Proxy escuchará en el puerto
8646. - El dispositivo móvil se conectará al proxy en el puerto
8645.
Ejecutaremos mitmproxy con los siguientes argumentos de lÃnea de comandos. De esta manera, se configurará un agente de escucha en el puerto 8645 y se garantizará que el tráfico proxy que salga de mitmproxy use solo TLS 1.2 (el tráfico que se envÃa a Burp Proxy).
mitmproxy --mode upstream:http://127.0.0.1:8646 --set tls_version_server_min=TLS1_2 --set tls_version_server_max=TLS1_2 --ssl-insecure -p 8645Configuraremos Burp Proxy en el puerto 8646 de la forma habitual.
Configuraremos la app de Facebook para celulares a través de la configuración de Whitehat para "Proxy para solicitudes de la API de la plataforma" en <lab machine IP>:8645 p. ej. 10.10.11.159:8645 y nos aseguraremos de que la fijación de certificados esté desactivada con la opción "Permitir certificados descargados por el usuario" activada. Ten en cuenta que, con esta configuración, la opción de TLS 1.3 no es relevante y se puede dejar en el valor predeterminado.
Asegúrate de instalar el certificado de CA de mitmproxy en el dispositivo según estas instrucciones.
Una vez reiniciada la app de Facebook, deberÃas ver el tráfico pasando tanto a mitmproxy como a Burp Suite.