背景

没啥背景,老大介绍 + 自己感兴趣,就尝尝鲜呗

介绍

官方地址:https://github.com/MobSF/Mobile-Security-Framework-MobSF

Mobile Security Framework (MobSF) is an intelligent, all-in-one open source mobile application (Android/iOS/Windows) automated pen-testing framework capable of performing static and dynamic analysis. It can be used for effective and fast security analysis of Android, iOS and Windows mobile Applications and supports both binaries (APK, IPA & APPX ) and zipped source code. MobSF can also perform Web API Security testing with it's API Fuzzer that can do Information Gathering, analyze Security Headers, identify Mobile API specific vulnerabilities like XXE, SSRF, Path Traversal, IDOR, and other logical issues related to Session and API Rate Limiting.

MobSF 是一个智能的,整合的开源手机应用(Android,iOS,Windows)自动化测试框架,用于静态及动态测试。它可以用来有效和快速地对手机应用进行安全分析,且支持二进制文件(如 apk、ipa 和 appx)及打包好的源码。MobSF 同样可以通过它的 API Fuzzer 工具执行 Web API 安全测试,模拟像 XXE、SSRF、Path Traversal, IDOR 等和会话及调用频率限制有关的、手机 API 相关威胁逻辑问题。

印度出品

截止写下此文时,最近一次提交是一天前,说明作者还是有持续在维护中的。

从它的介绍 ppt 可以大致看出它的功能列表:

image_1c1l3p5q7c4s148u1olh1tfpiu9p.png-201.9kB

核心功能为:

  1. 静态分析(接近静态扫描,上传安装文件自行扫描)
  2. 动态分析
  3. WEB API 模糊测试(Fuzzer)

特点也相当明确,那就是本地运行,不用上云。

安装及运行

官方很贴心,提供了 docker 镜像:

$ docker pull opensecurity/mobile-security-framework-mobsf
$ docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest

启动后,访问 http://localhost:8000 即可看到网站。

image_1c1l46gfvpdsc6q1dd8kgehvu16.png-70.5kB

首页倒也非常简洁,直接上传文件即可自动分析。可惜用 docker 方式启动的话,只能进行 android 的静态分析,其它功能需要遵循安装文档安装到电脑上。其中 iOS 必须装在 OS X 上。

静态分析

上传文件后,默认进行静态分析。Android 端大致做的事情和用 Drozer 做的分析差不多:扫描四大组件情况(个数、export 情况),反编译源码(java、smali)、mainfest 文件分析等。

主要报告项列举如下:

image_1c1l4f8pc1dbodp41er4ckh14ur1j.png-49.2kB

其中 Code Analysis 比较有意思,会把反编译后的源码中有问题的部分识别成一个个问题,并给出对应反编译源码链接。

image_1c1l4httf1bgqjfo103m13171go20.png-197.8kB

iOS 端检查项相对少一些,主要内容列举如下:

image_1c1nj3jlg1ie469bgp1ru9kbq2q.png-25.8kB

image_1c1nj6fchgk6rv11sb813v51d6f37.png-111.4kB

还有一些挺实用的功能,如查看所有字符串、生成 classdump:

image_1c1njb8rjk0sagl1q8f143i1gs73k.png-18.5kB

image_1c1njc9cdat230a1t2c2j5m4s4h.png-40.4kB

image_1c1njfi1birm1io61tal9meh034u.png-77.1kB

这方面了解不多,不好评判。不过就内容上说,还是挺丰富的。

动态分析

image_1c1l5p3rs4aq7jb17pdh1oj72d.png-157.6kB

通过在 vm 加入 agent 动态获取数据,进行动态分析。同样也可以用于测试是否可以绕过 https 验证。

动态分析支持 4 种部署方式

  1. Dynamic Analysis with MobSF Android 4.4.2 x86 VirtualBox VM -default (Fast, not all Apps work)
  2. Dynamic Analysis with MobSF Android 4.1.2 arm Emulator - (Slow, Most Apps work)
  3. Dynamic Analysis using a Rooted Android 4.03 - 4.4 Device (Very Fast, All Apps work)
  4. Dynamic Analysis using a Rooted Android 4.03 - 4.4 VM (not tested)

从官方介绍上看,root 后的 andorid 4.03-4.4 是最佳选择。

具体部署方式可直接参考 官方文档 。主要用到 Xposed 的 Droidmon, JustTrustMe 和 RootCloak 。

方法 1 中的虚拟机镜像下载了一个放到百度网盘,有需要的同学可以自取:https://pan.baidu.com/s/1kV9YSYF

考虑到部署成本比较高,目前暂时未尝试。待后续补充。

Web API 模糊测试

image_1c1nkd1rr11bq4tv1mma12l71g305b.png-228.1kB

从介绍上说,可以自主完成 SSRF & XXE、 Insecure Direct Object Reference (IDOR)、 Session Related Checks、 Rate Limiter、Security Headers and Info Gathering、Directory/ Path Traversal 这几类 api 扫描。

找不到使用方法,官方说在配置好动态分析后就能用了,暂时放弃。。。

小结

摘抄一下源码分析文章的小结

静态分析

静态分析时,MobSF 主要使用了现有的 dex2jar、dex2smali、jar2java、AXMLPrinter、CertPrint 等工具。其主要完成了两项工作:解析 AndroidManifest.xml 得到了应用程序的各类相关信息、对 apk 进行反编译得到 java 代码,而后利用正则匹配找出该 app 包含的 API 函数、URL、邮箱集帐号密码等敏感信息。

动态分析

而动态分析部分,MobSF 主要利用到了 Xposed 框架、Droidmon 实现对应用程序调用 API 的情况进行监控,并且详细列出了需要分析的 API 列表。同时,MobSF 还使用了 ScreenCast 结合 adb shell input 完成对手机的远程控制功能。动态分析主要操作有:

API Fuzzer

API Fuzzer 模块针对 Web API 的安全性进行检测,如收集信息,分析安全头部信息,识别 API 的具体漏洞,目前支持 SSRF、XXE、Path Traversal 等漏洞的检测。

作为一个开源、可本地部署的安全扫描平台,mobsf 确实能减轻不少安全扫描和分析的工作量。但它和各类安全测试工具一样,只能提供参考数据,真正的分析还得靠人。
搜索过程中,找到 2 个挺不错的文章,也一并分享下:

参考文章


↙↙↙阅读原文可查看相关链接,并与作者交流