Outil Medusa / Mango
Description
Medusa est un framework extensible et modularisé qui automatise les processus et les techniques pratiqués lors de l'analyse dynamique des applications Android et iOS.
Lien vers le repo github: https://github.com/Ch0pin/medusa
Résumé
Medusa fonctionne de la même manière que Metasploit ce qui en fait un outil parfait pour les utilisateurs déjà à l'aise avec le fonctionnement et les commandes de Metasploit. Il regroupe un ensemble de scripts Frida classés en modules par catégories (exp: http_communications, root_detection). Cela permet une organisation et un gain de temps considérable car tout est déjà installé et disponible depuis une seule et même interface.
Commandes utiles
Dump de mémoire
medusa> dump com.target.xyz
Frappes clavier vers l'appareil
medusa> type "Hello World!"
Voir / Modifier les configuration de l'outil
medusa> set
Name Value Description
==================================================================================================================
allow_style Terminal Allow ANSI text style sequences in output (valid values:
Always, Never, Terminal)
always_show_hint False Display tab completion hint even when completion suggestions
print
debug False Show full traceback on exception
echo False Echo command issued into output
editor None Program used by 'edit'
feedback_to_output False Include nonessentials in '|', '>' results
max_completion_items 50 Maximum number of CompletionItems to display during tab
completion
quiet False Don't print nonessential feedback
timing False Report execution times
Lister les librairies natives d'un package
medusa> libs com.target.xyz
Afficher les stack traces d'une fonction
medusa> jtrace com.target.xyz.function
Hook une activité pour en exrtraire les arguments
medusa> hook -a com.target.xyz.test.MyActvity
Exporter les modules chargés pour un usage futur
medusa> export exportname.medusa
Enumerer les fonctions exportées d'une librairie native:
medusa> enumerate com.target.xyz libtest.so
Lister/Créer/Supprimer des alias
medusa> alias create <alias> <command>
Exemple:
medusa> alias list
medusa> alias create pin search ssl
medusa> pin
http_communications/instagram_ssl_pinning_bypass
http_communications/snapchat_ssl_pinning_bypass
http_communications/universal_SSL_pinning_bypass
http_communications/ssl-pinning-bypass
http_communications/tiktok_ssl_pinning_bypass
http_communications/openssl_boringssl_key_capture
http_communications/libssl_ssl_set_custom_verify
http_communications/facebook_ssl_pinning_bypass
madusa> alias delete pin
Modules
Il est possible de lister les catégories disponibles avec la commande:
medusa> show categories
Recherche de modules
De manière plus précise, on peut êgalement faire des recherches par mot clés dans les noms des modules disponibles.
Exemple:
medusa> search universal
http_communications/universal_SSL_pinning_bypass
root_detection/universal_root_detection_bypass

On peut également si besoin utiliser la commande info pour lire des informations sur un module spécifique.
medusa> info <module>
Choix des modules
orsqu'on trouve le(s) module(s) souhaités, on peut alors les ajouter aux modules en attente de lancement avec la commande:
medusa> use <module>
Enfin, on exécute les modules en exécutant l'application grâce à la commande:
medusa> run -f com.target.xyz
Exemple:
medusa> use root_detection/universal_root_detection_bypass
...
...
medusa> use http_communications/universal_SSL_pinning_bypass
...
...
medusa> run -f com.target.xyz
---------LOADING ANTI ROOT DETECTION SCRIPT-------------------
Loaded 11200 classes!
...
...
-------------Universal ssl pinning bypass V2------------------
===
* Injecting hooks into common certificate pinning methods *
===
...
...

Current Mods:
0) http_communications/universal_SSL_pinning_bypass
1) root_detection/universal_root_detection_bypass
medusa> swap 0 1
Current Mods:
0) root_detection/universal_root_detection_bypass
1) http_communications/universal_SSL_pinning_bypass
Réinistialisation des modules
medusa> reset
Suppression d'un ou plusieurs modules (Tout ce qui commence par ...)
medusa> rem <module>
Si un module a été modifié
medusa> reload <module>
Scripts et modules custom
Si aucun des modules préinstallés ne convient, il est possible d'importer un script avec la commande suivante:
medusa> import [tab]
Les scripts custom sont stockés dans /medusa/snippets/, il est donc possible d'ajouter simplement des scripts personnels en les stockants dans ce répértoire.
Exemple: /medusa/snippets/example.js => import example
Attention: La partie Java.perform(function() { }
doit être supprimée du script pour être compatible.

Mango
Mango fait partie de Medusa mais à été séparé du script python medusa.py (c'est un autre script nommé mango.py). Il est séparé car ses cas d'usage sont différents et se concentres principalement sur de l'analyse statique à quelques exceptions prés.
Installer l'agent sur le device
mango> installagent
Importer un APK pour analyse
Depuis le PC
mango> import /path/to/target.apk
Depuis le device
medusa> pull com.target.xyz
Cela créer un fichier .db qui contient les informations de l'application et qui peut être réutilisé comme une session. De plus, Mango affiche les informations importantes du AndroidManifest dés l'importation de l'application.

Enumeration
Enumeration des composants
mango> show [activities, activityAlias, applications, database, deeplinks, exposure, info, intentFilters, manifest, permissions, providers, receivers, services, strings]
Recherche par mot clé dans le AndroidManifest
mango> search keyword
Evaluation de la surface d'attaque
mango> show exposure
Setup d'environnement
Mango contient également quelques outils pour préparer son environnement de travail.
Installer le certificat Burp
mango> InstallBurpCert
Activer le mode Debug dans le AndroidManifest
mango> patch /path/to/target.apk
Configurer le proxy du device
mango> proxy set <ip>:<port>
mango> proxy reset
Analyse dynamique
Envoie de notifications aux listener
mango> notify "test" "hello world!"
Initialiser une session frida-trace
mango> trace com.target.xyz.*
Ouvrir des deeplinks
mango> deeplink app://deeplink
Dernière mise à jour
Cet article vous a-t-il été utile ?