Configuration de Burp Suite pour iOS

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

Installation du certificat Burp sur les appareils iOS

Pour l’analyse du trafic web sécurisé et le SSL pinning sur les appareils iOS, Burp Suite peut être utilisé soit via le Burp Mobile Assistant, soit via une configuration manuelle. Voici un guide résumé des deux méthodes :

Installation automatisée avec Burp Mobile Assistant

Le Burp Mobile Assistant simplifie l’installation du certificat Burp, la configuration du proxy et le SSL pinning. Un guide détaillé est disponible dans la documentation officielle de PortSwigger : https://portswigger.net/burp/documentation/desktop/tools/mobile-assistant/installing

Étapes d’installation manuelle

  1. Configuration du proxy : Commencez par définir Burp comme proxy dans les réglages Wi‑Fi de l’iPhone.
  2. Téléchargement du certificat : Rendez-vous sur http://burp depuis le navigateur de l’appareil pour télécharger le certificat.
  3. Installation du certificat : Installez le profil téléchargé via Settings > General > VPN & Device Management, puis activez la confiance pour la CA PortSwigger dans Certificate Trust Settings.

Configuration d’un proxy d’interception

Cette configuration permet d’analyser le trafic entre l’appareil iOS et Internet via Burp, en nécessitant un réseau Wi‑Fi qui supporte le trafic client-à-client. Si ce n’est pas disponible, une connexion USB via usbmuxd peut servir d’alternative. Les tutoriels de PortSwigger fournissent des instructions détaillées sur la configuration de l’appareil et l’installation du certificat.

Proxy transparent via OpenVPN + iptables REDIRECT

Si l’application cible ignore le proxy HTTP configuré, une alternative consiste à placer l’appareil iOS derrière une passerelle VPN contrôlée par le chercheur et à rediriger transparentement le trafic vers Burp ou mitmproxy.

Ce n’est pas en soi un contournement du certificate pinning. Cela ne résout que la plomberie réseau pour que le trafic de l’appareil atteigne votre proxy d’interception sans configurer de proxy par application ou par appareil. Si l’application réalise un vrai certificate pinning, le déchiffrement HTTPS échouera toujours tant que le pinning n’aura pas été contourné séparément.

Flux typique :

  1. Faites tourner un serveur OpenVPN sur un hôte Linux et connectez l’appareil iOS pour que son trafic arrive sur tun0.
  2. Liez Burp ou mitmproxy à l’IP d’écoute du VPN sur le port 8080.
  3. Activez invisible proxying dans Burp car les clients redirigés ne sont pas aware du proxy et se comporteront comme s’ils se connectaient directement à la destination.
  4. Redirigez les flux TCP 80 et 443 arrivant sur tun0 vers le listener local du proxy.
  5. Ajoutez une règle POSTROUTING MASQUERADE sur l’interface de sortie afin que le trafic proxifié puisse quitter la passerelle et que les réponses reviennent via le VPN.
  6. Installez et faites confiance à la CA du proxy d’interception sur l’appareil iOS afin que les applications qui se fient uniquement au magasin de confiance système acceptent les certificats leaf générés.

Exemples de règles:

# Redirect VPN client traffic into the local interception proxy
iptables -t nat -A PREROUTING -i tun0 -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -i tun0 -p tcp --dport 443 -j REDIRECT --to-ports 8080

# Allow VPN client traffic to egress back to the Internet
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Remarques :

  • Ceci est utile lorsque vous souhaitez forced interception sans modifier l’application cible ou configurer un proxy explicite dans les réglages Wi‑Fi d’iOS.
  • Rediriger 443 vers Burp ne fonctionne que pour les applications qui font confiance à la CA installée ou pour les applications où la validation TLS / pinning a déjà été contournée.
  • Le script d’exemple du dépôt upstream prend une IP et ajoute /24 dans la règle POSTROUTING. En pratique, utilisez le sous-réseau réel du client VPN au lieu de supposer un /24 fixe.
  • Si vous utilisez Burp, activez Proxy –> Options –> Edit listener –> Request handling –> Support invisible proxying.
  • mitmproxy peut être utilisé dans la même configuration s’il est lié à l’IP du listener VPN et que les exigences du mode transparent sont satisfaites.

Configuration avancée pour les appareils jailbreakés

Pour les utilisateurs d’appareils jailbreakés, SSH over USB (via iproxy) offre une méthode pour rediriger le trafic directement via Burp :

  1. Establish SSH Connection : Utilisez iproxy pour rediriger SSH vers localhost, permettant la connexion depuis l’appareil iOS vers l’ordinateur exécutant Burp.
iproxy 2222 22
  1. Remote Port Forwarding : Redirigez le port 8080 de l’appareil iOS vers le localhost de l’ordinateur pour permettre l’accès direct à l’interface de Burp.
ssh -R 8080:localhost:8080 root@localhost -p 2222
  1. Global Proxy Setting : Enfin, configurez les réglages Wi‑Fi de l’appareil iOS pour utiliser un proxy manuel, en dirigeant tout le trafic web via Burp.

Full Network Monitoring/Sniffing

La surveillance du trafic non-HTTP des appareils peut être effectuée efficacement à l’aide de Wireshark, un outil capable de capturer toutes les formes de trafic de données. Pour les appareils iOS, la surveillance en temps réel est facilitée par la création d’une Remote Virtual Interface, un processus détaillé dans this Stack Overflow post. Avant de commencer, l’installation de Wireshark sur un système macOS est requise.

La procédure implique plusieurs étapes clés :

  1. Établissez une connexion entre l’appareil iOS et l’hôte macOS via USB.
  2. Déterminez l’UDID de l’appareil iOS, étape nécessaire pour la surveillance du trafic. Cela peut être fait en exécutant une commande dans le Terminal macOS :
$ rvictl -s <UDID>
Starting device <UDID> [SUCCEEDED] with interface rvi0
  1. Après l’identification de l’UDID, Wireshark doit être ouvert, et l’interface “rvi0” sélectionnée pour la capture des données.
  2. Pour une surveillance ciblée, par exemple la capture du trafic HTTP lié à une adresse IP spécifique, les Capture Filters de Wireshark peuvent être utilisés :

Burp Cert Installation in Simulator

  • Export Burp Certificate

In Proxy –> Options –> Export CA certificate –> Certificate in DER format

  • Glisser-déposer le certificat dans l’émulateur
  • Dans l’émulateur allez dans Settings –> General –> Profile –> PortSwigger CA, et vérifiez le certificat
  • Dans l’émulateur allez dans Settings –> General –> About –> Certificate Trust Settings, et activez PortSwigger CA

Félicitations, vous avez configuré avec succès le certificat CA de Burp dans le simulateur iOS

Tip

Le simulateur iOS utilisera les configurations de proxy de MacOS.

MacOS Proxy Configuration

Étapes pour configurer Burp comme proxy :

  • Allez dans System Preferences –> Network –> Advanced
  • Dans l’onglet Proxies cochez Web Proxy (HTTP) et Secure Web Proxy (HTTPS)
  • Dans les deux options configurez 127.0.0.1:8080

  • Cliquez sur Ok puis sur Apply

References

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks