Pentest

Pentest de Aplicaciones Mobile Android: Frida, MobSF y Lab con Genymotion

Por Equipe Basilisk ·

Setup completo para analisis dinamico de APKs propios con Frida, MobSF y Genymotion, con hooks practicos y checklist tecnico.

Un APK es un archivo zip disfrazado, y eso es justamente lo que vuelve al pentest mobile Android tan divertido como quirurgico. En Basilisk OffSec armamos labs donde solo probamos binarios de aplicaciones propias o con autorizacion escrita del dueno del producto, porque hacer ingenieria inversa de apps de terceros sin consentimiento es delito federal en casi cualquier jurisdiccion. Antes de cualquier hook con Frida, definimos alcance, contrato y modelo de amenazas, en el mismo espiritu de Threat Modeling con STRIDE en Sprints: Ejemplo Completo de un Microservicio. Sin eso, no estas investigando: estas coleccionando procesos judiciales.

El stack base que recomendamos para 2026 es simple: Genymotion Personal para emulacion x86_64 con Google Apps opcional, MobSF corriendo en Docker para analisis estatico y dinamico automatizado, Frida 16.x con frida-tools en el host, objection para acelerar flujos y jadx-gui para leer smali decompilado. Genymotion gana al AVD por velocidad de IO y expone ADB en el puerto 5555. Levanta una maquina Android 13 con root, instala Magisk via setup-frida y sube el frida-server-arm64 a /data/local/tmp con permisos 755. En menos de quince minutos tenes ambiente reproducible, aislado de tu red productiva, coherente con la filosofia de Analisis de Malware en Lab Aislado: Setup Seguro con FlareVM y REMnux.

MobSF es tu primer pivote. Levantalo con docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest, arrastra el APK a la interfaz y extrae AndroidManifest, permisos peligrosos, secretos hardcodeados, uso de Janus, WebView con setJavaScriptEnabled habilitado e incluso dominios expuestos en network_security_config. El escaneo estatico suele encontrar tokens AWS olvidados, claves Firebase con reglas publicas y endpoints de staging que nadie deberia ver. Usa ese mapa de superficie para guiar hipotesis dinamicas, y no caigas en tratar el score numerico de MobSF como verdad absoluta. Como cualquier SAST, genera ruido, igual que discutimos en AppSec Shift-Left: SAST, SCA y Escaneo de Secretos sin Frenar al Equipo.

Con la superficie mapeada, abri Frida. Un ejemplo clasico es el bypass de SSL pinning para inspeccionar trafico TLS en Burp o mitmproxy. Carga el script con frida -U -f com.empresa.app -l ssl-bypass.js --no-pause; el hook reescribe checkServerTrusted de TrustManagerImpl y neutraliza okhttp3 CertificatePinner. Sin pinning activo, te volves proxy man-in-the-middle dentro del emulador, capturas JSON autenticados y testeas la API trasera como en pentest web tradicional, con burp configurado como en Pentest Web desde Cero: Montando un Lab Seguro con DVWA, Juice Shop y Burp Suite. Recorda: el bypass solo es legitimo en la app que tenes derecho a auditar.

Despues del trafico limpio, empeza a jugar con la API. Los vectores clasicos vuelven: mass assignment, IDOR en /v2/users/{id}, JWT con algoritmo none, GraphQL con introspeccion abierta. Aplica la metodologia de Pentest de APIs REST y GraphQL: Checklist Tecnico para Bug Bounty Legal y, para inyeccion en backend, valida candidatos con payloads parametrizados como mostramos en SQL Injection en la Practica: Explotar, Detectar y Mitigar en Lab Controlado. Otro objetivo subestimado es el WebView interno: si la app carga HTML remoto sin allowlist, podes encadenar XSS en contexto privilegiado usando addJavascriptInterface, exponiendo metodos Java al JS, ataque cubierto a fondo en XSS Moderno: DOM, Stored y Reflected con Ejemplos Reales en Entorno de Pruebas.

Los hooks personalizados son donde el pentester realmente se distingue. Tres scripts Frida que valen oro: dump de claves AES pasadas a Cipher.init capturando el primer argumento de SecretKeySpec; instrumentacion de SharedPreferences.Editor.putString para detectar tokens guardados en claro; y hook en java.io.File para listar todo lo escrito en /data/data/com.empresa.app durante el login. Combina con adb shell run-as com.empresa.app para extraer sqlite e inspeccionar con sqlitebrowser. En una auditoria reciente encontramos refresh_token persistido sin keystore, problema que rapidamente derivo en account takeover.

No termines sin revisar las runtime defenses. Verifica deteccion de root via RootBeer, deteccion de Frida por escaneo de puertos locales (27042), deteccion de emulador via Build.FINGERPRINT e integridad via Play Integrity API. Documenta como se evadio cada proteccion y propone defensa en profundidad, no balas de plata. Del lado servidor, asegura hardening de SSH en el bastion segun Hardening de SSH 2026: Algoritmos, Certificados y Bastion Hosts e higieniza artefactos antes de enviar el informe, como en Higiene de Metadatos: Limpiando EXIF, PDF y Office antes de Publicar. Takeaway practico: ejecuta Genymotion, MobSF y Frida en una VM dedicada, con snapshot limpio por engagement, y nunca atada a tu identidad personal.

Nenhum comentário ainda

Seja o primeiro a comentar.

Deixe seu comentário

Entre com sua conta Canverly para comentar. Você pode usar a mesma conta em qualquer site da rede.

Entrar com Canverly