声明:本文全程采用测试app,根据相关法律法规严禁非法入侵他人网络、干扰他人网络正常功能、窃取网络数据等危害网络安全的活动,窃取或者以其他非法方式获取个人信息。
1、先来看看官方给出的drozer支持命令以及说明吧 | |
| |
| 显示当前会话中可以执行的所有drozer模块的列表。这将隐藏您没有适当权限来运行的模块 |
| 在代理进程上下文中启动设备上的交互式Linux shell |
| 将特定的命名空间挂载为会话的根,以避免重复键入模块的全名 |
| 删除drozer在Android设备上存储的临时文件 |
| 显示为系统上使用的drozer框架和模块做出贡献的人员列表 |
| |
| |
| |
| 加载一个包含drozer命令的文件,并按顺序执行它们 |
| |
| |
| 将一个值存储在一个变量中,该变量将作为环境变量传递给drozer生成的任何Linux shell |
| 删除drozer传递给它生成的任何Linux shell的命名变量 |
| |
| |
| |
| |
| |
| |
app.package.attacksurface | |
| 列出使用备份API的包(在FLAG_ALLOW_BACKUP上返回true) |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
auxiliary.webcontentresolver | |
| 打开@jdwp-control,查看哪些应用程序连接 |
exploit.pilfer.general.apnprovider | |
exploit.pilfer.general.settingsprovider | |
| |
| |
| |
scanner.activity.browsable | |
| |
scanner.misc.readablefiles | |
| |
scanner.misc.sflagbinaries | 在给定文件夹(默认是/system)中找到suid/sgid二进制文件。 |
scanner.misc.writablefiles | |
scanner.provider.finduris | |
| |
scanner.provider.sqltables | |
scanner.provider.traversal | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
本文采用夜神模拟器、测试app的方式进行实战演练(测试app可从drozer官网下载得到)2、打开app根据提示为其设置一些信息,以供后期使用(这里密码最小16位,不能含有特殊字符,PIN码和其他信息随便填)4、找到需要测试的app包名,如果安装的应用太多一时半会儿找不到的话,可以直接查询相关包名run app.package.list -f sieve
5、获取一下该应用的基本信息,可以看到该APP的安装路径及数据目录run app.package.info -a 包名
6、接下来看看该app是否有暴露的组件攻击面,组件暴露可能导致敏感信息泄露、拒绝服务、权限提升绕过,界面劫持、远程代码执行等安全漏洞run app.package.attacksurface 包名
根据测试的返回信息可以看出暴露了3个activity组件,2个provisers组件,2个services组件,并且可被调试。 7、对暴露的activity组件进行攻击,可以显示一些控件也可以监听并处理用户的事件做出响应。暴露的activity意味着可以被导出,可以分析是否存在数据泄露。run app.activity.info -a 包名
这个就有意思了,返回了三个组件信息,第一个应该是跟文件有关系,第二个应该是和登录有关系,第三个应该是和密码相关,那activity组件暴露意味着是否存在越权漏洞,绕过前端登录,一个个给他试试。run app.activity.start–component 包名 组件名
可以看到第一条直接进入了设备的文件系统,第二条进入了app的登录入口,第三条直接绕过登录获取到我们刚才设置的个人信息9、下来再测一下Content Provider,获取一下它的信息,可以获取到该app还和哪些应用程序有交互,使它指定的一些数据集提供给其他应用程序。那这里可以看到应该是有一些数据库交互,文件备份之类的信息。run app.provider.info -a 包名
10、一个应用,肯定是有URI(统一资源标志符),用于指向一个资源的字符串,可以是指向本地,也可以是指向互联网,URL一定是URI,但URI不一定是URL。获取一下该app可以访问的URI:run scanner.provider.finduris -a 包名
run app.provider.query 查询到的URI
是不是已经获取到了开始输入的一些密码和个人信息,既然能够查询到数据,那就说明我们可以对数据进行SQL注入了。12、对可以访问的URI进行SQL注入,来,试一下获取个人信息这个库所有的表。run app.provider.query URI --projection"* FROM SQLITE_MASTER WHERE type='table';--"
13、获取一下Passwords和Key这两个表的数据,成功的通过SQL注入获取信息。当然,可以对这些可访问的URI尝试进行操作,如果在注入的过程中报错的话,那就存在SQL注入漏洞。run app.provider.query URI --projection"* FROM 表名;--"
14、当然也可以用模块进行批量的检测哪些URI存在SQL注入漏洞,可以看到很多的SQL注入漏洞,一个个试一下。runscanner.provider.injection -a 包名
15、检测一下是否存在目录遍历漏洞,目录遍历可造成网站信息可被任意访问,敏感数据泄露,扫描到这么多呢。run scanner.provider.traversal -a 包名
16、由于Android基于Linux内核开发,那利用这个目录遍历漏洞查看一下hosts文件吧。run app.provider.read 遍历路径/文件路径
17、那顺便再把它的数据库也给下载下来,也算是要结束了。run app.provider.download 数据库URI 本地路径/备份文件名.db
那最后要是想再往下撸的话可以尝试一下提权等等,当然移动安全的渗透测试不止于此,更多撸法还需要慢慢深入学习。
免责声明:本站某些文章、信息、图片、软件等来源于互联网,由本网整理发表,希望传递更多信息和学习之目的,并不意味赞同起观点或证实其内容的真实性以及非法用途。 如设计、版权等问题,请立即联系管理员,我们会给予更改或删除相关文章,保证您的权利。
评论