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.*

mango> deeplink app://deeplink

Dernière mise à jour

Cet article vous a-t-il été utile ?