介绍一款牛逼的测试框架Drozer,一款可以检测Android一些公共漏洞的工具(可能远不止这些、还可以继续挖掘),还可以生成shellcode,进行安卓设备的远程exploit。
附下载地址:https://github.com/mwrlabs/drozer(安装过程自己搞下)
首先你得先在Android设备或着Android模拟器上安装一款drozer的APP,来连接drozer框架。就是下面这家伙:
![5d7a5db016af811c53b515393e474f6f.png](https://img-blog.csdnimg.cn/img_convert/5d7a5db016af811c53b515393e474f6f.png)
然后打开Agent服务:
![4d6e4604db0bb51eeedb741d480ed43e.png](https://img-blog.csdnimg.cn/img_convert/4d6e4604db0bb51eeedb741d480ed43e.png)
还有一是要进命令行模式下执行adb forward tcp:31415 tcp:31415进行端口转发。就是这样:
![e4c46c45535242a6cd1927589303c1e3.png](https://img-blog.csdnimg.cn/img_convert/e4c46c45535242a6cd1927589303c1e3.png)
然后执行drozer console connect进入drozer测试框架,也就是下面这样:
![a3d869279d20d832686d869e2f9513d4.png](https://img-blog.csdnimg.cn/img_convert/a3d869279d20d832686d869e2f9513d4.png)
接下就是大刀阔斧的时候,我在模拟器上安装了一款网上下载测试apk。
![fb0a7b2767a34535c93313924c613456.png](https://img-blog.csdnimg.cn/img_convert/fb0a7b2767a34535c93313924c613456.png)
Drozer常见命令:
run app.package.attacksurface [apk包名字]
确定安装包的可攻击面
run http://app.package.info [apk包名字]
列出已安装包的信息
run http://app.activity.info [apk包名字]
获取activity信息
run http://app.service.info [apk包名字]
获取services信息
run http://app.broadcast.info [apk包名字]
获取broadcast receivers信息
run http://app.provider.info[apk包名字]
获取content providers信息
run app.activity.start [apk包名字] [apk组件名]
启动应用某activity组件
run app.service.start [apk包名字] [apk组件名]
启动应用某service组件
run app.broadcast.send [apk包名字] [apk组件名]
发送广播
run app.provider.query [apk包名字] [apk组件名]
内容组件查询
执行run app.package.list查看所有安装app的包名,找到测试app的包名。
![04748b61c435449c7afdd22a9c1d6d90.png](https://img-blog.csdnimg.cn/img_convert/04748b61c435449c7afdd22a9c1d6d90.png)
经观察测试所用app的包名为com.isi.testapp(也可以通过apktool解包后查看Androidmanifest.xml文件中的package字段查找包名)。而后执行run http://app.package.info [包名]查看该测试app的相关信息。
![9a1f6d8b32283ed8ad8295c479b77f78.png](https://img-blog.csdnimg.cn/img_convert/9a1f6d8b32283ed8ad8295c479b77f78.png)
可以查看到应用名、安装路径等信息。
而后在执行run app.package.attacksurface [包名] 查看相关攻击面。
![3f55f8e82f91b92c72b3e806ba761de9.png](https://img-blog.csdnimg.cn/img_convert/3f55f8e82f91b92c72b3e806ba761de9.png)
发现有两个组件可导出,查看能导出组件的相关信息,可执行命令run http://app.activity.info -a [包名]
![47f066c1cc05b02fe1e34bbbb9fcb3b7.png](https://img-blog.csdnimg.cn/img_convert/47f066c1cc05b02fe1e34bbbb9fcb3b7.png)
可判断出两个组件的名称为com.isi.testapp.MainActivity及com.isi.testapp.Welcome,分析该app的程序逻辑为输入口令后到达welcome页面。但是Welcome组件存在导出漏洞,则可执行run app.activity.start --component [包名][组件名],即可绕过输入密码的过程。
![635fdf2244eca985d2d1f77559780fe1.png](https://img-blog.csdnimg.cn/img_convert/635fdf2244eca985d2d1f77559780fe1.png)