一、概述

MobSF(Mobile-Security-Framework,移动安全测试框架)是一款智能化、自动化的开源移动应用(Android/iOS/Windows)测试框架,可以对应用进行静态分析和动态分析(动态分析目前暂时只支持Android)。支持对APK文件、IPA文件以及源码压缩包进行审计分析,可以对Android和iOS的应用进行高效快速的安全分析。MobSF框架还可以通过其API Fuzzer功能模块,对Web API的安全性进行检测,包括收集信息、分析安全头部信息、识别移动API的具体漏洞,如XXE、SSRF、路径遍历,IDOR以及其他的与会话和API调用速率限制有关的逻辑问题等。
运行环境
Python 2.7
Oracle JDK 1.7或以上版本
Oracle VirtualBox
iOS IPA分析(需在 Mac系统上执行)所需命令行工具( Mac系统)Conmand-line tool;
硬件配置:4GB 或以上内存,5G硬盘空间。

最新框架和虚拟机下载地址(2018.7.18)
MobSF最新发布版Github下载地址:MobSF;
MobSF VM 0.2 ova 文件百度网盘可以搜到,1.2G左右


二、MobSF使用

1 配置静态分析器

1.1 解压安装

在搭建好运行环境后,从github上下载最新版MobSF并解压,在解压的文件夹路径下打开命令行,通过pip安装MobSF Python 依赖包,本人为windows系统,命令执行操作如下:

pip install -r requirements.txt

本人电脑python有2.7和3.5两个版本,如果显示The script django-admin.exe is installed in 'e:\python35\Scripts' which is not on PATH. 则说明装到了3.5上,按要求应该装到2.7上,于是输入如下命令:

E:\Python27\Scripts\pip.exe install -r requirements.txt

如果pip.exe在脚本目录中不可用,下载及重新安装最新版本的Python2.7。
装完可能会显示newspaper 0.0.9.8 has requirement lxml==3.3.5, but you'll have lxml 4.1.1 which is incompatible. 等,没关系,说明以前装的库所需的库和现在需要的不兼容,以后用到的时候再装就行了。

生成pdf报告

  • 需要单独安装安装wkhtmltopdf二进制文件
  • 在Windows中,需要将包含wkhtmltopdf二进制文件的文件夹添加到环境变量路径中

wkhtmltopdf:下载地址

1.2 运行MobSF

python manage.py runserver

如果需要在具体端口上运行,可以通过以下指令进行,

python manage.py runserver port_number

如果显示[ERROR] Oracle Java (JDK >=1.7) is not found! (F:\广科院\mobsf\Mobile-Security-Framework-MobSF-0.9.5.5\MobSF\utils.py, LINE 214 "for dirname in os.listdir(WIN_JAVA_BASE):"): [Error 3] : 'C:/Program Files/Java/*.*' ,则说明在该路径下未找到JDK,因为本人将java安装在了E盘而非C盘下。于是进入utils.py中查看214行附近,修改代码如下:

WIN_JAVA_LIST = ["C:/Program Files/Java/",                             "C:/Program Files (x86)/Java/",                             "E:/Program Files/Java/"]

如果上述步骤都顺利正常执行的话,那么我们将会看到以下的输出内容,

1.3 静态分析

打开127.0.0.1:8000 ,显示如下网页:

随便选择一个apk文件上传,
发现错误

进入命令行界面发现报错显示You have 16 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): APITester, MobSF, StaticAnalyzer, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

原因是没有对数据库进行初始化,Django中的数据库未完成迁移。所以,我们要执行如下两条命令完成数据库初始化工作(本人只执行了migrate,也ok):

python manage.py makemigrations python manage.py migrate

然后再运行python manage.py runserver,这次终于成功了,界面如下:

此时,默认只能本地访问网站,如果需要其他人也可以访问,需要指定0.0.0.0这个ip,其他人访问的时候就要输入电脑的ip地址加上端口号8000就可以了。(也可以输入其他端口,更改格式 0.0.0.0:8001)

python manager.py runserver  0.0.0.0:8001

此外,也可以根据MD5查找对应的结果页面,也可以查看最近的扫描结果(Recent Scans)。
静态分析获取的信息

APK基本信息:文件名、文件大小、MD5、SHA-1、SHA-256
APP信息:包名、Main Activity、版本号等
组件:Activity、Service、Broadcast Receiver、Content Provider
证书信息(Signer Certificate)
权限信息
Android API信息
manifest分析(标志位、组件配置等)、代码分析、文件分析
url、email、string等

2 配置动态分析器

配置MobSF VM

动态分析器目前只支持针对 Android APK文件进行分析,硬件环境要求为需要计算机拥有4GB 内存和支持完全虚拟化。

首先,配置动态分析器我们需要获取以下4个方面的信息,
(1)VM UUID

(2)快照 UUID

(3)主机/代理 IP

(4)VM/设备 IP

操作步骤参考官方wiki:
https://github.com/MobSF/Mobile-Security-Framework-MobSF/wiki/1.-Documentation

更多相关文章

  1. 定制自己的 Android(安卓)Dialog 信息提示对话框
  2. 使用maven构建android 的apk包并自动签名
  3. Android(安卓)安全机制概述
  4. Android[高级教程] 设计模式之七 单例模式
  5. Android(安卓)自动检测版本并升级
  6. android中的Handler(1)
  7. Android获取应用程序信息——PackageManager的基本使用
  8. Android中Log信息的输出方法
  9. android.widget.Toast——快显信息

随机推荐

  1. Android(安卓)Jetpack 使用入门
  2. android 颜色 获取
  3. android sqlcipher 速度太慢,正确使用sql
  4. 数据短信接收
  5. Android字体
  6. Android(安卓)MapView 申请apiKey
  7. android:windowSoftInputMode属性使用
  8. Android开发错误——Android(安卓)Studio
  9. [置顶] android中自动匹配框AutoComplete
  10. android服务器问题