Ch0pin/medusa

GitHub: Ch0pin/medusa

基于 Frida 的模块化移动应用(Android/iOS)运行时安全分析与渗透测试框架。

Stars: 2195 | Forks: 296

# MEDUSA 一个用于 Android 和 iOS 应用程序运行时测试与调查的模块化自动化框架及脚本仓库,专为渗透测试人员和恶意软件分析师设计。它允许你插入模块来绕过保护机制(如 SSL pinning)、检查网络/WebView 活动、追踪 API 调用、检查内存/加密操作以及监控恶意软件行为——所有这些都可以通过一个统一的协调脚本来完成。它在底层运行于 FRIDA 之上,并附带 90 多个可复用模块,使得测试工作易于扩展和重复。 # 安装 **系统要求:** - Linux 或 macOS(Windows 上功能有限) - Python 3 - 已 root 的设备或模拟器 - adb - FRIDA server(运行在移动设备上) **从 GitHub 安装:** 1. 克隆此仓库。 2. 进入 medusa 目录。 3. 安装依赖: ``` # 使用系统 python3/pip pip3 install -r requirements.txt # 或在虚拟环境中(推荐) python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt ``` 或者从[此处](https://github.com/Ch0pin/medusa/releases)下载最新的稳定版本 **使用 Docker:** medusa/ 目录中提供了一个预配置的 Dockerfile。 1. 构建镜像:`docker build -t medusa:latest ./` 2. 运行容器:`docker run --name medusa --net=host --rm -it medusa:latest` 3. 在你的物理设备或模拟器上启用 ADB over TCP/IP:`adb tcpip 5555` 4. 从容器内部连接到设备:`root@docker# adb connect :5555` ## 已知安装问题 ### macOS 在 macOS 上安装期间,你可能会遇到以下问题: 要解决此问题,请为 Python 安装 gnureadline 包: ``` pip install gnureadline ``` 对于 Python 3.12,请使用以下命令从特定提交安装 gnureadline: ``` pip install git+https://github.com/ludwigschwardt/python-gnureadline.git@8474e5583d4473f96b42745393c3492e2cb49224 ``` ### 与旧版 MEDUSA 的向后兼容性 如果你是从旧版本的 Medusa 升级,并且遇到了 Mango 的数据库兼容性问题,请参阅 [DATABASE_MIGRATIONS.md](https://github.com/Ch0pin/medusa/blob/master/assets/Documentation/DATABASE_MIGRATIONS.md) 获取迁移说明。 **重要**:如果你拥有现有的 Mango 数据库并且在更新后收到错误,请查看迁移指南以更新你的数据库 schema。 # 用法 ## MEDUSA 运行适用于各平台的入口脚本: ``` # Android python3 medusa.py # iOS python3 medusa_ios.py ``` 启动后,MEDUSA 将枚举可用的设备并让你选择一个。 常见的交互式工作流程 ``` # 列出可用命令或获取特定命令的帮助 medusa> help # or help # 列出可用模块 medusa> show all # 获取模块的快速帮助/详细信息 medusa> info http_communications/ssl-pinning-bypass # 添加模块(Tab 补全模块路径) medusa> use http_communications/ # press [Tab] to autocomplete # 列出设备上已安装的包 medusa> list # 检测包(通过包名) medusa> run -f com.my.app # 显示可用设备并选择一个 medusa> loaddevice ``` ## MANGO Medusa 的轻量级伴侣 CLI,用于静态准备和自动化——manifest 解析、攻击面枚举、应用跟踪以及简单的设备/代理自动化。 运行 `python3 mango.py ` 以创建或加载数据库,用于存储 Mango 的结果。 ``` # 显示可用设备并选择一个 mango> loaddevice # 拉取应用(通过包名) mango> pull com.my.app # 导入应用进行分析 mango> import /path/to/apk ``` **关于高级用法和示例,请参阅我们的 [wiki](https://github.com/Ch0pin/medusa/wiki)。如需快速提示和入门工作流程,请查看以下演示:** - [MEDUSA | Android 渗透工具](https://www.youtube.com/watch?v=4hpjRuNJNDw) (致谢 [@ByteTheories](https://www.youtube.com/@ByteTheories)) - [MEDUSA | Android 恶意软件分析 101](https://www.youtube.com/watch?v=kUqucdkVtSU) (致谢 [@ByteTheories](https://www.youtube.com/@ByteTheories)) - [使用 Medusa 解包 Android 恶意软件](https://www.youtube.com/watch?v=D2-jREzCE9k) (致谢 [@cryptax](https://twitter.com/cryptax)) - [使用 Medusa 解包 Android APK](https://www.youtube.com/watch?v=ffM5R2Wfl0A) (致谢 [@LaurieWired](https://twitter.com/LaurieWired)) - [#Medusa - 基于 #FRIDA 的 Android 应用程序可扩展二进制插桩框架](https://www.youtube.com/watch?v=Hon7zETJawA) (致谢 [@AndroidAppSec](https://www.youtube.com/@AndroidAppSec)) - [使用 Medusa 进行内存检查](https://www.youtube.com/watch?v=odt21wiUugQ) - [绕过 root 检测](https://twitter.com/ch0pin/status/1381216805683924994) ## 配合 Medusa 使用 Stheno [Stheno](https://github.com/Ch0pin/stheno) 是 Medusa 的一个子项目,专门为此框架内的 intent 监控而设计。以下是关于如何有效设置和使用 Stheno 的快速指南。

monitor

1. **包含 Intent 模块**: 将 `intents/start_activity` 模块添加到你的 Medusa 项目中: medusa> add intents/start_activity 2. **运行 Socket 服务器**: 启动 Medusa socket 服务器以促进通信: medusa> startserver 3. **启动 Stheno**: 打开 Stheno 并导航到 Intent Monitor 菜单,然后点击 **Start** 以开始监控 intent。 # 截图 - SSL Unpinning(绕过 SSL 证书锁定) ![ssl unpinning](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/a3ddfdfcf4173457.png) - Intent 监控 ![Intent monitoring](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/e8d0df98f1173500.png) - Webview 监控 ![Webview monitoring](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/9d1f853f36173503.png) - 文件/Content provider 监控 ![File and content providers](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/a8d158f7ea173505.png) - Native 库枚举 ![Screenshot 2020-09-22 at 16 41 10](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/f186efb243173509.png) - 内存 读/写/搜索(交互模式): ![Screenshot 2020-09-22 at 16 41 10](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/4557162622173511.png) - 个人信息泄露监控 - 翻译 # 致谢: - 特别感谢 [@rscloura](https://github.com/rscloura) 所做的贡献 - Logo 致谢:https://www.linkedin.com/in/rafael-c-ferreira - https://github.com/frida/frida - https://github.com/dpnishant/appmon - https://github.com/brompwnie/uitkyk - https://github.com/shivsahni/APKEnum - https://github.com/0xdea/frida-scripts - https://github.com/Areizen/JNI-Frida-Hook
标签:Android安全, API监控, DAST, Docker, Docker支持, Frida, iOS安全, Python, SecList, SSL Pinning绕过, 云资产清单, 内存取证, 安全防御评估, 恶意软件分析, 抓包分析, 数据可视化, 无后门, 目录枚举, 移动安全, 移动应用测试, 网络安全, 自动化框架, 自定义脚本, 请求拦截, 运行时检测, 逆向工具, 逆向工程, 隐私保护, 隐私合规