使用 MobSF 扫描 APP 漏洞

1. MobSF 介绍

Mobile Security Framework (MobSF) 是一个自动化、一体化、智能的移动应用(Android/iOS/Windows)安全分析平台,能够执行静态和动态分析。它支持各种移动应用程序二进制文件(APK、IPA、APPX)和压缩源代码。MobSF 可以作为一个移动应用安全评估的起点,帮助安全研究人员和开发人员发现移动应用中的常见漏洞。

MobSF 的主要特点包括:

  • 静态分析:

    • 对 APK、IPA、APPX 文件进行反编译和代码分析。

    • 识别常见的安全漏洞,如不安全的数据存储、弱加密算法、权限滥用、硬编码敏感信息等。

    • 提供详细的报告,包括文件结构、清单文件分析、代码分析、API 调用、字符串分析等。

  • 动态分析:

    • 通过集成 Frida 和 Genymotion/Android SDK 模拟器,在运行时分析应用程序行为。

    • 捕获网络流量、API 调用、文件系统活动、运行时内存等。

    • 帮助发现仅在运行时显现的漏洞,如逻辑缺陷、会话管理问题等。

  • API 和 CLI 支持:

    • 提供 REST API,方便与其他安全工具或自动化流程集成。

    • 支持命令行接口(CLI),可以进行批量扫描和自动化操作。

  • 易于使用:

    • 提供直观的 Web 界面。

    • 部署相对简单。

2. MobSF 部署

MobSF 可以通过多种方式部署,最常见的是使用 Docker 或直接在 Linux/macOS 环境中安装。以下是基于 Docker 的部署指南,它通常更简单且可移植。

前提条件:

  • 已安装 Docker 和 Docker Compose。

部署步骤:

  1. 克隆 MobSF 仓库(可选,但推荐): 如果您想获取最新的源代码或进行开发,可以克隆 MobSF 的 GitHub 仓库:

    git clone https://github.com/MobSF/Mobile-Security-Framework-MobSF.git
    cd Mobile-Security-Framework-MobSF
    
    

    如果您只是想快速部署,也可以直接使用 Docker Hub 上的镜像。

  2. 拉取 Docker 镜像并运行: 打开终端或命令提示符,执行以下命令:

    docker pull opensecurity/mobsf
    docker run -it -p 8000:8000 opensecurity/mobsf:latest
    
    
    • docker pull opensecurity/mobsf: 从 Docker Hub 拉取 MobSF 官方镜像。

    • docker run -it -p 8000:8000 opensecurity/mobsf:latest: 以后台模式运行 MobSF 容器,并将容器的 8000 端口映射到主机的 8000 端口。-it 用于交互式和伪终端。

  3. 访问 MobSF Web 界面: 容器启动后,在您的 Web 浏览器中访问 http://127.0.0.1:8000http://localhost:8000。您应该能看到 MobSF 的欢迎页面。

注意:

  • 如果您是在虚拟机或云服务器上部署,请确保防火墙已允许 8000 端口的传入连接。

  • 对于动态分析,MobSF 需要与模拟器(如 Genymotion 或 Android Studio 的模拟器)或真实设备进行通信。这需要额外配置 ADB 连接,并且通常需要运行在 Linux 或 macOS 环境中进行,因为动态分析涉及到更多的系统级依赖。

3. MobSF 使用

MobSF 的使用主要分为上传待分析的 APP 文件和查看分析报告。

3.1 静态分析

  1. 上传 APP 文件:

    • 打开 MobSF Web 界面 (http://localhost:8000)。

    • 在主页上,您会看到一个文件上传区域。

    • 点击 "Upload & Analyze" 按钮,或者直接将您的 Android APK 文件或 iOS IPA 文件拖放到该区域。

    • MobSF 将开始上传并自动进行静态分析。分析时间取决于文件大小和您的系统性能。

  2. 查看静态分析报告:

    • 分析完成后,页面会自动跳转到分析报告页面。

    • 报告分为多个部分,包括:

      • 基本信息: 应用名称、包名、版本、SDK 版本等。

      • 签名信息: 应用的数字签名信息。

      • 清单文件分析: AndroidManifest.xml 或 Info.plist 中的权限、组件、URL Scheme 等。

      • 代码分析: 包含潜在漏洞的代码模式,如硬编码密钥、不安全的随机数生成、敏感信息泄露等。

      • 文件系统分析: 识别不安全的文件权限。

      • 网络安全: 检测不安全的网络配置(如信任所有证书)。

      • API 列表: 应用使用的所有 API 列表。

      • 字符串分析: 从二进制文件中提取的字符串,可能包含敏感信息。

      • 漏洞/弱点列表: 总结发现的所有安全问题及其风险等级。

*   您可以点击报告中的各个项来查看更详细的信息,并定位到对应的代码行。

*   报告可以导出为 PDF、JSON 或 CSV 格式。

3.2 动态分析(高级)

动态分析比静态分析更复杂,需要额外的配置。

  1. 环境配置:

    • 模拟器/设备: 确保您有一个正在运行的 Android 模拟器(如 Genymotion、Android Studio AVD)或连接的真实 Android 设备。

    • ADB: 确保 ADB (Android Debug Bridge) 已正确安装并配置在 MobSF 所在的系统上。

    • Frida: MobSF 会自动在设备上部署 Frida Server,但需要确保设备已 root 或已配置 Frida 的免 root 模式。

  2. 启动动态分析:

    • 在 MobSF 静态分析报告页面,如果您已经配置好动态分析环境,会看到 "Dynamic Analysis" 选项卡。

    • 点击 "Start Dynamic Analysis" 按钮。

    • MobSF 会尝试连接到可用的设备/模拟器,并安装 APK。

  1. 执行测试用例:

    • 应用程序在模拟器或设备上启动后,您需要手动与应用程序进行交互,执行各种功能,以触发不同的代码路径和网络请求。

    • MobSF 会在后台捕获这些运行时行为,例如:

      • 网络流量: 捕获 HTTP/HTTPS 请求和响应。

      • API 监控: 监控应用程序的 API 调用。

      • 文件系统: 记录文件读写操作。

      • 内存分析: 捕获内存中的敏感信息。

  2. 生成动态分析报告:

    • 完成交互后,回到 MobSF 界面,点击 "Stop Dynamic Analysis" 按钮。

    • MobSF 将收集所有运行时数据,并生成动态分析报告。

    • 动态分析报告通常包含网络流量详情、API 调用日志、截屏、SSL Pinning 绕过尝试等。

3.3 常见问题和提示

  • 端口占用: 如果 MobSF 无法启动,可能是 8000 端口被其他程序占用。您可以尝试修改 MobSF 配置文件或 Docker 命令中的端口映射。

  • 依赖问题: 如果是非 Docker 部署,请确保所有 Python 依赖和操作系统依赖都已正确安装。

  • Android SDK/ADB: 对于静态分析,ADB 不是必需的。但对于动态分析,ADB 必须正确设置。

  • 文档查阅: MobSF 官方文档是获取最新信息和解决复杂问题的好资源。

希望这份指南能帮助您开始使用 MobSF 进行 APP 漏洞扫描!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容