Parte: 13 — Seguridad móvil, IoT e inalámbrica · Fuente: OWASP MASTG y The Mobile Application Hacker's Handbook (Chell et al.) ⏱️ Duración estimada: 120 min · Nivel: Avanzado
Ejecutar una evaluación de seguridad completa de una aplicación Android combinando análisis estático (SAST), dinámico (DAST) e instrumentación en tiempo de ejecución. El alumno montará el entorno, interceptará el tráfico HTTPS de la app, evadirá certificate pinning y detección de root en laboratorio, y buscará las vulnerabilidades del top de OWASP MASVS: almacenamiento inseguro, comunicación débil y lógica del lado del cliente evadible.
⚠️ Nota ética: todo el pentest se realiza sobre apps propias, apps deliberadamente vulnerables (DIVA, InsecureBankv2, MASTG apps) o con autorización escrita del titular. Interceptar o modificar apps de terceros sin permiso es ilegal.
Al finalizar, el alumno podrá:
SharedPreferences, SQLite y ficheros.| # | Tema | Por qué importa |
|---|---|---|
| 1 | Montaje del laboratorio y proxy | Sin interceptación no hay DAST móvil |
| 2 | Análisis estático con MobSF | Detecta secretos y malas prácticas rápido |
| 3 | Interceptación TLS y CA de usuario | El pinning bloquea Burp por defecto |
| 4 | Evasión de pinning con Frida | Habilita ver el tráfico real de la app |
| 5 | Almacenamiento inseguro | Es la vulnerabilidad móvil más frecuente |
| 6 | Controles del lado del cliente | Root/jailbreak detection y su bypass |
| 7 | Reporte según MASVS/MASTG | Traduce hallazgos a un estándar reconocido |
# Emulador rooteado + Frida server
adb root
adb push frida-server /data/local/tmp/ && adb shell "chmod 755 /data/local/tmp/frida-server"
adb shell "/data/local/tmp/frida-server &"
pip install frida-tools objection
# Análisis estático con MobSF (Docker)
docker run -it --rm -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
adb install app.apk.apktool d app.apk -o app_src y jadx app.apk. Busca cadenas sospechosas: grep -ri "http://\|password\|api_key" app_src./system y copia el .0).objection -g <paquete> explore y ejecuta android sslpinning disable, o usa un script Frida de bypass. Verifica que el tráfico HTTPS aparece en Burp./data/data/<paquete>/: shared_prefs/*.xml, bases databases/*.db (ábrelas con sqlite3), y ficheros en claro.objection/Frida (android root disable) y documenta el bypass.Realiza un pentest completo de una app deliberadamente vulnerable y entrega un mini-informe con al menos tres hallazgos de categorías distintas (almacenamiento, comunicación, resiliencia), cada uno con evidencia reproducible. Criterio de aceptación: para el hallazgo de comunicación, incluyes una captura del tráfico HTTPS interceptado tras evadir el pinning, demostrando que el bypass funcionó.
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
| Burp no ve tráfico HTTPS | El CA no está en el almacén de sistema o hay pinning; instala CA de sistema y evade pinning |
Failed to spawn: unable to find process (Frida) |
frida-server no corre o versión distinta; empareja versiones cliente/servidor |
| App se cierra al abrir | Root/emulador/pinning detection; usa objection para desactivarlos |
apktool falla al recompilar |
Recursos corruptos; usa -r o trabaja con smali sin recompilar |
| CA instalado como "usuario" ignorado | Desde Android 7 las apps ignoran CA de usuario; instálalo como sistema |
❓ ¿Por qué Burp no intercepta aunque instalé el certificado? Desde Android 7, las apps por defecto no confían en CA de usuario. Debes instalarlo como CA de sistema (requiere root) y, si hay pinning, evadirlo con Frida/objection.
❓ ¿Necesito el código fuente para hacer el pentest? No. Con el APK basta: se desensambla a smali y se decompila a Java aproximado con jadx; Frida instrumenta el binario en runtime.
❓ ¿Es suficiente MobSF para un informe profesional? No. MobSF acelera el triage, pero genera falsos positivos y no valida explotabilidad. El análisis manual y dinámico es indispensable.
Clase 261 — Seguridad de Android: arquitectura