简介

移动安全框架(MobSF)是一种自动、一体化的移动应用(Android / iOS / Windows)静态和动态分析的测试,恶意软件分析和安全评估框架。

安装

要求

这里只以Windows为例:

cmd安装

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

Windows用户在运行setup.bat之前,请关闭所有MobSF打开过的文件夹和用MobSF打开过的文本编辑器。
这些都会因为引起权限错误造成安装中断。

解决Frida安装失败

exit status 1:
command: 'd:\python\python37\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\pip-install-gg4uv3gi\\frida\\setup.py'"'"'; __file__='"'"'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\pip-i
nstall-gg4uv3gi\\frida\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\ADMINI~1\AppData\Local\Temp\p
ip-record-5dksyuij\install-record.txt' --single-version-externally-managed --compile
cwd: C:\Users\ADMINI~1\AppData\Local\Temp\pip-install-gg4uv3gi\frida\
Complete output (14 lines):
running install
running build
running build_py
creating build
creating build\lib.win32-3.7
creating build\lib.win32-3.7\frida
copying frida\core.py -> build\lib.win32-3.7\frida
copying frida\__init__.py -> build\lib.win32-3.7\frida
running build_ext
error: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)>
querying pypi for available prebuilds
network query failed
looking for prebuilt extension in home directory, i.e. C:\Users\Administrator/frida-12.6.11-py3.7-win32.egg
no prebuilt extension found in home directory
----------------------------------------
ERROR: Command errored out with exit status 1: 'd:\python\python37\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\pip-install-gg4uv3gi\\frida\\setup.py'"'"'; __file__='"'"'C:\\Users\\ADMI
NI~1\\AppData\\Local\\Temp\\pip-install-gg4uv3gi\\frida\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Us
ers\ADMINI~1\AppData\Local\Temp\pip-record-5dksyuij\install-record.txt' --single-version-externally-managed --compile Check the logs for full command output.

MobSF的安装使用及踩坑指南_python


按照报错提示,去​​https://pypi.org/project/frida/#files​​​下载​​frida-12.10.4-py3.8-win-amd64.egg​​ ,并拷贝到提示的目录(​​C:\Users\Administrator/frida-12.6.11-py3.7-win32.egg​​,注意:文件名不一样,需要改名)下。

MobSF的安装使用及踩坑指南_python_02

找不到指定的模块

from _sqlite3 import *

这是因为Anaconda缺少​​sqlite3.dll​​ 。

解决方法就是去官网下载一个:​​https://sqlite.org/download.html​

MobSF的安装使用及踩坑指南_python_03


然后把压缩包里的​​sqlite3.def​​和​​sqlite3.dll​​,解压到Anaconda3.7安装目录下的​​DLLs​​里就可以了。

运行

run.bat

MobSF默认情况下绑定到 ​​0.0.0.0:8000​​​。 您可以在 ​​run.sh​​​ 或 ​​run.bat​​​ 中更改IP或端口。 在您的Web浏览器中,跳转到 ​​http://localhost:8000/​​ 以访问 MobSF Web界面。

配置动态分析

可以使用真实的移动设备进行动态分析,但我们不支持。如果您需要动态分析,请不要在Docker或虚拟机中设置MobSF。

Genymotion Android x86_x64

支持 x86_x64 体系架构 Android 4.1 - 9.0, 最高支持 API 28

Genymotion是首选的动态分析环境,你可以以最小的损耗来进行设置。 **在启动MobSF之前运行Genymotion Android VM。**所有内容都会在运行时自动配置。我们建议使用Android 7.0及更高版本。

  • Android 5.0-9.0-这些版本使用​​Frida​​,开箱即用,无需设置。
  • Android 4.1 - 4.4- 这些版本使用​​Xposed Framework​​​ 并要求您在首次进行Dynamic Analysis之前先移动运行时。这些版本还要求在安装Xposed模块后重新引导VM。
    单击动态分析器页面中的 MobSFy Android Runtime 按钮以分析 Android运行时环境。
  • MobSF的安装使用及踩坑指南_python_04

  • HTTPS 代理

对于Android版本 4.4 - 9.0, 全局代理设置自动应用于运行时
对于Android版本 4.1 - 4.3, 设置“动态分析器”页面中显示的Android VM代理。
如果Dynamic Analyzer无法检测到您的android设备,则需要在 MobSF/settings.py 中手动配置 ​​​ANALYZER_IDENTIFIER​​。

示例: ​​ANALYZER_IDENTIFIER = '192.168.56.101:5555'​​​. 你可以从Genymotion标题栏中找到Android设备IP,默认端口为​​5555​​。

MobSF的安装使用及踩坑指南_android_05

Android Studio 模拟器

支持arm,arm64和x86架构 Android 5.0 - 9.0, 最高 API 28

带有Google Play商店的Android模拟器映像被视为正式映像,你不能在MobSF中使用它。 在没有Google Play商店的情况下创建一个Android虚拟设备(AVD)。不要从Android Studio启动AVD,而应使用“emulator”命令行选项用以可写入的方式启动。

为此,将您的Android SDK仿真器目录添加到​​PATH​​。

一些示例路径

  • Mac -​​/Users/<user>/Library/Android/sdk/emulator​
  • Linux -​​/home/<user>/Android/Sdk/emulator​
  • Windows -​​C:\Users\<user>\AppData\Local\Android\Sdk\emulator​​ 列出可用的Android虚拟设备(AVD)
$ emulator -list-avds
Pixel_2_API_29
Pixel_3_API_28
Pixel_XL_API_24
Pixel_XL_API_25

仅支持API 28以下的Android图像!!

设置 ADB_BINARY 路径在 MobSF/settings.py.

确保您使用的是Android Studio附带的adb二进制文件。如果使用其他版本,则可能会导致冲突并在尝试动态分析时引入问题。

一些示例位置

ADB_BINARY = '/Users/<user>/Library/Android/sdk/platform-tools/adb' # Mac
ADB_BINARY = '/home/<user>/Android/Sdk/platform-tools/adb' # Linux
ADB_BINARY = 'C:\\Users\\<user>\\AppData\\Local\\Android\\Sdk\\platform-tools\\adb.exe' # Windows
ADB_BINARY = 'C:/Users/<user>/AppData/Local/Android/sdk/platform-tools/adb.exe' # Windows

执行Android虚拟设备 (AVD)

执行一个 AVD 在启动 MobSF 之前 使用 emulator 命令行参数.

$ emulator -avd <non_production_avd_name>

一切都会在运行时自动配置。 MobSF需要AVD版本5.0到9.0进行动态分析。我们建议使用Android 7.0及更高版本。

HTTPS 代理

对于Android版本5.0-9.0,全局代理设置会在运行时自动应用。
GApps 在 AVD (可选)

如果需要GApp,请从https://opengapps.org/查找合适的软件包

unzip open_gapps-<your-version>.zip 'Core/*'
rm Core/setup*
lzip -d Core/*.lz
for f in $(ls Core/*.tar); do
tar -x --strip-components 2 -f $f
done

运行测试

我们使用tox进行测试。 在 virtualenv 外部安装tox。

pip install tox

用于风格检查

tox -e lint

用于运行风格检查和测试

tox -e lint,test

更新MobSF

cd Mobile-Security-Framework-MobSF/
git pull origin master
.\venv\Scripts\activate
pip install --no-cache-dir -r requirements.txt
python manage.py makemigrations
python manage.py makemigrations StaticAnalyzer
python manage.py migrate
deactivate

如果以上更改均无效,则可能必须再次运行setup.sh或setup.bat,这将删除先前的扫描结果。

参考

​https://mobsf.github.io/docs/#/zh-cn/​​​​​

​ https://www.yuque.com/cryzlasm/auto/zwhrr5​