web-dev-qa-db-fra.com

Manière optimale de capturer le trafic HTTP (S) sur les applications iOS proxy-ignorées

J'essaie de capturer le trafic HTTP (S) à partir d'une application Xamarin iOS proxy-inattendue. Les outils actuels que j'ai disponibles sont un Mac avec une machine VM Linux Mint VM, Xcode et IOS Developer Tools, Burp Suite Community Edition, Charles Proxy et Wireshark.

Stratégies

J'ai testé les stratégies suivantes avec divers degrés de réussite (mais jamais plein succès):

Burp Suite et Proxy Charles

Configuration: Burp Suite/Charles Proxy s'exécutant sur un Mac, avec le certificat de CA proxy installé sur le périphérique IOS. Le périphérique IOS est configuré pour utiliser un proxy HTTP.

Problème: intercepte uniquement certaines demandes non formulées par l'API natif HttpClient de Xamarin, telles que Google Analytics, qui n'est pas utile pour analyser l'API d'intérêt.

Filtration

Configuration: périphérique iOS connecté via un câble USB au Mac, a créé une interface réseau sur le Mac par ce guide afin de capturer des paquets directs à partir du périphérique IOS en laissant Wireshark à partir de cette interface réseau.

Problème: Toutes les demandes sont HTTPS et ne peuvent pas être déchiffrées.

Suite VPN et Burp

Configuration: En faisant un VPN que le périphérique IOS se connecte à, tout le trafic sera acheminé via ce VPN et dans la suite Burp. Le VPN est configuré sur une menthe Linux VM avec son adaptateur réseau ponté sur la carte Wi-Fi de My Mac.

Problème: J'ai partiellement suivi n didacticiel qui décrit un PPTP VPN avec Suite Burp, mais iOS 10 et supérieur a abandonné le support de PPTP. Les tentatives de reproduction avec OpenVPN cédaient peu satisfaisants. Résultats (un autre message sur Serverfault ici ).

Question du jour

Comment fonctionne-t-elle efficacement et (j'espère relativement facilement) le trafic http (s) à partir d'une application mobile iOS qui ne respecte pas les paramètres de proxy du système?

3
Pan Ziyue

Cela a été un tournant d'événements assez intéressant, apparemment, le problème avec la méthode VPN/Burp Suite a eu à voir avec ma configuration de la proxyation invisible de Burp Suite (dans laquelle j'ai négligé après avoir dépannage plusieurs fois) comme répondu dans le Question Serverfault I Publié précédemment . Pour contribuer à la communauté, voici un didacticiel sur la manière de Mitm une application de proxy-inestimation IOS> 10!

Guide sur Mitm'ing une application iOS proxy-ignorante pour iOS 10 et plus

Configuration du VM

Configurez un linux VM de votre choix (j'ai utilisé Linux Mint, mais les distributions basées à Ubuntu et Debian travaillent aussi bien avec le reste du tutoriel), et Télécharger Burp Suite , de préférence la version JAR telle qu'elle est plus portable.

Installez OpenVPN selon Guide de DigitalOcean . Vérifiez que votre appareil iOS peut se connecter au VPN et qu'il peut accéder à Internet.

iptables Configuration

Vous avez déjà configuré votre iptables selon le guide ci-dessus pour masquer les connexions client. Vous devez maintenant configurer iptables pour transférer toutes les demandes HTTP et HTTPS auprès de OpenVPN tun0 Interface avec le port 8080 (ou quel que soit le port de votre copie 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

Le bit d'amusement

Lancez Burp Suite, en veillant à:

  1. Désactiver l'interception : Vous ne souhaitez pas arrêter et inspecter/éditer chaque connexion sauf si vous avez besoin de cette fonctionnalité
  2. Proxy> Options> Soutiteurs proxy> Modifier et activer l'écoute sur toutes les interfaces
  3. Proxy> Options> Soutiteurs proxy> Edition> Demande Manipulation et activer la proxyation invisible ou aucune de ces réponses ne fonctionnera!

S'amuser ;)

3
Pan Ziyue