介绍一款牛逼的测试框架Drozer,一款可以检测Android一些公共漏洞的工具(可能远不止这些、还可以继续挖掘),还可以生成shellcode,进行安卓设备的远程exploit。
附下载地址:https://github.com/mwrlabs/drozer(安装过程自己搞下)
首先你得先在Android设备或着Android模拟器上安装一款drozer的APP,来连接drozer框架。就是下面这家伙:
然后打开Agent服务:
还有一是要进命令行模式下执行adb forward tcp:31415 tcp:31415进行端口转发。就是这样:
然后执行drozer console connect进入drozer测试框架,也就是下面这样:
接下就是大刀阔斧的时候,我在模拟器上安装了一款网上下载测试apk。
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的包名。
经观察测试所用app的包名为com.isi.testapp(也可以通过apktool解包后查看Androidmanifest.xml文件中的package字段查找包名)。而后执行run http://app.package.info [包名]查看该测试app的相关信息。
可以查看到应用名、安装路径等信息。
而后在执行run app.package.attacksurface [包名] 查看相关攻击面。
发现有两个组件可导出,查看能导出组件的相关信息,可执行命令run http://app.activity.info -a [包名]
可判断出两个组件的名称为com.isi.testapp.MainActivity及com.isi.testapp.Welcome,分析该app的程序逻辑为输入口令后到达welcome页面。但是Welcome组件存在导出漏洞,则可执行run app.activity.start --component [包名][组件名],即可绕过输入密码的过程。