
Analyse de sécurité unifiée dynamique en périphérie mobile
Un framework d'automatisation modulaire et un dépôt de scripts pour les tests d'exécution et l'analyse des applications Android et iOS, conçu pour les testeurs d'intrusion et les analystes de malwares. Il permet de brancher des modules pour contourner les protections (comme le SSL pinning), inspecter l'activité réseau/WebView, tracer les appels API, examiner la mémoire/le chiffrement et surveiller le comportement des malwares — le tout à partir d'un script coordonné unique. Il s'exécute sur FRIDA en arrière-plan et est livré avec plus de 90 modules réutilisables pour que les tests passent à l'échelle et se répètent facilement.
Configuration système requise :
Installation depuis 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
Ou téléchargez la dernière version stable depuis ici
Utilisation avec Docker :
Un Dockerfile préconfiguré est disponible dans le répertoire medusa/.
Construisez l'image : docker build -t medusa:latest ./
Lancez le conteneur : docker run --name medusa --net=host --rm -it medusa:latest
Activez ADB sur TCP/IP sur votre appareil physique ou émulateur : adb tcpip 5555
Connectez-vous à l'appareil depuis le conteneur : root@docker# adb connect <device_ip>:5555
Lors de l'installation sur macOS, vous pourriez rencontrer le problème suivant :
Les fonctionnalités Readline, y compris la complétion par tabulation, ont été désactivées car aucune version prise en charge de readline n'a été trouvée. Pour résoudre ce problème, installez pyreadline3 sur Windows ou gnureadline sur Linux/Mac.
Pour résoudre, installez le paquet gnureadline pour Python :
pip install gnureadline
Pour Python 3.12, utilisez la commande suivante pour installer gnureadline à partir d'un commit spécifique :
pip install git+https://github.com/ludwigschwardt/python-gnureadline.git@8474e5583d4473f96b42745393c3492e2cb49224
Si vous effectuez une mise à jour depuis une ancienne version de Medusa et rencontrez des problèmes de compatibilité de base de données avec Mango, veuillez consulter DATABASE_MIGRATIONS.md pour les instructions de migration.
Important : Si vous avez une base de données Mango existante et recevez des erreurs après la mise à jour, consultez le guide de migration pour mettre à jour votre schéma de base de données.
Exécutez le script d'entrée approprié pour chaque plateforme :
# Android
python3 medusa.py
# iOS
python3 medusa_ios.py
Après le démarrage, MEDUSA énumérera les appareils disponibles et vous permettra d'en sélectionner un.
Flux de travail interactif courant :
# 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
Le compagnon CLI léger de Medusa pour la préparation statique et l'automatisation — analyse du manifeste, énumération de la surface d'attaque, suivi des applications et automatisation simple de l'appareil/proxy.
Exécutez python3 mango.py <nom-de-la-base> pour créer ou charger une base de données pour stocker les résultats 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
Ceci est facultatif et non requis pour le flux de travail standard de Medusa CLI.
Si vous souhaitez utiliser le serveur MCP Android (medusa_android_mcp.py), installez les dépendances 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"
}
Pour une utilisation avancée et des exemples, consultez notre wiki. Pour des conseils rapides et des flux de travail d'introduction, regardez les démos ci-dessous :
Vous pouvez contribuer à ce projet en :
Stheno est un sous-projet de Medusa, spécialement conçu pour la surveillance des intents au sein de ce framework. Vous trouverez ci-dessous un guide rapide sur la façon de configurer et d'utiliser Stheno efficacement.
Inclure le module Intent :
Ajoutez le module intents/start_activity à votre projet Medusa :
medusa> add intents/start_activity
Lancer le serveur Socket : Démarrez le serveur socket Medusa pour faciliter la communication :
medusa> startserver
Lancer Stheno : Ouvrez Stheno et accédez au menu Intent Monitor, puis cliquez sur Start pour commencer la surveillance des intents.






Intercepte les appels API qui se révèlent courants pour ce type de malware, notamment :
- Exfiltration des contacts
- Exfiltration du journal d'appels
- Utilisation de la caméra
- Utilisation du microphone
- Suivi de localisation
- Téléchargement de fichiers
- Enregistrement multimédia
- Suivi du presse-papiers
- Reconnaissance de l'appareil
- Capture d'écran
Traduit l'interface utilisateur de l'application en interceptant les appels 'setText'
