美文网首页
移动应用安全|MobSF详细配置过程

移动应用安全|MobSF详细配置过程

作者: Ricsy | 来源:发表于2018-11-15 16:23 被阅读379次

移动安全框架

移动安全框架 (MobSF) 是一款自动化、功能全面的移动应用程序 (Android/iOS/Windows) 笔测试框架, 能够执行静态、动态和恶意软件分析。它可用于 Android、iOS 和 Windows 移动应用程序的有效和快速安全分析, 同时支持二进制文件 (APK、IPA & APPX) 和压缩源代码。MobSF 可以在运行时为 Android 应用程序进行动态应用程序测试, 并具有 web api 模糊功能, 由CapFuzz(web api 特定的安全扫描程序) 提供支持。MobSF 旨在使您的 CI/CD 或 DevSecOps 管道无缝集成。


MobSF配置


环境配置

软件名 本地计算机(Windows) linux服务器
git 下载地址 见教程
python 下载地址 见教程
jdk 下载地址 见教程
wkhtmltopdf 下载地址 见教程
Pycharm 下载地址 -
AndroidStudio 下载地址 -
VitualBox 下载地址 见教程

- 表示不需要安装

说明:

  • 在本地计算机(Windows)进行配置

    1.特别注意环境变量的配置,有jdk、wkhtmltopdf等。

    2.python最好装在除C盘以外的盘。

    3.在pycharm中,安装需求的库,下面是所需库的截图:

注意:应根据txt文件中的库进行安装。

  • 在linux服务器进行配置

    见后面教程。

特别说明:后文的内容涉及的是服务器上的静态分析,没有服务器上的动态分析,windows上的动态分析(操作中包含了静态分析)。


静态分析(linux命令行服务器)


说明:以新建操作系统为ubuntu 16.04 64位的阿里云服务器为例。

  • 下载并安装Xshell6,新建会话并连接服务器,进入控制台如下图:

  • 从github上面下载源码直接进行安装git.

apt-get update

apt install git


  • jdk下载与安装

sudo apt-get install software-properties-common python-software-properties

(针对在Ubuntu下出现add-apt-repository: command not found的错误.)

sudo apt-get update

添加ppa:

sudo add-apt-repository ppa:webupd8team/java

更新系统,刷新软件源:

sudo apt-get update

安装Oracle-java-installer (jdk8):

sudo apt-get install oracle-java8-installer

查看jdk版本

java -version


  • Python下载与安装

wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz

*也可以直接复制网址到迅雷下载,再通过Xshell6的上传文件功能。

apt install lrzsz
rz

解压文件

tar -xvf Python-3.6.2.tar.xz
cd Python-3.6.2
./configure
make -j  4  //采用4个线程编译
make install

*这里提示缺少依赖:zlib。

安装依赖zlib、zlib-devel:
( 在ubuntu里,zlib叫zlib1g,相应的zlib-devel叫zlib1g-dev)

sudo apt-get install zlib1g
sudo apt-get install zlib1g-dev
make install

考虑sqlite3的包:

sudo apt install build-essential checkinstall
sudo apt install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

当安装完成后,使用它来验证主二进制文件的位置:

which python3
python3 -V

cd ..

*如果不是最新的3.6,重启系统.
在Linux中检查Python 3版本.


  • 配置静态分析器

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


说明:地址以代码为准,截图中为实验网站。
cd mobsf
pip3 install virtualenv
virtualenv -p python3 venv( 注:venv为文件名,可新建)
source venv/bin/activate
pip3 install -r requirements.txt

安装wkhtmltopdf(用于生成pdf报告)

#wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox_0.12.5-1.xenial_amd64.deb
安装
dpkg  -i  wkhtmltox_0.12.5-1.xenial_amd64.deb
测试
wkhtmltopdf www.baidu.com  google.pdf

  • 运行MobSF
第一种:直接运行.
python3 manage.py runserver
第二种:在特定端口号上运行.
python3 manage.py runserver PORT_NO 
第三种:向特定 IP 公开 MobSF.
python3 manage.py runserver IP:PORT_NO 例:python3 manage.py runserver 0.0.0.0:8000

注意:这里我们采用第三种。


  • 调试

特别注意:python文件夹与克隆得到的mobsf文件夹应在同级文件夹下,库的安装在mobsf文件夹下进行。

1.假设这台机器名字叫abc(机器的hostname), 每次执行sudo 就出现这个警告讯息:
sudo: unable to resolve host abc
虽然sudo 还是可以正常执行, 所以就直接从/etc/hosts 设定, 让abc(hostname) 可以解回127.0.0.1 的IP 即可.

在127.0.0.1 localhost 下一行加上127.0.1.1 主机名称(hostname) 即可:

cd /etc
vim hosts
127.0.1.1 [hostname]

*常用的xshell用vi命令编辑文本

2.一般库的安装:

python3 -m pip install xx(库名)
(其中pip install --upgrade pip可升级pip的版本)

3.特殊库capfuzz的安装:

git clone https://github.com/MobSF/CapFuzz.git
cd CapFuzz
python3 setup.py install

注意:windows下安装库capfuzz时最好将python安装于除C盘之外的盘符,否则会出现权限问题;而在linux下命令前加sudo。

4.最后输出结果:


动态分析(本地windows电脑)


说明:

MobSF动态分析目前支持Android,可以通过四种方式完成:

  • 使用MobSF Android x86 VirtualBox VM进行动态分析 - 默认(快速,并非所有应用程序都可用)

  • 使用MobSF Android arm模拟器进行动态分析 - (慢,大多数应用程序都可以工作)(不再支持)

  • 使用Rooted Android 设备进行动态分析(非常快,所有应用程序都可以使用)

  • 使用Rooted Android VM进行动态分析(未测试)

通过分析,我们采用第1和3种方式进行配置操作。


配置要求:

  • Rooted Android 设备或VirtualBox

配置步骤:


第一种方式-MobSF Android x86 VirtualBox VM

1.打开VirtualBox,转到管理->导入虚拟电脑,然后选择MobSF_VM_0.3.ova文件。

2.继续导入过程,不用改变任何东西。

3.成功导入OVA后,您将在VirtualBox中看到名为MobSF_VM_0.2的新条目。

4.右键单击MobSF_VM_0.2并选择“设置”,转到“网络”选项卡。在这里,我们需要配置两个网络适配器。

  • 应启用适配器 1并将其连接到仅限主机的适配器。记住适配器的名称。我们需要名称来识别主机/代理IP。
  • 应启用适配器2并将其连接到NAT。

5.保存设置并启动MobSF VM,VM正在启动时,记下VM IP。

注意:如果VM无法正常启动,则无法使用MobSF VM执行动态分析。一旦VM启动,它将呈现锁定屏幕,而锁屏的密码是1234。

6.运行MobSF的主机(电脑)的IP(win+R->cmd->ipconfig)。

注意:VirtualBox仅主机适配器IP和MobSF VM IP应位于同一网络范围内。如果您的MobSF VM IP和适配器IP位于不同的网络范围内,请将适配器IP修改为与MobSF VM IP处于相同的网络范围。
请参阅:当MobSF VM和VirtualBox仅主机适配器不在同一网络范围内时,该怎么办

7.转到MobSF VM中的 Wi-Fi设置,并将代理IP设置为您从上一步获得的主机/代理IP,并将端口号设置为1337。

8.保存设置并导航到MobSF VM的主屏幕 。等待30秒,然后在VirtualBox中保存MobSF VM的快照。

9.保存快照后,右键单击MobSF VM并选择在资源管理器中显示。

10.在任何文本编辑器中打开文件MobSF_VM_0.2.vbox并记下uuid和currentSnapshot(分别对应VM UUID和快照UUID)。

11.转到MobSF/settings.py并设置适当的值为

  • UUID = VM UUID
  • SUUID =快照UUID
  • VM_IP = VM IP
  • PROXY_IP =主机/代理IP

12.在MobSF/settings.py,设置ANDROID_DYNAMIC_ANALYZER = "MobSF_VM"。

13.这已完成MobSF使用Android VirtualBox VM进行动态分析的配置。


第二种方式-Rooted Android 设备

推荐:使用安卓版本为7及以下的手机进行操作,这里用的是红米note2(Android 5.0.2)。

  • 重置设备

  • 在设备的情况下插入SIM(可选)

  • root设备(推荐使用刷机工具刷入含root和xposed的ROM,例如刷机大师

  • 下载Root CheckRoot Checker,看看root是否正确安装。验证后可以删除。


特别说明:如果您使用的是SuperSU,请将其配置为在没有提示的情况下为所有根请求授予访问权限,并取消选中“重新身份验证”。如果您使用的是任何其他root应用程序,请配置类似的选项。

  • 从设备中的开发者选项启用USB调试。(如果您没有找到开发人员选项,请检查此项)

  • 在您的设备中,转到设置 - >安全性,然后选中显示未知来源的选项。

  • 安装WiFi ADB并将其打开,它将显示adb可以连接的IP和PORT。

注意:确保运行MobSF和Android设备的主机连接到相同的WiFi网络并且处于相同的网络范围内。

  • 运行mobsfy.py(../MobSF(工程名) / scripts / mobsfy.py),输入Android设备的IP和PORT编号,然后按Enter键。在下一个选项中,如果要配置Device 选择2。MobSFy脚本将配置您的设备以支持MobSF动态分析。
cd scripts
python mobsfy.py
192.168.31.241:5555   //Android IP(来源于安装运行后的WIFI ADB)

成功运行的截图
  • 脚本成功执行后,您将安装几个文件(root权限允许)。
脚本执行的需要安装的文件
  • Xposed框架安装完成并重启设备,打开Xposed Installer如下:
  • 转到模块,你将看到Droidmon,JustTrustMe和RootCloak。启用所有这些模块。
  • 启用这些模块后,重新启动设备。

  • 设备重新启动后,转到WiFi设置,检查高级选项,然后在代理设置下选择Manual并设置主机名为运行MobSF的主机(电脑)的IP(win+R->cmd->ipconfig),设置端口为1337。

  • 在MobSF/settings.py中,设置DEVICE_IP并DEVICE_ADB_PORT使用从WiFi ADB获得的IP和PORT;设置PROXY_IP和PORT为上一步骤的IP和端口。

  • 您已成功将设备与MobSF动态分析环境配合使用。

注意:如果您在Android设备上进行动态分析,请确保始终打开Wi-Fi ADB.


相关文章

网友评论

      本文标题:移动应用安全|MobSF详细配置过程

      本文链接:https://www.haomeiwen.com/subject/yjnefqtx.html