Mobsf_MAC_AVD_Android动静态环境搭建排坑实战
2023-3-5 08:5:40 Author: 白帽子(查看原文) 阅读量:45 收藏

STATEMENT

声明

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测及文章作者不为此承担任何责任。

雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。

分子实验室 https://molecule-labs.com/

前言

关于Mobsf一直没有看到比较全面的实战的教程或者最佳实践发出来,由于目前手头有的MAC+Android Studio,加上最近任务,就想组个动态分析本地可复用的虚拟环境,这里记录了下搭建过程,并给出了最近的任务动态分析结果。测试下来效果还不错,因为Mobsf在git上的维护还比较频繁觉得算是个不错的辅助工具。

测试设备的一些简单信息摘要:

MAC x86_64

Android Studio AVD 安卓模拟器

安卓版本Nexus_5X_API_26_64_api

NO.1 Mobsf环境要求

静态分析要求

● Mac

    ● 安装 Git

    (https://www.atlassian.com/git/tutorials/install-git) 

    ● 安装 Python 3.8-3.9

    (https://www.python.org/)

    ● After installing Python 3.8+, go to /Applications/Python 3.8/ and run Update Shell Profile.command and Install Certificates.command

    ● 安装 JDK 8+

    (https://www3.ntu.edu.sg/home/ehchua/programming/howto/JDK_Howto.html) 

    ● 安装命令行工具 xcode-select --install

    ● 下载和安装 wkhtmltopdf 

    (https://wkhtmltopdf.org/downloads.html)

     按照 WIKI操作指南

    (https://github.com/JazzCore/python-pdfkit/wiki/Installing-wkhtmltopdf) 

    ● macOS Mojave 用户, 请安装 headers(如果可用):

sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /Copy to clipboardErrorCopied

● Windows App静态分析需要Mac和Linux的Windows主机或Windows VM。

更多信息:

(https://github.com/MobSF/Mobile-Security-Framework-MobSF/blob/master/mobsf/install/windows/readme.md) 

● 操作指南:

    ● 安装 Git sudo apt-get install git

    ● 安装 Python 3.8-3.9 sudo apt-get install python3.8

    ● 安装 JDK 8+ sudo apt-get install openjdk-8-jdk

    ● 安装以下依赖项

sudo apt install python3-dev python3-venv python3-pip build-essential libffi-dev libssl-dev libxml2-dev libxslt1-dev libjpeg8-dev zlib1g-dev wkhtmltopdfCopy to clipboardErrorCopied

● Windows App静态分析需要Mac和Linux的Windows主机或Windows VM。 

更多信息:

(https://github.com/MobSF/Mobile-Security-Framework-MobSF/blob/master/mobsf/install/windows/readme.md) 

● Windows

    ● 安装 Git

    (https://git-scm.com/download/win)

    ● 安装 Python 3.8-3.9

    (https://www.python.org/)

    ● 安装 JDK 8+

    (https://www3.ntu.edu.sg/home/ehchua/programming/howto/JDK_Howto.html)

    ● 安装 Microsoft Visual C++ Build Tools

    (https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16)

    ● 安装 OpenSSL (non-light)

    (https://slproweb.com/products/Win32OpenSSL.html)

    ● 下载和安装 wkhtmltopdf 

    (https://wkhtmltopdf.org/downloads.html)

    as per the WIKI操作指南

    (https://github.com/JazzCore/python-pdfkit/wiki/Installing-wkhtmltopdf)

    ● 将包含 wkhtmltopdf 二进制文件的文件夹添加到环境变量PATH。

动态分析要求

 如果您使用MobSF docker容器或在虚拟机中设置MobSF,则动态分析将不起作用。

● 安装 Genymotion 

(https://www.genymotion.com/fun-zone/) 

或者 Android Studio Emulator

(https://developer.android.com/studio)

NO.2 安装

Linux/Mac

(https://mobsf.github.io/docs/# /zh-cn/installation?id=linuxmac)

git clone https://github.com/MobSF/Mobile-Security-Framework-MobSF.gitcd Mobile-Security-Framework-MobSF./setup.shCopy to clipboardErrorCopied

NO.3 运行MobSF

Linux/Mac

(https://mobsf.github.io/docs/# /zh-cn/running?id=linuxmac)

./run.sh 127.0.0.1:8000

注意:
MobSF动态分析需要满足的条件:
● Genymotion Android VM version 4.1 - 10.0 (x86, upto API 29)
● Android Emulator AVD (non production) version 5.0 - 9.0 (arm, arm64, x86, and x86_64 upto API 28)

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

/Users/[your_name]/Library/Android/sdk/tools/emulator
emulator -avd Nexus_5X_API_28 -writable-system

NO.4 配置动态分析

MobSF动态分析需要满足的条件:

● Genymotion Android VM version 4.1 - 10.0 (x86, upto API 29)
● Android Emulator AVD (non production) version 5.0 - 9.0 (arm, arm64, x86, and x86_64 upto API 28)

这里使用的是Android Emulator AVD,安卓8.0+86x64+api版

这里根据自己的机器进行选择,测试主机机使用的mac x86架构,为了规避动态调试高版本安卓需要关闭OEM,Android Studio的AVD系统中找不到关闭OEM的尴尬处境,最终选择了安卓9以下的适配版本。如果你也用的AVD,建议直接使用8.0,防止remount failed问题找不到OEM关闭导致环境失败问题。

确定好avd之后,更新mobsf配置,这里我的avd模拟器名为emulator-5554

# =======ANDROID DYNAMIC ANALYSIS SETTINGS===========ANALYZER_IDENTIFIER = 'emulator-5554'FRIDA_TIMEOUT = 4

这里的原理可以通过下面这个命令理解,他是通过adb -s 指定devicename的。ANALYZER_IDENTIFIER也就是使用adb devices中的内容即可。

'['/Users/xt/Library/Android/sdk/platform-tools/adb', '-s', 'emulator-5554', 'shell', 'pm', 'list', 'packages', '-f', '-3']'

查看自己的device name

╭─[email protected] ~/Downloads/data ╰─$ adb devicesList of devices attachedemulator-5554  device

创建模拟器恢复点

需要创建用于后续恢复的还原点,这里需要准备frida-server用于动态调试。这里官方的原文说明中没有给出,因此我们总结如下 :

1、下载frida-server
参考:https://github.com/frida/frida/releases
如果是在mac x86架构64位下面使用模拟器进行调试,下载frida-server-x.x.x-android-x86_64,如果是使用实体手机进行运行的话,下载frida-server-x.x.x-android-arm,根据测试时间使用的最新版本以及适配的类型,我这选择frida-server-15.1.4-android-x86_64下载。

2、adb push到模拟器中

 cd ~/Downloads # 到存放frida-server-15.1.4-android-x86_64解压完成的目录下 adb root adb push frida-server-15.1.4-android-x86_64 /data/local/tmp/ frida-server-15.1.4-android-x86_64: 1 ... 118.1 MB/s (97874840 bytes in 0.790s)# 修改frida-server权限,并且在后台开启启用 chmod 777 frida-server-15.1.4-android-x86_64 nohup ./frida-server-15.1.4-android-x86_64  &   # 在后台运行frida-server服务

环境布置完,拍摄快照用于保存环境情况:

相关链接:
mobsf frida错误https://github.com/MobSF/Mobile-Security-Framework-MobSF/issues/1828
mac安装frida-serverhttps://www.jianshu.com/p/15a4bf14d0a5

启动模拟器

AVD环境准备好后,启动模拟器,这里需要注意找到本地模拟器位置,~/Library/Android/sdk/emulator ,还要使用可写模式启动:

╭─[email protected] ~/Library/Android/sdk/emulator ╰─$ emulator -avd Nexus_5X_API_26_64_api -writable-system

一句话开启模拟器环境+可写模式+不保存模式,但是由于无法拍照会经常崩溃,而且经常我的快照收到影响,这里不推荐,只能算提一下思路。

emulator -avd Nexus_5X_API_26_64_api -no-snapshot-save -writable-system -snapshot 干净系统+fridaserver开启

运行测试动态分析

1、设置代理,这里直接使用的是我本地的SSR

export http_proxy=127.0.0.1:1087
export https_proxy=127.0.0.1:1087

2、运行mobsf

mobsf 127.0.0.1:8000

3、进入动态分析

点击dynamic进入动态分析界面

同时check终端,一切正常 ![img](Mobsf_MAC_AVD_Android动静态环境搭建排坑实战/1634823399872-74cc26e0-08f7-49ab-8030-20f66173e9ef.png)

4、配置完成

5、在开始动态分析之前,开启frida-server,由于每次进入动态分析界面,mobsf会自动重启adb环境,因此这里需要重新载入前面配置好的frida-server镜像。或者手动进入adb shell启动frida-server即可。

6、点击start instrumentation 即可动态分析

检测正常、导出功能正常

排坑

问题:

VM's /system is not writable. This VM cannot be used for Dynamic Analysis.[ERROR] 20/Oct/2021 05:27:51 - Please start the AVD as per MobSF documentation!raise CalledProcessError(retcode, process.args,subprocess.CalledProcessError: Command '['/Users/xt/Library/Android/sdk/platform-tools/adb', '-s', 'emulator-5554', 'shell', 'pm', 'list', 'packages', '-f', '-3']' returned non-zero exit status 1.

解决:
目前(使用 Build Tools v26,如果 Google 没有像他们那样经常更改内容),如果您-writable-system在从命令行启动模拟器时使用该指令,它将允许/system通过重新启动持久化分区。也就是说,您将能够写入/system分区,如果您重新启动,更改仍将保留。
emulator -avd<avd_name -writable-system<="" span="">
这也将您对qcow2图像文件的更改通常保存在.android/avd/<avd_name.avd system.img.qcow2<="" span="">
您甚至可以复制此system.img.qcow2文件,使用-wipe-data指令从 AVD 中擦除数据,将此文件放回目录中,重新启动,您最初所做的系统更改仍将保留。(警告:至少现在,因为谷歌一直在改变事物)
参考:

https://stackoverflow.com/questions/15417105/forcing-the-android-emulator-to-store-changes-to-system

问题:

╰─$ emulator -avd Nexus_5X_API_26_64_api -writable-system           [4710067712]:ERROR:android/android-emu/android/qt/qt_setup.cpp:28:Qt library not found at ../emulator/lib64/qt/libCould not launch '/Users/xt/Library/Android/sdk/../emulator/qemu/darwin-x86_64/qemu-system-x86_64': No such file or directory

解决:

1、关闭模拟器

2、cd ~/Library/Android/sdk/emulator

3、emulator -avd Nexus_5X_API_26_64_api -writable-system

4、顺利启动了

问题:
Cannot download frida-server binary. You will need frida-server-15.0.8-android-x86_64 in /Users/xt/.MobSF/downloads/ for Dynamic Analysis to work
解决过程:

1、重新安装frida
考:https://www.jianshu.com/p/15a4bf14d0a5

2、adb push
adb push frida-server-15.1.4-android-x86_64 /data/local/tmp/
frida-server-15.1.4-android-x86_64: 1 ... 118.1 MB/s (97874840 bytes in 0.790s)

(实体机一般frida-server-15.1.4-android-arm64,模拟器一般frida-server-15.1.4-android-x86_64,我这里使用的mac是x86架构64位的)

chmod u+x frida-server-15.1.4-android-x86_64
./frida-server-15.1.4-android-x86_64

问题:
remount of the / superblock failed: Permission denied
解决:
adb root
adb disable-verity
adb reboot
adb root
adb remount
参考:

https://blog.csdn.net/qq_43804080/article/details/102586939

问题:

remount of the / superblock failed: Permission denied
remount failed
解决:
关闭OEM
然后再执行
adb root
adb disable-verity
adb reboot
adb root
adb remount

问题:
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='raw.githubusercontent.com', port=443): Read timed out. (read timeout=3)
解决:
挂代理、模拟器挂代理

mobsf参考:
http://purpleroc.com/MD/[email protected] Malware Analysis Tool(1)--MobSF.html

问题:

adb的一些坑

adb shell

error: more than one device and emulator

adb devices
adb shell -s

如果实际上只有一个设备或模拟器,并且查到有offline的状态;那就说明是ADB本身的BUG所导致的,就需要用如下的方法处理下了:

adb kill-server
taskkill /f /im adb

第一条命令是杀ADB的服务,第二条命令是杀ADB的进程!
如果第一条没有用,才考虑用第二条命令再试试看的!

RECRUITMENT

招聘启事

安恒雷神众测SRC运营(实习生)
————————
【职责描述】
1.  负责SRC的微博、微信公众号等线上新媒体的运营工作,保持用户活跃度,提高站点访问量;
2.  负责白帽子提交漏洞的漏洞审核、Rank评级、漏洞修复处理等相关沟通工作,促进审核人员与白帽子之间友好协作沟通;
3.  参与策划、组织和落实针对白帽子的线下活动,如沙龙、发布会、技术交流论坛等;
4.  积极参与雷神众测的品牌推广工作,协助技术人员输出优质的技术文章;
5.  积极参与公司媒体、行业内相关媒体及其他市场资源的工作沟通工作。

【任职要求】 
 1.  责任心强,性格活泼,具备良好的人际交往能力;
 2.  对网络安全感兴趣,对行业有基本了解;
 3.  良好的文案写作能力和活动组织协调能力。

简历投递至 

[email protected]

设计师(实习生)

————————

【职位描述】
负责设计公司日常宣传图片、软文等与设计相关工作,负责产品品牌设计。

【职位要求】
1、从事平面设计相关工作1年以上,熟悉印刷工艺;具有敏锐的观察力及审美能力,及优异的创意设计能力;有 VI 设计、广告设计、画册设计等专长;
2、有良好的美术功底,审美能力和创意,色彩感强;

3、精通photoshop/illustrator/coreldrew/等设计制作软件;
4、有品牌传播、产品设计或新媒体视觉工作经历;

【关于岗位的其他信息】
企业名称:杭州安恒信息技术股份有限公司
办公地点:杭州市滨江区安恒大厦19楼
学历要求:本科及以上
工作年限:1年及以上,条件优秀者可放宽

简历投递至 

[email protected]

安全招聘

————————

公司:安恒信息
岗位:Web安全 安全研究员
部门:战略支援部
薪资:13-30K
工作年限:1年+
工作地点:杭州(总部)、广州、成都、上海、北京

工作环境:一座大厦,健身场所,医师,帅哥,美女,高级食堂…

【岗位职责】
1.定期面向部门、全公司技术分享;
2.前沿攻防技术研究、跟踪国内外安全领域的安全动态、漏洞披露并落地沉淀;
3.负责完成部门渗透测试、红蓝对抗业务;
4.负责自动化平台建设
5.负责针对常见WAF产品规则进行测试并落地bypass方案

【岗位要求】
1.至少1年安全领域工作经验;
2.熟悉HTTP协议相关技术
3.拥有大型产品、CMS、厂商漏洞挖掘案例;
4.熟练掌握php、java、asp.net代码审计基础(一种或多种)
5.精通Web Fuzz模糊测试漏洞挖掘技术
6.精通OWASP TOP 10安全漏洞原理并熟悉漏洞利用方法
7.有过独立分析漏洞的经验,熟悉各种Web调试技巧
8.熟悉常见编程语言中的至少一种(Asp.net、Python、php、java)

【加分项】
1.具备良好的英语文档阅读能力;
2.曾参加过技术沙龙担任嘉宾进行技术分享;
3.具有CISSP、CISA、CSSLP、ISO27001、ITIL、PMP、COBIT、Security+、CISP、OSCP等安全相关资质者;
4.具有大型SRC漏洞提交经验、获得年度表彰、大型CTF夺得名次者;
5.开发过安全相关的开源项目;
6.具备良好的人际沟通、协调能力、分析和解决问题的能力者优先;
7.个人技术博客;
8.在优质社区投稿过文章;

岗位:安全红队武器自动化工程师
薪资:13-30K
工作年限:2年+
工作地点:杭州(总部)

【岗位职责】
1.负责红蓝对抗中的武器化落地与研究;
2.平台化建设;
3.安全研究落地。

【岗位要求】
1.熟练使用Python、java、c/c++等至少一门语言作为主要开发语言;
2.熟练使用Django、flask 等常用web开发框架、以及熟练使用mysql、mongoDB、redis等数据存储方案;
3:熟悉域安全以及内网横向渗透、常见web等漏洞原理;
4.对安全技术有浓厚的兴趣及热情,有主观研究和学习的动力;
5.具备正向价值观、良好的团队协作能力和较强的问题解决能力,善于沟通、乐于分享。

【加分项】
1.有高并发tcp服务、分布式等相关经验者优先;
2.在github上有开源安全产品优先;
3:有过安全开发经验、独自分析过相关开源安全工具、以及参与开发过相关后渗透框架等优先;
4.在freebuf、安全客、先知等安全平台分享过相关技术文章优先;
5.具备良好的英语文档阅读能力。

简历投递至

[email protected]

岗位:红队武器化Golang开发工程师

薪资:13-30K
工作年限:2年+
工作地点:杭州(总部)

【岗位职责】
1.负责红蓝对抗中的武器化落地与研究;
2.平台化建设;
3.安全研究落地。

【岗位要求】
1.掌握C/C++/Java/Go/Python/JavaScript等至少一门语言作为主要开发语言;
2.熟练使用Gin、Beego、Echo等常用web开发框架、熟悉MySQL、Redis、MongoDB等主流数据库结构的设计,有独立部署调优经验;
3.了解docker,能进行简单的项目部署;
3.熟悉常见web漏洞原理,并能写出对应的利用工具;
4.熟悉TCP/IP协议的基本运作原理;
5.对安全技术与开发技术有浓厚的兴趣及热情,有主观研究和学习的动力,具备正向价值观、良好的团队协作能力和较强的问题解决能力,善于沟通、乐于分享。

【加分项】
1.有高并发tcp服务、分布式、消息队列等相关经验者优先;
2.在github上有开源安全产品优先;
3:有过安全开发经验、独自分析过相关开源安全工具、以及参与开发过相关后渗透框架等优先;
4.在freebuf、安全客、先知等安全平台分享过相关技术文章优先;
5.具备良好的英语文档阅读能力。

简历投递至

[email protected]

END

长按识别二维码关注我们


文章来源: http://mp.weixin.qq.com/s?__biz=MzAwMDQwNTE5MA==&mid=2650246552&idx=1&sn=d16db75b863e8a34dcc0789381bd3e47&chksm=82ea5631b59ddf270d9b3b1b94a234c981dc15d50f1455a3b5c312c14594a309962465603085#rd
如有侵权请联系:admin#unsafe.sh