
Análisis de Seguridad Unificado Dinámico en el Borde Móvil
Un marco de automatización modular y repositorio de scripts para pruebas en tiempo real e investigación de aplicaciones Android e iOS, diseñado para probadores de penetración y analistas de malware. Permite conectar módulos para eludir protecciones (como SSL pinning), inspeccionar la actividad de red/WebView, rastrear llamadas API, examinar memoria/criptografía y monitorear el comportamiento de malware, todo desde un único script coordinado. Funciona con FRIDA internamente y viene con más de 90 módulos reutilizables para que las pruebas se escalen y repitan fácilmente.
Requisitos del sistema:
Instalación desde GitHub:
# using the system python3/pip
pip3 install -r requirements.txt
# or inside a virtual environment (recommended)
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
O descarga la última versión estable desde aquí
Usando Docker:
Un Dockerfile preconfigurado está disponible en el directorio medusa/.
Construye la imagen: docker build -t medusa:latest ./
Ejecuta el contenedor: docker run --name medusa --net=host --rm -it medusa:latest
Habilita ADB sobre TCP/IP en tu dispositivo físico o emulador: adb tcpip 5555
Conéctate al dispositivo desde el contenedor: root@docker# adb connect <device_ip>:5555
Durante la instalación en macOS, es posible que encuentres el siguiente problema:
Las funciones de Readline, incluida la finalización con tabulaciones, se han desactivado porque no se encontró una versión compatible de readline. Para resolverlo, instala pyreadline3 en Windows o gnureadline en Linux/Mac.
Para resolverlo, instala el paquete gnureadline para Python:
pip install gnureadline
Para Python 3.12, usa el siguiente comando para instalar gnureadline desde un commit específico:
pip install git+https://github.com/ludwigschwardt/python-gnureadline.git@8474e5583d4473f96b42745393c3492e2cb49224
Si estás actualizando desde una versión anterior de Medusa y encuentras problemas de compatibilidad de base de datos con Mango, consulta DATABASE_MIGRATIONS.md para obtener instrucciones de migración.
Importante: Si tienes una base de datos Mango existente y recibes errores después de actualizar, revisa la guía de migración para actualizar el esquema de tu base de datos.
Ejecuta el script de entrada apropiado para cada plataforma:
# Android
python3 medusa.py
# iOS
python3 medusa_ios.py
Después de iniciar, MEDUSA enumerará los dispositivos disponibles y te permitirá seleccionar uno.
Flujo de trabajo interactivo común
# list available commands or get help about a specific command
medusa> help # or help <command-name>
# list available modules
medusa> show all
# get quick help/details about a module
medusa> info http_communications/ssl-pinning-bypass
# add a module (Tab completes module paths)
medusa> use http_communications/ # press [Tab] to autocomplete
# list installed packages on the device
medusa> list
# instrument a package (by package name)
medusa> run -f com.my.app
# show available devices and select one
medusa> loaddevice
CLI compañero ligero de Medusa para preparación estática y automatización: análisis de manifiestos, enumeración de superficie de ataque, seguimiento de aplicaciones y automatización simple de dispositivos/proxies.
Ejecuta python3 mango.py <nombre-base-datos> para crear o cargar una base de datos para almacenar los resultados de Mango.
# show available devices and select one
mango> loaddevice
# pull an app (by package name)
mango> pull com.my.app
# import an app for analysis
mango> import /path/to/apk
Esto es opcional y no es necesario para el flujo de trabajo estándar de la CLI de Medusa.
Si deseas usar el servidor MCP de Android (medusa_android_mcp.py), instala los requisitos de MCP:
pip install -r requirements-mcp.txt
# Run
MEDUSA_MCP_TRANSPORT=streamable-http python medusa_android_mcp.py
"medusa-android": {
"type": "http",
"url": "http://127.0.0.1:8000/mcp"
}
Para uso avanzado y ejemplos, consulta nuestra wiki. Para consejos rápidos y flujos de trabajo introductorios, revisa las demostraciones a continuación:
Puedes contribuir a este proyecto mediante:
Stheno es un subproyecto de Medusa, diseñado específicamente para la monitorización de intents dentro de este marco. A continuación, una guía rápida sobre cómo configurar y usar Stheno de manera efectiva.
Incluye el módulo de Intents:
Agrega el módulo intents/start_activity a tu proyecto Medusa:
medusa> add intents/start_activity
Ejecuta el servidor de sockets: Inicia el servidor de sockets de Medusa para facilitar la comunicación:
medusa> startserver
Inicia Stheno: Abre Stheno y navega al menú de Monitor de Intents, luego haz clic en Iniciar para comenzar a monitorear intents.






Enlaza llamadas a la API que se encontraron comunes en este tipo de malware, incluyendo:
- Exfiltración de contactos
- Exfiltración de registro de llamadas
- Uso de la cámara
- Uso del micrófono
- Seguimiento de ubicación
- Subida de archivos
- Grabación de medios
- Seguimiento del portapapeles
- Reconocimiento del dispositivo
- Captura de pantalla
Traduce la interfaz de usuario de la aplicación enlazando llamadas 'setText'
