1.Service服务介绍
服务是一个Android应用程序组件,它可以在没有用户接口的情况下启动和停止。常用于在后台完成用户指定的操作。一些常见服务的例子包括邮件接收器和短信接收器。虽然这些服务在工作的时候我们看不到,但这些组件通过发送和接收intent来进行进程间通信。
2.实现攻击
在攻击service中,将利用Android服务组件的安全弱点;这些组件可以在没有用户交互的情况下启动和停止。要确定导出的服务列表,可以再次使用drozer模块app. service.info,如下图所示:
使用drozer查看four goats 的服务
命令:run app.service.info --package org.owasp.goatdroid.fourgoats
从上图可以发现org.owasp.fourgoats.services.LocationService 服务,权限为空,FourGoats在没有获得任何许可的情况下就使用了地理位置服务。但是,对于攻击者来说,这是一个利用和访问位置服务的入口点。
现在,将继续使用drozer命令通过应用FourGoats启动服务,运行
命令:run app.service.start --action org.owasp.fourgoats.services.LocationService --component org.owasp.goatdroid.fourgoats org.owasp.fourgoats.services.LocationService
可以看到定位服务已经打开
3.修复建议
设置创建或绑定到服务时总是需要权限,这样就不能随便打开服务了。可以通过在AndroidManifest.xml文件中为特定的服务添加权限属性来实现。下面的代码片段在AndroidManifest.xml文件中提供了locationservice权限入口: