Configuración de Burp Suite en iOS

Tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

Instalación del certificado de Burp en dispositivos iOS

Para el análisis seguro del tráfico web y SSL pinning en dispositivos iOS, se puede utilizar Burp Suite ya sea mediante el Burp Mobile Assistant o vía configuración manual. Abajo hay una guía resumida de ambos métodos:

Instalación automatizada con Burp Mobile Assistant

El Burp Mobile Assistant simplifica el proceso de instalación del certificado de Burp, la configuración del proxy y SSL Pinning. Puedes encontrar una guía detallada en la documentación oficial de PortSwigger.

Pasos para la instalación manual

  1. Configuración del proxy: Empieza configurando Burp como proxy en los ajustes de Wi‑Fi del iPhone.
  2. Descarga del certificado: Navega a http://burp en el navegador del dispositivo para descargar el certificado.
  3. Instalación del certificado: Instala el perfil descargado vía Settings > General > VPN & Device Management, luego habilita la confianza para la PortSwigger CA en Certificate Trust Settings.

Configuración de un proxy de interceptación

La configuración permite el análisis del tráfico entre el dispositivo iOS y la Internet a través de Burp, y requiere una red Wi‑Fi que soporte tráfico cliente‑a‑cliente. Si no está disponible, una conexión USB vía usbmuxd puede servir como alternativa. Los tutoriales de PortSwigger ofrecen instrucciones detalladas sobre la configuración del dispositivo y la instalación del certificado.

Proxy transparente vía OpenVPN + iptables REDIRECT

Si la app objetivo ignora el proxy HTTP configurado, una alternativa es situar el dispositivo iOS detrás de una pasarela VPN controlada por el investigador y redirigir transparentemente el tráfico hacia Burp o mitmproxy.

Esto no es un bypass de certificate pinning por sí solo. Solo resuelve la parte de red para que el tráfico del dispositivo llegue a tu proxy de interceptación sin configurar un proxy por app o por dispositivo. Si la app aplica certificate pinning real, la desencriptación HTTPS seguirá fallando hasta que el pinning se evada por separado.

Flujo típico:

  1. Ejecuta un servidor OpenVPN en un host Linux y conecta el dispositivo iOS para que su tráfico llegue a tun0.
  2. Enlaza Burp o mitmproxy a la IP del listener del VPN en el puerto 8080.
  3. Habilita invisible proxying en Burp, ya que los clientes redirigidos no son conscientes del proxy y se comportarán como si se conectaran directamente al destino.
  4. Redirige los TCP 80 y 443 que llegan por tun0 hacia el listener local del proxy.
  5. Añade una regla POSTROUTING MASQUERADE en la interfaz de salida para que el tráfico proxyado pueda salir del gateway y las respuestas vuelvan por la VPN.
  6. Instala y confía en la CA del proxy de interceptación en el dispositivo iOS para que las apps que dependen únicamente del sistema de confianza acepten los leaf certificates generados.

Ejemplo de reglas:

# 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:

  • Esto es útil cuando quieres una intercepción forzada sin cambiar la app objetivo ni configurar un proxy explícito en los ajustes Wi-Fi de iOS.
  • Redirigir 443 a Burp solo funciona para apps que confían en la CA instalada o para apps donde la validación TLS / pinning ya ha sido eludida.
  • El script de ejemplo del repositorio upstream toma una IP y añade /24 en la regla POSTROUTING. En la práctica, usa la subred real del cliente VPN en lugar de asumir un /24 fijo.
  • Si usas Burp, habilita Proxy –> Options –> Edit listener –> Request handling –> Support invisible proxying.
  • mitmproxy puede usarse en la misma configuración si está vinculado a la IP del listener VPN y se cumplen los requisitos de modo transparente.

Configuración avanzada para dispositivos con jailbreak

Para usuarios con dispositivos con jailbreak, SSH sobre USB (vía iproxy) ofrece un método para enrutar el tráfico directamente a través de Burp:

  1. Establecer conexión SSH: Usa iproxy para reenviar SSH a localhost, permitiendo la conexión desde el dispositivo iOS al ordenador que ejecuta Burp.
iproxy 2222 22
  1. Redirección de puerto remota: Reenvía el puerto 8080 del dispositivo iOS al localhost del ordenador para permitir el acceso directo a la interfaz de Burp.
ssh -R 8080:localhost:8080 root@localhost -p 2222
  1. Ajuste de proxy global: Por último, configura los ajustes Wi-Fi del dispositivo iOS para usar un proxy manual, dirigiendo todo el tráfico web a través de Burp.

Monitoreo/Sniffing completo de la red

El monitoreo del tráfico no HTTP del dispositivo puede realizarse de forma eficiente usando Wireshark, una herramienta capaz de capturar todo tipo de tráfico de datos. Para dispositivos iOS, el monitoreo en tiempo real se facilita creando una Remote Virtual Interface, un proceso detallado en this Stack Overflow post. Antes de empezar, es necesario instalar Wireshark en un sistema macOS.

El procedimiento implica varios pasos clave:

  1. Inicia una conexión entre el dispositivo iOS y el host macOS mediante USB.
  2. Averigua el UDID del dispositivo iOS, un paso necesario para el monitoreo del tráfico. Esto se puede hacer ejecutando un comando en el Terminal de macOS:
$ rvictl -s <UDID>
Starting device <UDID> [SUCCEEDED] with interface rvi0
  1. Después de identificar el UDID, abre Wireshark y selecciona la interfaz “rvi0” para la captura de datos.
  2. Para monitoreo dirigido, como capturar tráfico HTTP relacionado con una IP específica, se pueden emplear los filtros de captura de Wireshark:

Instalación del certificado de Burp en el simulador

  • Exportar el certificado de Burp

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

  • Arrastrar y soltar el certificado dentro del emulador
  • Dentro del emulador ve a Settings –> General –> Profile –> PortSwigger CA, y verifica el certificado
  • Dentro del emulador ve a Settings –> General –> About –> Certificate Trust Settings, y habilita PortSwigger CA

Felicidades, has configurado correctamente el certificado CA de Burp en el simulador de iOS

Tip

El simulador de iOS usará las configuraciones de proxy de MacOS.

Configuración del proxy en MacOS

Pasos para configurar Burp como proxy:

  • Ve a System Preferences –> Network –> Advanced
  • En la pestaña Proxies marca Web Proxy (HTTP) y Secure Web Proxy (HTTPS)
  • En ambas opciones configura 127.0.0.1:8080

  • Haz clic en Ok y luego en Apply

References

Tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks