Nuestro equipo de especialistas pasados varios días de investigación y de juntar de datos, encontramos la respuesta, esperamos que resulte de gran utilidad en tu plan.
Solución:
Lo primero que debe recordar es que Burp es un proxy HTTP(S). No hace nada con ningún dato que no sea HTTP(S) (OK, excepto websockets). Las aplicaciones de Android, por otro lado, pueden usar cualquier protocolo que deseen. Muchos usan HTTP(S), solo porque se adapta al tipo de datos que envían, pero en realidad no es obligatorio.
Cuando una aplicación no usa HTTP(S), ese tráfico no aparecerá en Burp. El ejemplo más obvio de esto es el tráfico de DNS: no verá ninguna solicitud de búsqueda de DNS, incluso si está utilizando un navegador a través de Burp.
Asi que:
- Aplicaciones que se niegan por completo a funcionar. Podrían estar utilizando la fijación de certificados; sin embargo, aquí hay dos opciones. Primero escriba, están buscando un certificado válido para el sitio de destino para instalarlo en el dispositivo. En este caso, instalar el certificado Burp CA los haría funcionar nuevamente. El segundo tipo, utilizan alguna fijación personalizada, que requiere que el servidor proporcione un certificado específico o un certificado firmado por una entrada específica en la cadena de confianza. Estos no se dejarán engañar por el certificado Burp CA.
- Aplicaciones que funcionan sin que se capture ningún paquete. Probablemente no estén usando HTTP(S). Esto podría ser cosas como clientes SSH, servicios de mensajería como Whatsapp o juegos, donde la pérdida de un paquete es menos importante que la mayoría de los paquetes que llegan rápido, lo que se adaptaría mejor a una conexión de red basada en UDP que a una basada en TCP como HTTP. También podrían estar ignorando cualquier configuración de proxy que esté en su lugar, especialmente si solo está interceptando usando una aplicación de proxy HTTP. Para ver estos datos, necesitará una herramienta como Wireshark, que puede manejar otros tipos de datos, y una tarjeta wifi que admita el modo de monitor.
- Aplicaciones que solo muestran algo de tráfico. Si el tráfico que está viendo son paquetes de estadísticas o anuncios, probablemente caigan en la clase 2 anterior: la mayoría de los sistemas de estadísticas parecen usar HTTP (S) porque es relativamente fácil de implementar en cualquier cosa y, por lo general, debe tener algún tipo de HTTP. conexión abierta para descargar anuncios de todos modos.
- Aplicaciones que en realidad no se conectan. Hay algunas aplicaciones que parecen estar conectadas a Internet, pero en realidad no lo hacen, o solo lo hacen de forma irregular. Estos pueden incluir aplicaciones de horarios, algunos juegos (donde los puntajes más altos se actualizan diariamente, por ejemplo) o cualquier cosa donde sea posible almacenar datos localmente en su mayor parte (las aplicaciones de mapas pueden almacenar el área “habitual” localmente y hacer llamadas para reseñas de atracciones o lugares más lejanos). En este caso, es posible que no los haya visto intentar conectarse mientras miraba.
Sugeriría mirar el tráfico con Wireshark, si puede, y ver qué protocolos se están utilizando, luego profundice en los interesantes usando el software apropiado, teniendo en cuenta que algunos son intencionalmente difíciles de inspeccionar: los paquetes encriptados de Whatsapp deberían ser ilegibles. , de lo contrario tienen algo muy mal!
Me encontré con un problema similar al hacer una prueba de una aplicación de iPhone. La aplicación no usaba las bibliotecas nativas y no admitía el proxy http. Para “arreglar” esto, reenvié todo el tráfico de forma transparente al proxy Burp. Consulte ¿Cómo se captura TODO el tráfico de una aplicación de Android? para obtener una descripción de esta configuración.
Algunas aplicaciones utilizan la fijación de certificados. Algunas aplicaciones anclarán el primer certificado que vea, otras aplicaciones lo tienen codificado en la aplicación. En el primer caso, solo tienes que asegurarte de que el tráfico pasará por tu proxy cuando lo ejecutes por primera vez.
Creo que verá una advertencia en la pestaña de alerta Burps si el cliente se desconecta prematuramente (rechaza el certificado).
En este último, es un poco más difícil ya que tendrás que modificar el propio binario.
No he intentado subvertir la fijación de certificados desde una aplicación de Android, pero este enlace parece un buen enfoque.