MobSF框架之动态分析


一、使用配置


【1】方式一:虚拟设备,配置动态分析器(VirtualBox + MobSF_VM.ova)


参考:https://github.com/ajinabraham/Mobile-Security-Framework-MobSF/wiki/1.-Documentation

http://www.freebuf.com/sectool/99475.html

http://www.mottoin.com/92477.html


【2】方式二:Android真机,安装配置相应软件(Xposed框架 + Droidmon/JustTrustMe/RootCloak模块)


参考:https://github.com/ajinabraham/Mobile-Security-Framework-MobSF/wiki/2.-Configure-MobSF-Dynamic-Analysis-Environment-in-your-Android-Device-or-VM


二、动态分析


动态分析的前端展示页面如图所示,主要功能包括:Environment Created,Start / Stop Screen,Install / Remove MobSF RootCA,Start Exported Activity Tester,Start Activity Tester,Take a Screenshot,Finish。




【1】Environment Created


> 设置web代理,用来抓取APP访问流量


> 建立adb连接,adb connect ip:port


> 安装程序,adb install -r xxx.apk


> 运行程序,adb shell am start -m xxx


【2】Start / Stop Screen


> 利用屏幕录制软件screencast提供的服务,来实现实时操作功能


【3】Install / Remove MobSF RootCA


> 安装、卸载RootCA,方便对样本中HTTPS流量进行截获


> adb push ca.crt /xx


> adb shell su -c cp /xx /xxx


【4】Start Exported Activity Tester


> 遍历获取AndroidManifest.xml文件中的所有Exported Activity


> 依次启动activity,adb -s IP:PORT shell am start -n PACKAGE/ACTIVITY


> 获取当前activity运行时的屏幕截图,并保存截屏


> 强制关闭应用,adb -s IP:PORT shell am force-stop PACKAGE


【5】Start Activity Tester


遍历AndroidManifest.xml文件中的所有Activity,而不单单是Exported


> 处理流程与Exported Activity一致


【6】Take a Screenshot


> 截屏并保存到本地


> adb -s IP:PORT shell screencap -p /xx/screen.png


> adb -s IP:PORT pull /xx/screen.png /xxx/xx.png


【7】Finish


> 日志收集:收集程序运行过程中所有dalvikvm的Warning和ActivityManager的Information,以及Xposed目录下的API监控日志


> 日志分析:以正则匹配为主,对日志文件进行分析处理,匹配恶意url、邮箱等特征信息


> MobSF完成检测分析后,将所有可用信息输出到web界面,方便分析人员进行分析




##总结##


对APK进行动态分析时,MobSF主要利用Xposed框架、Droidmon实现对应用程序调用API的情况进行监控,并且可灵活维护一份需要hook的API列表,主要工作包括:


1. 利用webproxy实现代理进而拦截样本流量;


2. 安装证书以便拦截https流量;


3. 遍历所有activity,尽量多的获取各个Activity运行得到的日志;


4. 利用正则匹配出API及参数和返回值;


5. 实时更新恶意url库,以url信息特征进行查杀。


三、参考资料


【1】http://purpleroc.com/MD/2016-08-31@Android%20Malware%20Analysis%20Tool(1)--MobSF.html


更多相关文章

  1. android TranslateAnimation类作动态菜单
  2. android 读取 attr 资源
  3. Android(安卓)lib与libs的区别和解决apk动态加载时异常
  4. Android(安卓)广播内部机制详解(三)
  5. 【Android动态布局】之【LayoutInflater的使用】
  6. Android显示PDF文件之PDFviewer
  7. android动态加载jar包中的图片
  8. 内存优化之其他优化(容器数据遍历方案,arraymap使用及java自动装箱

随机推荐

  1. [Android] Failed to allocate memory: 8
  2. android IPC学习
  3. android top弹出框
  4. android 利用httpclient上传图片
  5. android必备知识(一)java引用类型
  6. Android SDK升级后的错误
  7. Android:Animation专题:1.alpha、scale、t
  8. android 实用sax 读取xml文件内容 附源码
  9. 通过tcpdump抓包使用Wireshark --Android
  10. android adb push 与 adb install的比较(