
¡El nuevo puente entre Burp Suite y Frida!
Brida es una extensión de Burp Suite que, funcionando como puente entre Burp Suite y Frida, te permite usar y manipular los propios métodos de las aplicaciones mientras alteras el tráfico intercambiado entre las aplicaciones y sus servicios/servidores backend. Soporta todas las plataformas compatibles con Frida (Windows, macOS, Linux, iOS, Android y QNX).
Esta idea surge de una necesidad que nace durante el análisis de algunas aplicaciones móviles que utilizan criptografía simétrica fuerte con claves aleatorias; sin conocer la clave secreta correcta, no era posible modificar los datos ni siquiera mediante Burp con un plugin personalizado. En términos más generales, la lógica de las aplicaciones podría basarse en tokens criptográficos, podría utilizar un algoritmo complejo de desafío-respuesta, etc. ¿Cómo podemos manipular los mensajes? La mayoría de las veces, el único enfoque viable es descompilar/desensamblar la aplicación, identificar las funciones o métodos que nos interesan y reimplementarlos. Este enfoque obviamente consume tiempo y no siempre es realmente viable: por ejemplo, la generación de tokens y/o las rutinas de cifrado podrían basarse en material criptográfico estrictamente ligado al dispositivo (estado) o almacenado dentro de áreas protegidas y, por lo tanto, no directamente accesibles... Ahí es donde Brida resulta útil: en lugar de intentar extraer claves/certificados y reescribir las rutinas que nos interesan, ¿por qué no dejar que la aplicación haga el trabajo sucio por nosotros?
La respuesta corta es ¡todos!
La respuesta larga es que Brida es una colección de herramientas, algunas creadas para acelerar las evaluaciones móviles diarias y ayudar a los nuevos usuarios de Frida, mientras que otras están destinadas a abordar situaciones muy complejas, en las que Brida realmente puede marcar la diferencia.
Las herramientas que pueden ser valiosas para manejar y acelerar las evaluaciones móviles diarias son las siguientes:
Sin embargo, la idea que llevó a la creación de Brida fue ayudar a los pentesters/reversers/hackers a analizar los servicios web de aplicaciones móviles objetivo donde existen características de seguridad complejas para proteger la confidencialidad e integridad de las solicitudes y respuestas HTTP. El cifrado, la ofuscación y las rutinas de firma ejecutadas en las solicitudes y respuestas pueden hacer que el trabajo de los testers sea muy difícil y requiera mucho tiempo, porque generalmente es necesario revertir los mecanismos de seguridad e implementar un plugin de Burp Suite o una herramienta externa que primero descifre/desofusque los mensajes HTTP y luego eventualmente cifre/reponga/firme los mensajes editados. Lo mismo aplica también a algunos escenarios no relacionados con la seguridad, como por ejemplo si se utiliza un protocolo binario personalizado para formatear el cuerpo de las solicitudes/respuestas HTTP por razones de interoperabilidad o rendimiento.
Brida intenta acelerar esos procedimientos tanto como sea posible, limitando el esfuerzo de reversión y eliminando por completo (en la mayoría de las situaciones) el esfuerzo de desarrollo, al ofrecer un motor que permite crear gráficamente plugins personalizados que inspeccionan y editan solicitudes y respuestas HTTP usando las mismas funciones móviles utilizadas por la aplicación móvil misma, gracias a Frida. Tomando como ejemplo una aplicación móvil que cifra/descifra todas las solicitudes y respuestas con un algoritmo de cifrado personalizado/desconocido, Brida permite crear gráficamente un plugin personalizado simple que descifra los mensajes HTTP cifrados utilizando directamente el código móvil utilizado por la aplicación móvil para hacer el trabajo. Otro ejemplo puede ser un plugin personalizado que actualice de manera transparente las firmas de las solicitudes HTTP firmadas cuando se envían al backend utilizando la misma funcionalidad móvil utilizada por la aplicación misma.
Más en detalle, Brida permite crear gráficamente los plugins que:
Y si el motor de plugins personalizados de Brida no es suficiente para nuestras situaciones súper complejas, también es posible escribir extensiones externas de Burp Suite en Python/Java que dejen a Brida la tarea de ejecutar las funciones de la aplicación móvil objetivo sobre los datos de la extensión. La herramienta "Generate Stubs" de Brida genera el código Java o Python que se puede pegar en extensiones externas de Python o Java para usar el puente de Brida.
Frida 17 trae actualizaciones importantes en la herramienta misma y en sus APIs de JavaScript. Fue necesaria una reestructuración importante del código JS, que rompió la compatibilidad con versiones anteriores de frida. En consecuencia, las últimas versiones de Brida requieren una versión de frida mayor o igual a 17. Si necesitas usar una versión anterior de Frida, puedes descargar la versión 0.6pre desde los lanzamientos de GitHub.
Requisitos:
pip install frida frida-tools pyro4)Instalación desde GitHub: