Forma óptima de capturar el tráfico HTTP (S) en aplicaciones iOS que no son compatibles con el proxy

3

Estoy intentando capturar el tráfico HTTP (S) desde una aplicación de Xamarin para iOS que no conoce el proxy. Las herramientas actuales que tengo disponibles son una Mac con Linux Mint VM, Xcode e iOS, Burp Suite Community Edition, Charles Proxy y Wireshark.

Estrategias

He probado las siguientes estrategias con varios grados de éxito (pero nunca éxito total):

Burp Suite y Charles Proxy

Configuración: Burp Suite / Charles Proxy ejecutándose en una Mac, con el certificado CA del proxy instalado en el dispositivo iOS. El dispositivo iOS está configurado para usar un proxy HTTP.

Problema: solo intercepta ciertas solicitudes no realizadas por la API nativa HttpClient de Xamarin, como Google Analytics, que no es útil para analizar la API de interés.

Wireshark

Configuración: el dispositivo iOS conectado mediante un cable USB a la Mac, creó una interfaz de red en la Mac por esta guía para capturar paquetes directamente desde el dispositivo iOS permitiendo que Wireshark lea desde esa interfaz de red.

Problema: todas las solicitudes son HTTPS y no se pueden descifrar.

VPN y Burp Suite

Configuración: Al hacer una VPN a la que se conecta el dispositivo iOS, todo el tráfico se enrutará a través de esa VPN y en Burp Suite. La VPN está configurada en una Linux Mint VM con su adaptador de red conectado a la tarjeta Wi-Fi de mi Mac.

Problema: seguí parcialmente un tutorial que describe una VPN PPTP con Burp Suite, pero iOS 10 y superior ha dejado de ser compatible con PPTP. Los intentos de replicar con OpenVPN dieron resultados insatisfactorios (otra publicación en ServerFault here ).

Pregunta del día

¿Cómo se puede interceptar el tráfico HTTP (S) de una aplicación móvil de iOS que no respeta la configuración del proxy del sistema de manera efectiva y (con suerte relativamente fácil)?

    
pregunta Pan Ziyue 29.07.2018 - 12:21
fuente

1 respuesta

2

Este ha sido un giro bastante interesante de los eventos, aparentemente, el problema con el método VPN / Burp Suite tenía que ver con mi configuración del proxy invisible de Burp Suite (en el que descuidé algunas veces la solución de problemas), como se responde en el pregunta de ServerFault que publiqué anteriormente . Para contribuir de nuevo a la comunidad, ¡aquí hay un tutorial sobre cómo MITM una aplicación iOS > 10 no compatible con proxy!

Guía sobre MIT en una aplicación de iOS no compatible con proxy para iOS 10 y superior

Configurando la VM

Configure una VM de Linux de su elección (usé Linux Mint, pero las distribuciones basadas en Ubuntu y Debian funcionan igual de bien con el resto del tutorial), y descarga Burp Suite , preferiblemente la versión JAR, ya que es más portátil.

Instale OpenVPN según . Verifique que su dispositivo iOS pueda conectarse a la VPN y que pueda acceder a Internet.

iptables de configuración

Ya debería haber configurado su iptables según la guía anterior para enmascarar las conexiones de clientes. Ahora tiene que configurar iptables para reenviar todas las solicitudes HTTP y HTTPS de la interfaz tun0 de OpenVPN al puerto 8080 (o cualquier puerto que use su copia de Burp Suite)

# iptables -t nat -A PREROUTING -i tun0 -p tcp --dport 80 -j REDIRECT --to-port 8080
# iptables -t nat -A PREROUTING -i tun0 -p tcp --dport 443 -j REDIRECT --to-port 8080

El bit de diversión

Inicie Burp Suite, asegurándose de:

  1. Deshabilitar intercepción : no desea detener e inspeccionar / editar todas las conexiones a menos que necesite esa función
  2. Proxy > Opciones > Oyentes Proxy > Edita y habilita la escucha en todas las interfaces
  3. Proxy > Opciones > Oyentes Proxy > Editar > ¡Solicita el manejo y habilita el proxy invisible o ninguno de los anteriores funcionará!

Diviértete;)

    
respondido por el Pan Ziyue 29.07.2018 - 16:13
fuente

Lea otras preguntas en las etiquetas