Android漏洞挖掘三板斧——drozer+Inspeckage(xposed)+MobSF
目录
一、前言最近在学习Android APP客户端漏洞挖掘过程中,对Android APP端漏洞挖掘做了一个基本的梳理总结本节主要是在介绍Android APP漏洞挖掘过程中,使用常见的Android漏洞挖掘工具的安装和使用办法,帮助Android漏洞挖掘人员提供便利。本文里面一部分的介绍采摘与网络博客,大家可以点击对应的网址进行查看。
为什么选择drozer+Inspeckage+Mobsf三个工具呢,这是因为在我进行Android APP漏洞挖掘的过程中,这三个工具很好的提供了自动化的分析和一些对应的hook技术,极大的方便了Android APP漏洞挖掘工作。下面将依次介绍每一种工具的安装和使用,后续继续会用一些案例来实际操作。
二、Android APP漏洞介绍根据中国互联网协会APP数据安全测评服务工作组在2020年发布的《移动应用安全形势研究报告》中显示,2020 年度收录存在安全漏洞威胁的 APK 860 万余个,同 一 App 普遍存在多个漏洞。其中存在的 Janus 漏洞风险 App 数量最多,占监测总量的 78.13%;其次是 Java 代码加壳检 测,占总量的 62.45%;排在第三位的是动态注册 Receiver 风险,占总量的 61.16%。
根据爱加密的Android客户端常见漏洞调研显示,Android方向的漏洞总共可以分为三个方面:组件安全、业务安全、数据安全。
我们可以看出针对不同的安全问题,我们在进行Android APP漏洞挖掘的过程中,也应该有针对性的进行漏洞挖掘。我们更加具体的组件分类,可以大致查看一些Android APP常见安全漏洞:https://ayesawyer.github.io/2019/08/21/Android-App%E5%B8%B8%E8%A7%81%E5%AE%89%E5%85%A8%E6%BC%8F%E6%B4%9E/
根据Android 安全分析平台的Android APP审计系统显示,这也为我们进行Android APP客户端的漏洞挖掘提供了详细的方案:
综上,我们对Android APP漏洞挖掘和Android安全测试就有了一个初步的认识,接下来我们来看这三个神器具体是怎么安装和使用,帮助我们移动安全分析人员提供便利。
三、工具的安装和使用 1.drozer (1)drozer介绍1
2
3
drozer是一款针对Android系统的安全测试框架,可以分成两个部分:其一是“console”,它运行在本地计算机上;其二是“server”,它是一个安装在目标Android设备上的app,当使用console与Android设备交互时,就是把Java代码输入到运行在实际设备上的drozer代理(agent)中。
根据drozer官方的描述,drozer主要是有助于Android研究人员去测试一些共享的Android漏洞,对于远程攻击,可以生成shellcode来帮助开发人员将drozer Agent 部署为远程管理员工具,从而最大程度利用设备。
drozer是一个全面的安全审计和攻击框架,可以进行更快的Android安全评估,通过自动化繁琐和耗时的工作,帮助减少Android安全评估所花费的时间。还可以针对真实的Android设备进行测试,drozer不需要启用USB调试或其他开发功能,还可以自动化和扩展,测试公共漏洞的暴露程度。
(2)安装准备1
2
3
(
1
)drozer官方地址:https:
/
/
labs.f
-
secure.com
/
tools
/
drozer
/
(
2
)drozer github:https:
/
/
github.com
/
mwrlabs
/
drozer
(
3
)下载及drozer用户手册:https:
/
/
labs.mwrinfosecurity.com
/
tools
/
drozer
/
(3)安装我们在这里主要列举Windows端和Linux端的安装:
1.Windows端:
我们在Windows安装时,首先需要配置环境:
1
2
3
4
jdk1.
8
python
2.7
android sdk
其中python的版本必须为
2.7
版本,因为drozer现在只支持python2.
7
版本
我们先从官网上下载drozer(RPM)和agent.apk
服务端安装:
我们下载drozer(RPM)后解压,然后点击setup安装,一路默认安装就可以了,它会自动安装到C:\drozer文件夹下
我们检测是否成功安装,进入bin目录下,在cmd中执行drozer.bat,出现下面的图就说明成功安装了
客户端安装:
我们将agent.apk 安装到手机上:
安装完成后手机启动drozer,点击右下角开启端口转发按钮
然后我们在电脑的终端中输入命令转发端口:
1
adb forward tcp:
31415
tcp:
31415
最后我们在终端中进入drozer的安装目录下,输入命令运行:
此时我们就可以正常使用drozer框架,来进行我们的测试工作了。
2.Linux端安装(Kali)
Linux上的安装因为需要的库比较多,所以很容易出错,大家最好按照这个步骤一步步来
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
首先,我们需要将python环境配置成python
2.7
.
0
wget https:
/
/
github.com
/
FSecureLABS
/
drozer
/
releases
/
download
/
2.4
.
4
/
drozer
-
2.4
.
4
-
py2
-
none
-
any
.whl
apt
-
get
-
-
assume
-
yes install python
-
pip
pip2 install wheel
pip2 install pyyaml
pip2 install pyhamcrest
pip2 install protobuf
pip2 install pyopenssl
pip2 install twisted
pip2 install service_identity
pip2 install drozer
-
2.4
.
4
-
py2
-
none
-
any
.whl
安装jdk8: apt
-
get install
-
-
assume
-
yes openjdk
-
8
-
jdk
-
headless
安装adb: apt
-
get
-
-
assume
-
yes install adb
下载客户端并安装:https:
/
/
labs.f
-
secure.com
/
tools
/
drozer
/
在客户端中打开
31415
端口,然后进行端口转发:
adb forward tcp:
31415
tcp:
31415
最后启动drozer:drozer console connect
参考网址:
https:
/
/
blog.csdn.net
/
LoopherBear
/
article
/
details
/
84030567
https:
/
/
github.com
/
FSecureLABS
/
drozer
/
issues
/
350
https:
/
/
github.com
/
FSecureLABS
/
drozer
/
issues
/
357
一些drozer安装常规问题解决方案:https://blog.csdn.net/Jession_Ding/article/details/82528142
(4)基本使用drozer的一些常用指令:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
>
list
/
/
列出目前可用的模块,也可以使用ls
>
help
app.activity.forintent
/
/
查看指定模块的帮助信息
> run app.package.
list
/
/
列出android设备中安装的app
> run app.package.info
-
a com.android.browser
/
/
查看指定app的基本信息
> run app.activity.info
-
a com.android.browser
/
/
列出app中的activity组件
> run app.activity.start
-
-
action android.intent.action.VIEW
-
-
data
-
uri http:
/
/
www.google.com
/
/
开启一个activity,例如运行浏览器打开谷歌页面
> run scanner.provider.finduris
-
a com.sina.weibo
/
/
查找可以读取的Content Provider
> run app.provider.query content:
/
/
settings
/
secure
-
-
selection
"name='adb_enabled'"
/
/
读取指定Content Provider内容
> run scanner.misc.writablefiles
-
-
privileged
/
data
/
data
/
com.sina.weibo
/
/
列出指定文件路径里全局可写
/
可读的文件
> run shell.start
/
/
shell操作
> run tools.setup.busybox
/
/
安装busybox
>
list
auxiliary
/
/
通过web的方式查看content provider组件的相关内容
>
help
auxiliary.webcontentresolver
/
/
webcontentresolver帮助
> run auxiliary.webcontentresolver
/
/
执行在浏览器中以http:
/
/
localhost:
8080
即可访问
以sieve示例
> run app.package.
list
-
f sieve
/
/
查找sieve应用程序
> run app.package.info
-
a com.mwr.example.sieve
/
/
显示app.package.info命令包的基本信息
> run app.package.attacksurface com.mwr.example.sieve
/
/
确定攻击面
> run app.activity.info
-
a com.mwr.example.sieve
/
/
获取activity信息
> run app.activity.start
-
-
component com.mwr.example.sieve com.mwr.example.sieve.PWList
/
/
启动pwlist
> run app.provider.info
-
a com.mwr.example.sieve
/
/
提供商信息
> run scanner.provider.finduris
-
a com.mwr.example.sieve
/
/
扫描所有能访问地址
> run app.provider.query content:
/
/
com.mwr.example.sieve.DBContentProvider
/
Passwords
/
-
-
vertical
/
/
查看DBContentProvider
/
Passwords这条可执行地址
> run app.provider.query content:
/
/
com.mwr.example.sieve.DBContentProvider
/
Passwords
/
-
-
projection
"'"
/
/
检测注入
> run app.provider.read content:
/
/
com.mwr.example.sieve.FileBackupProvider
/
etc
/
hosts
/
/
查看读权限数据
> run app.provider.download content:
/
/
com.mwr.example.sieve.FileBackupProvider
/
data
/
data
/
com.mwr.example.sieve
/
databases
/
database.db
/
home
/
user
/
database.db
/
/
下载数据
> run scanner.provider.injection
-
a com.mwr.example.sieve
/
/
扫描注入地址
> run scanner.provider.traversal
-
a com.mwr.example.sieve
> run app.service.info
-
a com.mwr.example.sieve
/
/
查看服务
我们在测试过程中,常用测试指令:
四大组件模块:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
(
1
)Activity:
app.activity.forintent
-
-
找到可以处理已指定的包
app.activity.info
-
-
获取activity组件信息
app.activity.start
-
-
开启activity组件
scanner.activity.browsable
-
-
获取可从web浏览器调用的所有可浏览的activity组件
(
2
)Service:
app.service.info
-
-
获取service组件信息
app.service.send
-
-
向服务组件发送消息并显示答复
app.service.start
-
-
开启service组件
app.service.stop
-
-
停止service组件
(
3
)Content Provider:
app.provider.columns
-
-
在内容提供程序中列出列
app.provider.delete
-
-
在内容提供程序中删除
app.provider.download
-
-
在内容提供程序中下载支持文件
app.provider.finduri
-
-
在包中查找引用的内容URIS
app.provider.info
-
-
获取Content Provider组件信息
app.provider.insert
-
-
插入到Content Provider组件中
app.provider.query
-
-
查询Content Provider组件
app.provider.read
-
-
从支持文件的Content Provider读取
app.provider.update
-
-
更新Content Provider的记录
scanner.provider.finduris
-
-
搜索可从上下文中查询的Content Provider
scanner.provider.injection
-
-
测试Content Provider的注入漏洞
scanner.provider.sqltables
-
-
查找可通过SQL注入漏洞访问的表
scanner.provider.traversal
-
-
测试Content Provider的基本目录遍历漏洞
(
4
)Broadcast Receivers:
app.broadcast.info
-
-
获取有关广播接收器的信息
app.broadcast.send
-
-
带目的发送广播
app.broadcast.sniff
-
-
注册一个能嗅出特定意图的广播接收器
获取APP包信息:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
app.package.attacksurface
-
-
-
-
-
-
获取包攻击面
app.package.backup
-
-
-
-
-
-
列出使用备份API的包(在标记“允许备份”时返回true)
app.package.debuggable
-
-
-
-
-
-
查找可调试包
app.package.info
-
-
-
-
-
-
获取有关已安装软件包的信息
app.package.launchintent
-
-
-
-
-
-
获取包的启动意图
app.package.
list
-
-
-
-
-
-
列出程序包
app.package.manifest
-
-
-
-
-
-
获取包的AndroidManifest.xml
app.package.native
-
-
-
-
-
-
查找嵌入在应用程序中的本地库
app.package.shareduid
-
-
-
-
-
-
查找具有共享uid的包
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
1.
连接drozer:
drozer.bat console connect
2.
列出详细APP信息:
run app.package.info
-
a com.xxx.xxxx
3.
查看APP的配置信息
run app.package.manifest com.xxx.xxxx
3.
分析是否存在攻击攻击点
run app.package.attacksurface com.xxx.xxxx
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
Activity测试:
4.
获取Activity信息
命令 run app.activity.info
-
a
示例 run app.activity.info
-
a com.xxx.xxxx
5.Activity
跳转
命令:run app.activity.start
-
-
component 软件包名 软件包名.对应exported的activtiy
示例:run app.activity.start
-
-
component com.example.test com.example.test.Activity
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
Service测试:
6.
获取service信息
命令 run app.service.info
-
a
示例 run app.service.info
-
a com.xxx.xxxx
7.
发送service服务
命令:run app.service.start
-
-
component 软件包名 软件包名.对应exported的activtiy
-
-
extra 数据
示例:run app.service.start
-
-
component com.example.test com.example.test.Activity
-
-
extra string phone
12345678901
-
-
extra string content Hello
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
Broadcast Receivers测试:
8.
获取Broadcast信息
命令 run app.broadcast.info
-
a
示例 run app.broadcast.info
-
a com.xxx.xxxx
9.
注册一个能嗅出特定意图的广播接收器
命令:app.broadcast.sniff
-
-
action
"活动"
示例:app.broadcast.sniff
-
-
action
"ddns.actiton.Token"
10.
发送广播
命令:run app.broadcast.send
-
-
action 广播名
-
-
extra string name lisi
示例:run app.broadcast.send
-
-
action org.owasp.goatdroid.fourgoats.SOCIAL_SMS
-
-
extra string phoneNumber
1234
-
-
extra string message dog
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
contentProvider测试:
11.
获取contentProvider信息
命令:run app.provider.info
-
a
示例:run app.provider.info
-
a com.xxx.xxxx
12.
获取所有可访问的Uri
命令 run scanner.provider.finduris
-
a
示例 run scanner.provider.finduris
-
a com.xxx.xxxx
13.
检测SQL注入
命令 run scanner.provider.injection
-
a
示例 run scanner.provider.injection
-
a com.xxx.xxxx
14.
检测目录遍历
命令 run scanner.provider.traversal
-
a
示例 run scanner.provider.traversal
-
a com.xxx.xxxx
15.
进行SQL注入
命令 run app.provider.query [
-
-
projection] [
-
-
selection]
示例 run app.provider.query content:
/
/
com.mwr.example.sieve.DBContentProvider
/
Passwords
/
列出所有表 run app.provider.query content:
/
/
com.mwr.example.sieve.DBContentProvider
/
Passwords
/
-
-
projection
"* FROM SQLITE_MASTER WHERE type='table';--"
获取单表(如Key)的数据 run app.provider.query content:
/
/
com.mwr.example.sieve.DBContentProvider
/
Passwords
/
-
-
projection
"* FROM Key;--"
16.
读取文件系统下的文件
示例 run app.provider.read content:
/
/
com.mwr.example.sieve.FileBackupProvider
/
etc
/
hosts
17.
下载数据库文件到本地
示例 run app.provider.download content:
/
/
com.mwr.example.sieve.FileBackupProvider
/
data
/
data
/
com.mwr.example.sieve
/
databases
/
database.db d:
/
database.db
2.Inspeckage(xposed) (1)Inspeckage介绍1
Inspeckage是一个用来动态分析安卓app的xposed模块。Inspeckage对动态分析很多常用的功能进行了汇总并且内建一个webserver。整个分析操作可以在友好的界面环境中进行。
(2)安装准备1
2
Xposed框架安装
Inspeckage模块网址:http:
/
/
repo.xposed.info
/
module
/
mobi.acpm.inspeckage
/
/
也可以直接到Xposed模块库中搜索
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Xposed框架安装:
(
1
)
4.4
以下Android版本安装比较简单,只需要两步即可
1.
对需要安装Xposed的手机进行root
2.
下载并安装xposedInstaller,之后授权其root权限,进入app点击安装即可
但是由于官网不在维护,导致无法直接通过xposedinstaller下载补丁包
(
2
)Android
5.0
-
8.0
由于
5.0
后出现ART,所以安装步骤分成两个部分:xposed.
zip
和
XposedInstaller.apk,
zip
文件是框架主体,需要进入Recovery后刷入,apk文件用于Xposed管理
1.
完成对手机的root,并刷入reconvery(比如twrp),使用Superroot
2.
下载你对应的
zip
补丁包,并进入recovery刷入
3.
重启手机,安装xposedInstaller并授予root权限即可
官网地址:https:
/
/
dl
-
xda.xposed.info
/
framework
/
(
3
)由于Android
8.0
后,Xposed官方作者没有再对其更新,我们一般就使用国内大佬riyu的Edxposed框架
Magisk
+
riyu
+
Edxposed
具体安装过程,大家百度搜索
(3)安装我们先下载安装Inspeckage模块,在xposed中勾选:
然后手机重启,激活Xposed中该模块,就完成正常的安装了
(4)基本使用客户端:
我们进入Inspeckage应用程序,可以配置其相关的信息:
1
2
3
4
5
6
(
1
)序号
1
Only user app : 默认只显示用户安装的APP,关闭可以显示系统自带的APP
(
2
)序号
2
选择准备要测试的APP列表,这里是我们测试的目标APP
(
3
)序号
3
表示我们的Inspeckage模块是否启动,如果这里为红色,说明可能没有安装Xposed框架,或者没有启动Inspeckage模块
(
4
)序号
4
上面为我们手机的局域网地址,下面为我们USB访问的地址,也是我们电脑上主界面访问地址
(
5
)序号
5
我们在访问主界面前,需要进行端口转发
(
6
)序号
6
启动对应APP 我们可以在主界面查看其相关信息
我们查看APP的配置界面:
1
2
(
1
)序号
1
我们连接的地址,我们可以全选,也可以设置成手机局域网或主机地址,这样我们在主界面访问时就需要输入对应ip地址
(
2
)序号
2
服务端端口号 序号
3
Web套接字端口号 我们对端口号可以自定义
客户端使用步骤:
1
2
3
(
1
)我们首先在choose target中选择目标应用程序,然后我们点击Launch,启动该目标程序
(
2
)然后我们进行端口转发,转发手机的
8008
端口到本地:adb forward tcp:
8008
tcp:
8008
(
3
)接着我们在电脑上访问 http:
/
/
127.0
.
0.1
:
8008
就可以看到Inspeckage的web界面。(如果web也买你没有输出结果,查看APP
is
running是否为true,Logcat左边分那个自动刷新按钮是否开启)
服务端:
我们在电脑上访问 http://127.0.0.1:8008,就可以进入服务端的web界面
首先我们来介绍Tag界面:
Data dir:数据文件树
主要提供我们APP运行过程中一些数据存储的位置
主界面的各字段含义依次为:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Logcat 实时查看该app的logcat输出
Tree View 可以实时浏览app的数据目录并直接下载文件到本地
Package Information 应用基本信息(组件信息、权限信息、共享库信息)
Shared Preferences LOG:app XML文件读写记录;Files:具体XML写入内容
Serialization 反序列化记录
Crypto 常见加解密记录(KEY、IV值)
Hash
常见的哈希算法记录
SQLite SQLite数据库操作记录
HTTP HTTP网络请求记录
File
System 文件读写记录
Misc. 调用Clipboard,URL.Parse()记录
WebView 调用webview内容
IPC 进程之间通信记录
+
Hooks 运行过程中用户自定义Hook记录
参考网址:https:
/
/
blog.csdn.net
/
tom__chen
/
article
/
details
/
78216732
我们进入设置界面:
Replace界面:
Replace界面主要是用来替换hook的方法参数和返回值的,所以我们顺便看一下hook界面
点击新建hook界面
点击替换界面
Location界面:
这里官方是指可以替换GPS位置信息,不过平时在使用过程中用的并不多
Fingerprint(指纹信息)界面:
这个功能界面还是十分强大的,我们可以在这里替换一些我们设备常见的参数值,这样可以在我们进行一些测试工作的时候,可以绕过一些检测,比如我们可以更改IMEI、IMSI等等
Tip界面:
这里主要是介绍我们在Android分析操作过程中的一些检测方法,一些例子
Logcat界面:
这里主要提供我们在程序运行过程中的一些日志信息,和我们ddms的作用一致
1
2
3
4
5
6
总结:
Inspeckage是一款功能强大的Android安全测试工具,为用户提供了可视化的UI界面,很大程度上帮助用户去进行测试工作,可以对APP应用的基本配置信息进行检测,而且还可以提供用户简单的hook操作,用户可以很方便并且可视化的进行一些hook操作,还可以去修改设备和设备上应用程序的很多基本属性,还可以添加代理,绕过一些证书的固定。
参考网址:
官方网址:https:
/
/
github.com
/
ac
-
pm
/
Inspeckage
https:
/
/
repo.xposed.info
/
module
/
mobi.acpm.inspeckage
博客网址:https:
/
/
blog.csdn.net
/
tom__chen
/
article
/
details
/
78216732
3.MobSF (1)MobSF基本介绍1
移动安全框架(MobSF)是一种自动化的移动应用程序(Android
/
iOS
/
Windows)测试框架,能够执行静态,动态和恶意软件分析。 它可用于 Android,iOS 和 Windows 移动应用程序的有效和快速安全分析,并支持二进制文件(APK,IPA 和 APPX)和压缩源代码。 MobSF 可以在运行时为 Android 应用程序进行动态应用程序测试,并具有由 CapFuzz(一种特定于 Web API 的安全扫描程序)提供支持的 Web API 模糊测试。
(2)安装准备1
2
安装MobSF一般有两种方式,一种是使用drozer安装,另外是使用源码安装,我们这里仅显示源码安装案例
官方地址:https:
/
/
github.com
/
MobSF
/
Mobile
-
Security
-
Framework
-
MobSF
(3)安装Windows安装:
安装环境
1
2
3
Windows10
Python
3.7
jdk
1.8
.
0
安装要求
1
2
3
4
5
6
7
8
安装 Git:https:
/
/
git
-
scm.com
/
download
/
win
安装 Python3.
7
(
3.8
会出现错误):https:
/
/
www.python.org
/
ftp
/
python
/
3.7
.
9
/
python
-
3.7
.
9
-
amd64.exe
安装 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: https:
/
/
slproweb.com
/
products
/
Win32OpenSSL.html
安装 wkhtmltopdf: https:
/
/
wkhtmltopdf.org
/
downloads.html
/
/
wkhtmltopdf主要是为了将生成的报告转换成pdf版本
wkhtmltopdf 操作指南:https:
/
/
github.com
/
JazzCore
/
python
-
pdfkit
/
wiki
/
Installing
-
wkhtmltopdf
将包含 wkhtmltopdf 二进制文件的文件夹添加到环境变量PATH
安装步骤:
1
步骤
1
:下载好项目之后,可以重命名项目文件夹名称MobSf,打开cmd窗口进入该项目目录。将项目内的requirements.txt打开,最后一行libsast
=
=
1.2
.
2
改为libsast
=
=
1.3
.
4
1
步骤
2
:安装OpenSSL和wkhtmltopdf,并配置好wkhtmltopdf环境后,我们在终端进入文件夹,然后运行run.bat
1
步骤
3
:我们打开浏览器,在输入网址:
127.0
.
0.1
:
8000
,如果需要修改默认端口,可以在run.bat中修改
SET
conf
=
"0.0.0.0:8000"
中的端口号
一般我们在运行的时候,会出现一些报错,例如:
1
2
3
4
5
原因解析:
由于众所周知的网络原因,导致无法访问一些域名如raw.githubusercontent.com这个域名
解决办法:
步骤
1
:通过IPAddress.com首页,输入raw.githubusercontent.com查询到真实IP地址如:
185.199
.
108.133
步骤
2
:在本地电脑host文件中添加记录
185.199
.
108.133
raw.githubusercontent.com即可
例如:IPAddress.com首页
然后我们进入C:\WINDOWS\system32\drivers\etc ,修改hosts文件并保存
然后我们重新启动run.bat,再输入127.0.0.1,就可以发现正常的进入不报错误
同理在后面访问过程中,出现类似错误按照此解决方案就可以解决
但是由于这一般是由于网络受限原因导致,所以可能改了仍然会存在报错,但是一般不会影响正常使用,要彻底解决可以修改代码,大家可以尝试一下
docker安装:
1
2
(
1
)下载镜像:docker pull opensecurity
/
mobile
-
security
-
framework
-
mobsf
(
2
)启动容器:docker run
-
it
-
p
8000
:
8000
opensecurity
/
mobile
-
security
-
framework
-
mobsf:latest
1
2
参考网址:
https:
/
/
www.mad
-
coding.cn
/
2019
/
10
/
11
/
%
E4
%
BD
%
BF
%
E7
%
94
%
A8docker
%
E5
%
AE
%
89
%
E8
%
A3
%
85
%
E7
%
A7
%
BB
%
E5
%
8A
%
A8
%
E5
%
AE
%
89
%
E5
%
85
%
A8
%
E6
%
A1
%
86
%
E6
%
9E
%
B6
%
EF
%
BC
%
88MobSF
%
EF
%
BC
%
89
/
Linux安装:
1
参考网址:https:
/
/
blog.csdn.net
/
Alexhcf
/
article
/
details
/
107438583
Mac安装:
1
2
3
4
5
6
7
安装环境:
Mac OS
10.14
Python
3.8
java
12.0
.
2
MobSF v3.
1
beta
安装步骤:
参考网址:http:
/
/
www.
51ste
.com
/
share
/
det
-
5952.html
(4)基本使用
我们直接拖入一个APP开始分析:
我们可以看见APP正在进行逆向分析
静态分析:
我们点击最近扫描就可以看见我们最近扫描的一些APP情况:
我们随便点击一个应用的静态报告,就可以看见详细的静态分析结果
动态分析:
我们需要安装Genymotion并注册账号,创建一个模拟器,这里我创建的是7.0模拟器
1
Genymotion官方地址:https:
/
/
www.genymotion.com
/
download
/
我们启动创建的模拟器
然后重新启动MobSF,在平台上点击Dynamic Analyzer发现新的内容,点击MobSFy Android Runtime给模拟器安装插件
然后我们点击动态分析,开始进行动态分析
在这个过程中,我们可能会遇到各种错误,这里我们依次来解决:
1
2
3
4
问题
1
:Genymotion模拟器无法联网问题:
我们需要去检测Genymotion模拟器的相关配置,具体解决方案参考:https:
/
/
www.jianshu.com
/
p
/
ecb88d6bd815
问题
2
:废话不多说、电脑上的
360
管家等最好关闭,虽然这里不一定是这个导致,不过作为一名逆向人员,最好不要打开这些管家
问题
3
:安装Genymotion时,需要将VirusBox安装到默认路径下,不然会报错,安装后重启电脑
点击start Instrumentation 开始自动化的遍历扫描
我们还可以实时查看API监测情况:
然后我们产生动态分析报告
四、总结本文针对Android APP漏洞做了一个初步的介绍,先调研了当下的一些主流漏洞,以及常见的Android APP端漏洞挖掘方式,还结合APP漏洞审计系统,详细的列出了当下Android APP端漏洞挖掘的初步思路,为漏洞挖掘安全人员提供一个参考。
本文还介绍了Android APP漏洞挖掘过程中的三种常用的工具drozer+Inspeckage(Xposed)+MobSF,详细介绍了三种工具的安装和具体使用教程,能很好的帮助Android 漏洞挖掘和渗透测试人员的工作。
本文的知识总结来自个人学习总结和网络上大量博客的收集,所有的博客都会列在参考列表中,可能还有一些总结不足,后续逐步完善以及欢迎各位大佬指正。 github首页:github
五、参考网址Android APP漏洞:
1
2
3
《移动应用安全形势报告》(
2020
):https:
/
/
www.isc.org.cn
/
zxzx
/
xhdt
/
listinfo
-
40058.html
https:
/
/
ayesawyer.github.io
/
2019
/
08
/
21
/
Android
-
App
%
E5
%
B8
%
B8
%
E8
%
A7
%
81
%
E5
%
AE
%
89
%
E5
%
85
%
A8
%
E6
%
BC
%
8F
%
E6
%
B4
%
9E
/
https:
/
/
xuanxuanblingbling.github.io
/
ctf
/
android
/
2018
/
02
/
12
/
Android_app_part1
/
drozer:
1
2
3
https:
/
/
labs.f
-
secure.com
/
tools
/
drozer
/
http:
/
/
rui0.cn
/
archives
/
30
http:
/
/
www.feidao.site
/
wordpress
/
?p
=
3438
Inspeckage:
1
2
3
https:
/
/
www.e
-
learn.cn
/
topic
/
3470422
https:
/
/
blog.csdn.net
/
tom__chen
/
article
/
details
/
78216732
https:
/
/
repo.xposed.info
/
module
/
mobi.acpm.inspeckage
MobSF:
1
2
3
4
5
https:
/
/
www.codeleading.com
/
article
/
13073244765
/
https:
/
/
blog.csdn.net
/
Alexhcf
/
article
/
details
/
107438583
https:
/
/
github.com
/
MobSF
/
Mobile
-
Security
-
Framework
-
MobSF
http:
/
/
www.
51ste
.com
/
share
/
det
-
5952
-
3.html
https:
/
/
bbs.pediy.com
/
thread
-
218973.htm
[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界
最后于 2022-4-12 17:07
被随风而行aa编辑
,原因: drozer指令修改