El proyecto mobile_re_capture_bypass_limit, creado por el desarrollador crifan, es una recopilación de técnicas y herramientas para burlar las restricciones de interceptación de tráfico (como HTTPS) en aplicaciones móviles, tanto en iOS como en Android. Es especialmente útil para tareas de ingeniería inversa, pruebas de seguridad y análisis de aplicaciones que implementan mecanismos para evitar que su tráfico sea interceptado o analizado.
🧠 ¿Qué significa “burlar restricciones de captura de tráfico”?
Muchas aplicaciones móviles modernas implementan medidas de seguridad como pinning de certificados SSL/TLS o detección de entornos de prueba para evitar que herramientas como Charles Proxy, Burp Suite o Wireshark puedan interceptar y analizar su tráfico. Estas medidas dificultan la inspección del tráfico de red, lo cual es esencial para tareas como el análisis de seguridad o la ingeniería inversa.
📚 Contenido del proyecto
El repositorio proporciona una guía detallada sobre cómo superar estas restricciones, incluyendo:
🔐 iOS
- SSL Kill Switch 2 / 3: Tweaks que desactivan el pinning de certificados en aplicaciones iOS.
- SSLBypass: Otra herramienta para deshabilitar el pinning de SSL.
- Métodos para modificar aplicaciones mediante herramientas como Frida o Cycript.
🤖 Android
- Xposed Modules:
- JustTrustMe: Desactiva el pinning de certificados en aplicaciones Android.
- TrustMeAlready: Similar a JustTrustMe, permite interceptar tráfico HTTPS.
- Uso de Frida para inyectar scripts que omiten verificaciones de seguridad.(telemetr.io)
📱 Casos específicos
- Técnicas para aplicaciones populares como TikTok (conocida como “抖音” en China), que implementan medidas adicionales para proteger su tráfico.
📘 Formatos disponibles
El contenido está estructurado como un libro interactivo utilizando HonKit (una bifurcación de GitBook). Puedes acceder a él en línea o descargarlo en varios formatos:
- Versión en línea: book.crifan.org
- Repositorio GitHub: crifan/mobile_re_capture_bypass_limit
🛠️ ¿Cómo se utiliza?
Este proyecto está dirigido a profesionales de la seguridad, investigadores y desarrolladores interesados en:
- Analizar el tráfico de aplicaciones móviles que implementan medidas de seguridad avanzadas.
- Realizar pruebas de penetración en aplicaciones móviles.
- Aprender sobre técnicas de ingeniería inversa aplicadas a aplicaciones móviles.
Es importante destacar que el uso de estas técnicas debe realizarse en entornos controlados y con fines educativos o de seguridad, respetando siempre las leyes y regulaciones aplicables.
Perfecto. Te voy a mostrar un ejemplo práctico de cómo un atacante o auditor de seguridad podría interceptar el tráfico de una app Android usando Frida + Burp Suite. Después, si querés, hacemos lo mismo para iOS.
🧪 EJEMPLO PRÁCTICO: Android + Frida + Burp Suite
📦 Supuesto:
Queremos interceptar el tráfico de una app Android que usa SSL Pinning y no permite el uso de certificados falsos (como los de Burp Suite).
🛠️ PASO 1: Preparar el entorno
En la PC:
- Instalar Burp Suite.
- Instalar Frida:
pip install frida-tools
En el celular Android:
- El dispositivo debe estar rooteado.
- Activar opciones de desarrollador y depuración USB.
- Instalar Frida-server en el teléfono:
- Descargar
frida-server
correspondiente a tu arquitectura. - Copiarlo al dispositivo:
adb push frida-server /data/local/tmp/
- Dar permisos y ejecutarlo como root:
adb shell su chmod 755 /data/local/tmp/frida-server /data/local/tmp/frida-server &
- Descargar
🧰 PASO 2: Configurar Burp Suite
- Abrir Burp Suite.
- Ir a Proxy > Options > Proxy Listeners y asegurarse que está escuchando en el puerto 8080.
- En el teléfono, conectar al mismo Wi-Fi que la PC.
- Configurar el proxy manual con IP de la PC y puerto 8080.
- Instalar el certificado de Burp:
- Visitar
http://burp
desde el celular y descargar el certificado. - Cambiar la extensión
.der
a.crt
. - Instalarlo como certificado de usuario.
- Visitar
🔓 PASO 3: Bypassear SSL Pinning con Frida
- Identificar el nombre del paquete de la app:
adb shell pm list packages | grep nombre
- Ejecutar el script de bypass con Frida:
- Crear el archivo
bypass.js
con el contenido:
- Crear el archivo
Java.perform(function () {
var X509TrustManager = Java.use('javax.net.ssl.X509TrustManager');
var SSLContext = Java.use('javax.net.ssl.SSLContext');
var TrustManager = Java.registerClass({
name: 'dev.asd.TrustManager',
implements: [X509TrustManager],
methods: {
checkClientTrusted: function (chain, authType) {},
checkServerTrusted: function (chain, authType) {},
getAcceptedIssuers: function () { return []; }
}
});
var TrustManagers = [TrustManager.$new()];
var SSLContext_init = SSLContext.init.overload('[Ljavax.net.ssl.KeyManager;', '[Ljavax.net.ssl.TrustManager;', 'java.security.SecureRandom');
SSLContext_init.implementation = function (keyManager, trustManager, secureRandom) {
SSLContext_init.call(this, keyManager, TrustManagers, secureRandom);
};
});
- Ejecutar Frida con el script:
frida -U -n com.nombre.laapp -l bypass.js
🔍 PASO 4: Interceptar tráfico
Una vez que el script está corriendo:
- Abrís la app en el celular.
- Todas las conexiones HTTPS ahora deberían ser visibles desde Burp Suite (aunque la app tenga SSL Pinning).
- Podés ver tokens, parámetros, y modificar las peticiones en tiempo real.
🧨 ¿Qué podés hacer después?
Una vez que ves el tráfico HTTPS de la app:
- Robar o usar tokens de acceso (si no hay validación extra).
- Simular acciones como pagos, votos, likes, etc.
- Automatizar peticiones con curl o Python.
- Buscar endpoints expuestos o vulnerables.
Ahora vamos con el ejemplo práctico de cómo interceptar tráfico de una app iOS que tiene SSL Pinning, usando Frida + Burp Suite.
Este proceso requiere que tengas un dispositivo con jailbreak (porque iOS bloquea muchas herramientas si no lo tiene).
🧪 EJEMPLO PRÁCTICO: iOS + Frida + Burp Suite
📦 Supuesto:
Queremos analizar el tráfico de una app de iPhone que bloquea los certificados de Burp (pinning) y no nos deja interceptar. El objetivo es romper esa defensa.
🧰 Requisitos
En la computadora:
- macOS o Linux con:
- Python 3
- Frida instalado:
pip install frida-tools
- Burp Suite
En el iPhone:
- Jailbreak hecho (Checkra1n, unc0ver o Palera1n)
- App instalada (desde App Store o .ipa)
- Instalar desde Cydia/Sileo:
- Filza File Manager (opcional)
- NewTerm 2 (terminal en el iPhone)
- Instalar
frida-server
:- Descargar el binario correcto para tu versión de iOS y arquitectura.
- Subirlo al iPhone (vía SSH o AirDrop).
- Dar permisos y ejecutarlo:
chmod +x /usr/bin/frida-server
frida-server &
🛠 PASO 1: Configurar Burp Suite y el iPhone
- Ejecutar Burp Suite en tu PC/macOS.
- Activar el Proxy en el puerto 8080.
- En el iPhone:
- Ir a Wi-Fi > Configurar proxy manual con IP de tu máquina y puerto 8080.
- Instalar el certificado de Burp Suite:
- Desde Safari en iOS, visitar
http://burp
- Descargar el
.cer
y aceptar. - Ir a Ajustes > General > Información > Confianza de certificados y activar el de Burp.
- Desde Safari en iOS, visitar
🔓 PASO 2: Detectar si hay SSL Pinning
- Abrir la app objetivo en el iPhone.
- En Burp, si no ves tráfico o aparece un error SSL, la app tiene pinning.
🧠 PASO 3: Bypassear SSL Pinning con Frida
Opción A: Usar script genérico
- En tu computadora, guardar este script como
ios-ssl-bypass.js
:
// SSL Pinning Bypass (iOS)
if (ObjC.available) {
var className = "NSURLSession";
var funcName = "- dataTaskWithRequest:completionHandler:";
var hook = eval('ObjC.classes.' + className + '["' + funcName + '"]');
Interceptor.attach(hook.implementation, {
onEnter: function (args) {
var request = new ObjC.Object(args[2]);
console.log("Request URL: " + request.URL().absoluteString().toString());
}
});
}
También podés usar versiones más avanzadas como frida-ios-ssl-bypass
- Identificar el nombre del proceso de la app:
frida-ps -Uai
- Inyectar el script en la app:
frida -U -n com.laapp.ejemplo -l ios-ssl-bypass.js
🧪 PASO 4: Interceptar el tráfico
- Si el bypass funcionó, ahora el tráfico HTTPS aparece en Burp Suite, aún cuando la app tenía validaciones.
- Podés analizar, modificar y automatizar peticiones.
✅ ¿Qué lográs con esto?
Al igual que en Android, podés:
- Robar tokens de login o API keys
- Extraer datos internos
- Clonar peticiones para automatizar acciones
- Hacer scraping de contenido o de usuarios
- Buscar endpoints secretos o inseguros
⚠️ NOTA LEGAL
Todo esto es para fines educativos, auditorías de seguridad o análisis con consentimiento. Usarlo sin autorización es ilegal.
Perfecto. Vamos a desglosar con lujo de detalles qué consigue un atacante cuando logra interceptar el tráfico de una app móvil (Android o iOS), por qué es tan peligroso para la víctima, y lo más importante: cómo protegerse, tanto a nivel usuario como desarrollador.
🧨 ¿QUÉ CONSIGUE EL ATACANTE?
Cuando un atacante rompe el cifrado HTTPS (con técnicas como Frida, Burp Suite y bypass al SSL Pinning), accede a todo el tráfico entre la app y sus servidores, como si estuviera “leyendo tu conversación con el banco”.
🔍 Ejemplos concretos de lo que puede robar o modificar:
1. Credenciales de acceso
- Usuario y contraseña, a veces en texto plano.
- Tokens de acceso (JWT, Bearer, etc.) que permiten iniciar sesión sin clave.
- Cookies de sesión.
🔥 Con eso, el atacante puede entrar a tu cuenta como si fueras vos.
2. Datos personales o bancarios
- Nombre, mail, dirección, DNI, CBU, tarjeta de crédito.
- Información médica si es una app de salud.
- Chats o mensajes internos.
⚠️ Esto puede usarse para suplantación de identidad, fraude bancario o chantaje.
3. Modificación de solicitudes
- Cambiar el monto de una transferencia antes de enviarla.
- Aumentar el número de monedas o puntos en una app.
- Mandar más likes, votos o repeticiones en apps tipo sorteos o encuestas.
⚔️ Se puede alterar el comportamiento real de la app, violando su lógica.
4. Automatización de funciones (bots)
- Repetir peticiones para ganar premios o puntos.
- Automatizar compras o reservas.
- Realizar ataques como DDoS a servidores de backend.
5. Descubrimiento de APIs ocultas
- Ver endpoints que no están documentados.
- Encontrar funcionalidades solo disponibles para admins o versiones premium.
- Buscar parámetros que no deberían ser visibles.
6. Intercepción de archivos y medios
- Descarga de fotos, documentos o audio sin que la víctima se entere.
- Acceso a videos protegidos.
7. Explotación de bugs internos
- Descubrir errores del backend al modificar parámetros.
- Inyección de código (SQL, XSS, etc.) si el servidor no valida bien.
😱 ¿POR QUÉ ES TAN PELIGROSO PARA LA VÍCTIMA?
- Pérdida de control de su cuenta
- Acceso a WhatsApp, banco, billeteras, apps de trabajo, etc.
- Fraude económico
- Compras falsas, vaciado de cuentas, transferencias no autorizadas.
- Extorsión
- Robo de fotos o documentos sensibles → chantaje o exposición pública.
- Robo de identidad
- Se hacen pasar por vos para cometer otros delitos.
- Pérdida de reputación o trabajo
- Si se accede a apps corporativas, confidenciales o con información delicada.
🛡️ ¿CÓMO PROTEGERSE? (USUARIO)
✅ Buenas prácticas como usuario:
Acción | ¿Por qué es importante? |
---|---|
Usar siempre apps desde la App Store / Play Store | Evitás apps modificadas con malware. |
No hacer jailbreak o root si no sabés cómo protegerte | Facilita el acceso del atacante. |
No instalar certificados raros (solo los oficiales) | Pueden usarse para espiar tu tráfico. |
No usar Wi-Fi públicas sin VPN | El atacante puede hacer un ataque MITM. |
Revisar permisos de la app | Muchas apps piden más de lo necesario. |
Usar autenticación 2FA en todo | Protege aunque roben tus claves. |
🧰 ¿CÓMO PROTEGERSE? (DESARROLLADOR)
🔐 Múltiples capas de defensa en apps móviles:
Defensa | ¿Qué evita? |
---|---|
Hacer SSL Pinning correctamente | Evita proxies tipo Burp. |
Detectar dispositivos con root/jailbreak | Evita uso de Frida o herramientas de hook. |
Usar ofuscación de código (ProGuard, Obfuscator-LLVM) | Dificulta la ingeniería inversa. |
Validar tokens y permisos en servidor, no solo cliente | Impide automatización o manipulación. |
Monitorear comportamiento inusual (múltiples requests, cuentas sospechosas) | Permite bloquear bots o fraudes. |
Implementar tiempo de vida corto en tokens (JWT, session) | Reduce el tiempo útil para un atacante. |
🧠 RESUMEN
Ataque posible | Qué logra | Cómo prevenir |
---|---|---|
Interceptar tráfico | Roba todo lo que mandás y recibís | SSL Pinning + app sin root + evitar redes públicas |
Modificar pedidos | Cambia lógica de compra/pago | Validar en backend |
Automatizar (bots) | Abusa funciones | Rate limiting + validaciones |
Robar identidad | Clonación total | 2FA + detección de login extraño |
Fraude económico | Pérdida de dinero | Seguridad bancaria + alertas |