Konfiguracja Burp Suite dla iOS

Tip

Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Ucz się i ćwicz Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Wsparcie dla HackTricks

Instalacja certyfikatu Burp na urządzeniach iOS

Do analizy bezpiecznego ruchu webowego i SSL pinning na urządzeniach iOS można użyć Burp Suite poprzez Burp Mobile Assistant lub wykonać ręczną konfigurację. Poniżej znajduje się skrócony przewodnik dotyczący obu metod:

Automatyczna instalacja z Burp Mobile Assistant

Burp Mobile Assistant upraszcza proces instalacji certyfikatu Burp, konfiguracji proxy i SSL Pinning. Szczegółowe instrukcje znajdują się w PortSwigger’s official documentation.

Ręczna instalacja — kroki

  1. Konfiguracja proxy: Rozpocznij od ustawienia Burp jako proxy w ustawieniach Wi‑Fi iPhone’a.
  2. Pobranie certyfikatu: Przejdź do http://burp w przeglądarce urządzenia, aby pobrać certyfikat.
  3. Instalacja certyfikatu: Zainstaluj pobrany profil przez Settings > General > VPN & Device Management, następnie włącz zaufanie do PortSwigger CA w Certificate Trust Settings.

Konfiguracja proxy przechwytującego

Ta konfiguracja umożliwia analizę ruchu między urządzeniem iOS a internetem przez Burp i wymaga sieci Wi‑Fi obsługującej ruch klient‑do‑klienta. Jeśli to niemożliwe, alternatywą może być połączenie USB za pomocą usbmuxd. Tutoriale PortSwigger zawierają szczegółowe instrukcje dotyczące konfiguracji urządzenia oraz instalacji certyfikatu.

Przezroczyste proxy przez OpenVPN + iptables REDIRECT

Jeśli targetowana aplikacja ignoruje skonfigurowane proxy HTTP, alternatywą jest umieszczenie urządzenia iOS za bramą VPN kontrolowaną przez badacza i przeźroczyste przekierowanie ruchu do Burp lub mitmproxy.

To nie jest samo w sobie obejście certificate pinning. Rozwiązuje tylko kwestie sieciowe, tak aby ruch urządzenia dotarł do twojego interception proxy bez konfigurowania proxy per‑app lub per‑device. Jeśli aplikacja stosuje rzeczywiste certificate pinning, deszyfrowanie HTTPS nadal się nie powiedzie, dopóki pinning nie zostanie osobno obejścięty.

Typowy przebieg:

  1. Uruchom serwer OpenVPN na hoście Linux i podłącz urządzenie iOS tak, aby jego ruch trafiał na tun0.
  2. Powiąż Burp lub mitmproxy z adresem nasłuchu VPN na porcie 8080.
  3. Włącz invisible proxying w Burp, ponieważ przekierowani klienci nie są świadomi proxya i będą komunikować się, jakby łączyli się bezpośrednio z celem.
  4. Przekieruj TCP 80 i 443 przychodzące na tun0 do lokalnego nasłuchu proxy.
  5. Dodaj regułę POSTROUTING MASQUERADE na interfejsie wychodzącym, aby przekierowany ruch mógł opuszczać bramę, a odpowiedzi wracały przez VPN.
  6. Zainstaluj i oznacz jako zaufany CA interception proxy na urządzeniu iOS, aby aplikacje opierające się wyłącznie na systemowym magazynie zaufania zaakceptowały wygenerowane certyfikaty końcowe.

Przykładowe reguły:

# 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

Notes:

  • To przydatne, gdy chcesz forced interception bez zmieniania docelowej aplikacji lub konfigurowania jawnego proxy w ustawieniach Wi‑Fi iOS.
  • Przekierowanie 443 na Burp działa tylko dla aplikacji, które ufają zainstalowanemu CA albo dla aplikacji, w których walidacja TLS / pinning została już ominięta.
  • Przykładowy skrypt z repo upstream pobiera IP i dopisuje /24 w regule POSTROUTING. W praktyce użyj actual VPN client subnet zamiast zakładać stałe /24.
  • Jeśli używasz Burp, włącz Proxy –> Options –> Edit listener –> Request handling –> Support invisible proxying.
  • mitmproxy może być użyty w tej samej konfiguracji, jeśli jest związany z VPN listener IP i spełnione są wymagania transparent-mode.

Zaawansowana konfiguracja dla urządzeń z jailbreakiem

Dla użytkowników z urządzeniami z jailbreakiem, SSH over USB (przez iproxy) oferuje metodę routingu ruchu bezpośrednio przez Burp:

  1. Establish SSH Connection: Użyj iproxy do przekierowania SSH na localhost, co pozwoli urządzeniu iOS połączyć się z komputerem uruchamiającym Burp.
iproxy 2222 22
  1. Remote Port Forwarding: Przekieruj port 8080 urządzenia iOS na localhost komputera, aby umożliwić bezpośredni dostęp do interfejsu Burp.
ssh -R 8080:localhost:8080 root@localhost -p 2222
  1. Global Proxy Setting: Na koniec skonfiguruj ustawienia Wi‑Fi na urządzeniu iOS, aby używały manualnego proxy, kierując cały ruch webowy przez Burp.

Full Network Monitoring/Sniffing

Monitorowanie ruchu urządzeń nie-HTTP można efektywnie przeprowadzić za pomocą Wireshark, narzędzia zdolnego do przechwytywania wszelkich form ruchu danych. Dla urządzeń iOS monitorowanie ruchu w czasie rzeczywistym ułatwia stworzenie Remote Virtual Interface, proces szczegółowo opisany w this Stack Overflow post. Przed rozpoczęciem wymagana jest instalacja Wireshark na systemie macOS.

Procedura obejmuje kilka kluczowych kroków:

  1. Nawiąż połączenie między urządzeniem iOS a hostem macOS przez USB.
  2. Określ UDID urządzenia iOS, konieczny krok do monitorowania ruchu. Można to zrobić, wykonując polecenie w Terminalu macOS:
$ rvictl -s <UDID>
Starting device <UDID> [SUCCEEDED] with interface rvi0
  1. Po zidentyfikowaniu UDID, należy otworzyć Wireshark i wybrać interfejs “rvi0” do przechwytywania danych.
  2. Do monitorowania ukierunkowanego, np. przechwytywania ruchu HTTP związanego z konkretnym adresem IP, można użyć Capture Filters w Wireshark:

Burp Cert Installation in Simulator

  • Export Burp Certificate

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

  • Drag and Drop certyfikat do Emulatora
  • W Emulatorze przejdź do Settings –> General –> Profile –> PortSwigger CA i zweryfikuj certyfikat
  • W Emulatorze przejdź do Settings –> General –> About –> Certificate Trust Settings i włącz PortSwigger CA

Gratulacje — pomyślnie skonfigurowano certyfikat Burp CA w iOS simulatorze

Tip

iOS simulator będzie korzystał z konfiguracji proxy MacOS.

Konfiguracja proxy na MacOS

Kroki konfiguracji Burp jako proxy:

  • Go to System Preferences –> Network –> Advanced
  • In Proxies tab mark Web Proxy (HTTP) and Secure Web Proxy (HTTPS)
  • In both options configure 127.0.0.1:8080

  • Kliknij Ok i następnie Apply

Źródła

Tip

Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Ucz się i ćwicz Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Wsparcie dla HackTricks