Android: captura de solicitudes HTTP con un dispositivo Android no rooteado

88

Tengo una aplicación de Android que usa un jar de terceros. La solicitud Http se envía desde un jar de terceros al servidor cuando la aplicación se está ejecutando. Necesito capturar la solicitud HTTP que se envía desde un jar de terceros. Me pregunto si hay una manera fácil de implementar con un dispositivo no rooteado

Para comenzar: intenté descargar "proxyDroid" pero necesita un teléfono rooteado. También intenté descargar "shark for root" con "shark reader", que también necesita un dispositivo rooteado. Probé muchas otras aplicaciones que podrían capturar la solicitud completa, pero todo lo que necesita. es dispositivo rooteado

Necesito algo que pueda hacer Fiddler / Wireshark por Windows. Un analizador de paquetes de red que podría integrarse fácilmente con la aplicación de Android que podría proporcionar un objeto de solicitud con todos los campos de encabezado.

Venkatesh
fuente
¿Es esta su "aplicación para Android"?
CommonsWare
Sí, mi aplicación de Android
Venkatesh
Hola @Venkatesh, ¿alguna vez lograste interceptar solicitudes http con Android no rooteado?
@lalalalalala Nope. No pude lograr esto con un dispositivo no rooteado.
Venkatesh

Respuestas:

77

Puede instalar Charles , un proxy HTTP / monitor HTTP / Proxy inverso que permite a un desarrollador ver todo el tráfico HTTP y SSL / HTTPS entre su máquina e Internet, en su PC o MAC.

Pasos de configuración:

  • Deje su teléfono y PC o MAC en una misma LAN
  • Inicie Charles que instaló (el puerto proxy predeterminado es 8888)
  • Configure la configuración wifi de su teléfono: configure la IP del delegado en su PC o la IP de MAC, el puerto del delegado en 8888
  • Inicie su aplicación en su teléfono. Y supervise las solicitudes http en Charles.
SFeng
fuente
4
este tutorial funcionó bien: jaanus.com/blog/2012/02/12/…
Lionel
17
Desafortunadamente, es un shareware.
flawyte
1
Es posible que desee probar alternativamente la suite de eructos para hacer el mismo trabajo. Es muy potente y gratuito: portswigger.net/burp
gerodim
¿Existe alguna herramienta para hacer lo mismo con el tráfico de sockets web? Me refiero a Android. (Conozco wirehark / fiddler para PC)
Amol M Kulkarni
Qué es para Android
mohsen
17

Acabo de instalar Drony, no es shareware y no requiere root en un teléfono celular con Android 3.xo superior

https://play.google.com/store/apps/details?id=org.sandroproxy.drony

Intercepta las solicitudes y se muestran en un LOG

Mauricio Gracia Gutiérrez
fuente
Esto es lo que estoy buscando, pero quiero un código fuente exacto para esta aplicación. ¿Pueden publicar un enlace para el código fuente para Android?
Smit.Satodia
2
@ Smit.Satodia No sé si comparten / publican el código fuente, si alguien lo encuentra no dude en publicar el enlace como comentario
Mauricio Gracia Gutierrez
2
El código fuente se puede encontrar aquí: github.com/SuppSandroB/sandrop Originalmente estaba alojado en Google Code aquí: code.google.com/archive/p/sandrop
GabLeRoux
1
@JanWytze, si se comunica con los desarrolladores, tal vez ellos puedan ayudarlo con esto.
Mauricio Gracia Gutierrez
17

Hay muchas formas de hacerlo, pero una de ellas es violinista.

Configuración de Fiddler

  1. Ir a opciones
  2. En la pestaña HTTPS , habilite Capturar conexiones HTTPS y Descifrar tráfico HTTPS
  3. En la pestaña Conexiones , habilite Permitir que las computadoras remotas se conecten
  4. Reiniciar Fiddler

Configuración de Android

  1. Conectarse a la misma red
  2. Modificar la configuración de la red
  3. Agregue un proxy para la conexión con la dirección IP de su PC (o nombre de host) y el puerto predeterminado de Fiddler (8888 / puede cambiar eso en la configuración)

Ahora puede ver el registro completo desde su dispositivo en Fiddler

También puede encontrar una instrucción completa aquí.

Arash Hatami
fuente
2
Fiddler beta está disponible en macOS (confiando en mono). Esta es una buena noticia si no tiene una PC.
MacKentoch
Gracias, pero me refiero a todas las computadoras en esta respuesta. PC / Laptop / etc ... :) @MacKentoch
Arash Hatami
6

Puede usar Fiddler como webdebugger http://www.telerik.com/fiddler/web-debugging

Fiddler es una herramienta de depuración del software telerik, que le ayuda a interceptar cada solicitud que se inicia desde su máquina.

Ciudadano Ken
fuente
4
Si bien este enlace puede responder a la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace como referencia. Respuestas de enlace sólo puede ser válida si la página vinculada cambia
Zohar
5

Es 2020 ahora, para la última solución, puede usar Burp Suite para rastrear el tráfico https sin rootear su dispositivo Android.

Pasos:

  1. Instalar Burp Suite

  2. Habilitar proxy

  3. Importe la certificación en su teléfono Android

  4. Cambia tu configuración de Wifi para escuchar el proxy

  5. ¡Lucro!

Escribí el tutorial completo y la captura de pantalla sobre cómo hacerlo aquí: https://www.yodiw.com/monitor-android-network-traffic-with-burp/

yodi
fuente
Sería bueno copiar los datos del sitio a su respuesta aquí. Dado que su sitio puede dejar de funcionar. También SO fomenta las citas en lugar de los enlaces por esta misma razón. Aparte de ese gran tutorial.
Mark
Aunque para ser justos, puede haber sido mejor simplemente mejorar stackoverflow.com/a/39684919/5506988 que escribir otra "respuesta" ... De todos modos, gran trabajo.
Mark
4

puedes usar burp-suite. siga el procedimiento a continuación.

Configurar el oyente de Burp Proxy

En Burp, vaya a la pestaña "Proxy" y luego a la pestaña "Opciones". En la sección "Oyentes proxy", haga clic en el botón "Agregar".

En la pestaña "Vinculación", en el cuadro "Vincular a puerto:", ingrese un número de puerto que no esté actualmente en uso, por ejemplo, "8082". Luego, seleccione la opción "Todas las interfaces" y haga clic en "Aceptar".

Configure su dispositivo para usar el proxy

En su dispositivo Android, vaya al menú "Configuración".

Si su dispositivo aún no está conectado a la red inalámbrica que está utilizando, encienda el botón "Wi-Fi" y toque el botón "Wi-Fi" para acceder al menú "Wi-Fi".

En la tabla "Redes Wi-Fi", busque su red y tóquela para que aparezca el menú de conexión.

Toque "Conectar". Si ha configurado una contraseña, introdúzcala y continúe.

Una vez que esté conectado, mantenga presionado el botón de red para que aparezca el menú contextual. Toque "Modificar configuración de red".

Asegúrese de que la casilla "Mostrar opciones avanzadas" esté marcada.

Cambie la "Configuración de proxy" a "Manual" tocando el botón.

Luego ingrese la IP de la computadora que ejecuta Burp en el "Nombre de host proxy". Ingrese el número de puerto configurado en la sección "Proxy Listeners" anteriormente, en este ejemplo "8082". Toque "Guardar".

Prueba la configuración

En Burp, vaya a la pestaña "Proxy Intercept" y asegúrese de que la intercepción esté "activada" (si el botón dice "La intercepción está desactivada", haga clic en él para alternar el estado de la intercepción).

Abra el navegador en su dispositivo Android y vaya a una página web HTTP (puede visitar una página web HTTPS cuando haya instalado el certificado CA de Burp en su dispositivo Android).

La solicitud debe ser interceptada en Burp.

Vis
fuente
2

SandroProxy parece ser mejor que Drony (del mismo desarrollador): puede (pero no es necesario) ver y analizar cómodamente el tráfico en el navegador de su PC.

También debería funcionar en emuladores.

Nicolai Weitkemper
fuente
1

Configure un https://mitmproxy.org/ como proxy en una misma LAN

  • Fuente abierta
  • Construido en python 3
  • Instalable vía pip
AlexisCaffa
fuente