专栏首页FreeBuf了解针对“所有”版本Android的Cloak & Dagger攻击

了解针对“所有”版本Android的Cloak & Dagger攻击

Cloak&Dagger攻击是一种利用权限不匹配问题来访问Android设备的攻击方法,版本在7.1.2及以下的Android设备都会受到这种攻击的影响。Cloak&Dagger可以捕获用户的PIN码和密码,并且能够帮助攻击者在不会被检测到的情况下获取目标设备的所有权限。目前,厂商还没有修复相关漏洞,而且安全社区也没有很好的解决方案。

Cloak&Dagger攻击机制

Cloak&Dagger攻击主要针对的是两个功能,即SYSTEM_ALERT_WINDOW和BIND_ACCESSIBILITY_SERVICE。如果应用程序得到了这两个权限,它就可以成功进行这种攻击。

SYSTEM_ALERT_WINDOW允许应用程序显示屏幕覆盖层,例如通知等等。BIND_ACCESSIBILITY_SERVICE则允许应用程序跟踪和查询手机屏幕所显示的元素,而这两种权限既可以单独使用,也可以配合使用。

SYSTEM_ALERT_WINDOW权限允许应用程序覆盖其他的应用界面,如果我们从GooglePlay下载并安装了一款App,Android默认会赋予该权限,并不需要得到用户同意。这也就意味着,恶意App同样可以在后台悄悄获取该权限,这样也就完成了攻击的第一个阶段,即在用户毫不知情的情况下获取用户权限。

当我们得到了SYSTEM_ALERT_WINDOW权限之后,我们就可以欺骗用户去授权BIND_ACCESSIBILITY_SERVICE权限了,这一步可以通过在App中嵌入视频或利用社工技术来实现。

BIND_ACCESSIBILITY_SERVICE是什么?

BIND_ACCESSIBILITY_SERVICE允许应用程序发现显示在手机屏幕上的UI对象,查询内容,并与它们进行交互,这些小工具可以让残疾人用户更加轻松地使用Android设备。考虑到安全性方面的问题,这种权限必须用户在设置界面单独的菜单中开启才能激活。

比如说,恶意软件可以向用户请求该权限,然后再请求窗口上添加额外的显示层,而这一层显示的请求是一些无害请求,并留下原本请求窗口中的“OK”按钮。当用户点击“OK”之后,恶意App将能够跟踪屏幕上的对象,并与他们进行交互了(甚至还可以修改内容)。因此,如果恶意App获取到了这种权限,后果就会很严重了。

所以,当攻击者得到了这个权限后,他们就能够实现键盘记录和钓鱼攻击,甚至是安装其他恶意软件以实现深入攻击。

如何发动Cloak & Dagger攻击

当恶意软件获取到上述这两种权限之后,攻击者可以实现以下几种攻击(不仅限于此):

  1. 攻击者可修改用户所见的内容;
  2. 攻击者可以控制用户输入;
  3. 攻击者可以控制屏幕显示的内容;
  4. 攻击者可以通过安装木马和其他恶意软件来窃取用户数据;

接下来,我们详细介绍一下攻击者可以发动的攻击类型和步骤。

一、点击劫持覆盖攻击

攻击者可以利用这种技术来获取目标设备的管理员权限,目前也有很多恶意软件可以实现这种攻击。如下图所示,恶意软件可以在屏幕上显示一个“安装完成”的对话框,并带有“继续‘按钮。实际上,这是一个TYPE_SYTEM_OVERLAY窗口,其真实意图是要激活设备的管理员权限。

根据Android API文档的描述,TYPE_SYTEM_OVERLAY是系统覆盖窗口,它需要显示在所有内容之上,而且不能接收输入焦点。所以当用户点击了“继续”按钮之后,点击事件将会传递给真实设备管理员激活窗口的“激活”按钮。

二、安全PIN码窃取

当安全屏幕键盘生成辅助事件时,这种攻击就可以执行了。甚至在屏幕锁定状态下,针对辅助App设计的恶意应用仍然可以查看到PIN码的输入事件。

三、手机屏幕解锁

辅助App还可以在手机锁定的情况下注入事件,辅助App可以通过注入事件来输入PIN码屏并解锁手机,然后实施下一步攻击,而且整个过程可以在手机不亮屏的情况下完成。

四、App静默安装

这也是这种攻击技术最巧妙的地方,当目标设备感染了初始阶段的恶意App之后,它还可以安装其他的恶意软件(例如木马),并请求获取完整控制权限。更重要的是,整个过程都可以在后台瞧瞧完成,而且不会显示应用程序安装窗口,并且还会禁用程序的卸载按钮。

五、启用所有权限

当恶意App安装完成之后,它可以通过自动点击来获取目标设备的完整权限。

六、击键推断

在这种攻击技术的帮助下,只拥有YSTEM_ALERT_WINDOW权限的应用程序也有可能获取到目标用户在屏幕键盘上输入的内容。此时,恶意App需要在虚拟键盘的每一个键上添加额外的透明覆盖层,这些覆盖层不会拦截点击事件,这里需要涉及到键盘的底层设计。如果点击事件是从不同的覆盖层传递过来的,那么FLAG_WINDOW_IS_OBSCURED标识将会设置为“true‘,再配合上运动事件和叠加层堆栈的顺序,攻击者可以大致推测出用户的按键情况。

七、键盘App劫持

这种攻击允许攻击者通过键盘劫持来窃取用户输入的数据。一般来说,当App显示密码输入文本框时,getText方法将会返回一个空字符串。但是在BIND_ACCESSIBILITY_SERVICE权限的帮助下,键盘App本身将会被视作普通的非特权App,而每一个按键所生成的键盘事件都将被记录下来。

八、目标密码窃取

辅助服务可以用来检测目标用户启动的应用程序,攻击者可以显示一个看似像用户名和密码编辑框的可视层来窃取用户密码。但是,当用户在输入完凭证并点击“提交“按钮之后,这些信息将会发送到攻击者的服务器上。

九、2FA令牌窃取

现在很多网站服务或应用程序都采用了双因素身份验证功能(2FA)来验证用户的合法性。通过这种攻击技术,攻击者可以完全控制目标设备,并读取用户的短信消息,从而获取到访问令牌。

十、广告劫持

恶意软件可以知道一款App显示广告的时间和位置,并在目标位置通过额外的可视层来显示其他的广告,并以此来牟利。

* 参考来源:infosecinstitute,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

本文分享自微信公众号 - FreeBuf(freebuf),作者:Alpha_h4ck

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-04-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 看看印尼黑客如何利用电影大片进行网络攻击

    网络犯罪分子每天都在想尽各种办法来进行攻击,这对于信息安全从业者来说再正常不过了,而这一次印尼网络犯罪组织开始利用电影大片来欺骗目标用户访问已受感染的网站。

    FB客服
  • 年末了,盘点2016年最严重的7起DDoS攻击事件

    随着黑客技术的不断发展,人们越来越难以区分真实世界和恐怖电影之间的区别, 2016年的DDoS攻击事件更是加深了人们的这种感觉。 你相信么?事实上,我们的真实生...

    FB客服
  • FireEye:Hacking Team军火库中大量运用iOS假面攻击

    在早前我们就已经发布过有关iOS假面攻击威胁的文章。到目前为止,这类攻击依旧十分流行。FireEye最近从HackingTeam军火库中发现11款iOS App...

    FB客服
  • NIPS 2018 | 南大周志华等人提出无组织恶意攻击检测算法UMA

    作者:Ming Pang、Wei Gao、Min Tao、Zhi-Hua Zhou

    机器之心
  • 特别企划 | 那些年你“听不懂”的安全名词

    也许你已经对网络钓鱼耳熟能详了,也许你也遇到过一些勒索软件或者病毒的攻击。但 catfishing 是什么?水坑攻击为什么叫水坑攻击?51% 攻击又是什么?边信...

    FB客服
  • 流量渠道追踪全解析

    其实这个就是UTM,UTM的全称是Urchin Tracking Module/Urchin Tracking Manager,通过向网址中添加广告系列参数,可...

    GA小站
  • CVPR 2020 | 眼见为虚:利用对抗文本图像攻击场景文本识别模型

    本文简要介绍CVPR2020录用论文“What Machines See Is Not What They Get: Fooling Scene Text Re...

    Amusi
  • 【每日一提】问题 1197: 发工资咯

    作为程序猿,最盼望的日子就是每月的9号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵 但是对于公司财务处的工作人员来说,这一天则是很忙碌的一天,财务处的...

    编程范 源代码公司
  • [每日一题]发工资咯

    题目描述 作为程序猿,最盼望的日子就是每月的9号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵 但是对于公司财务处的工作人员来说,这一天则是很忙碌的一...

    编程范 源代码公司
  • MongoDB运维与开发(四)---用户权限管理2

    上次的文章中我们说到了MongoDB中的用户初始化,重点说了启用访问控制的方法、角色与用户的关系、用户的创建、修改、删除、查询方法、而且举了几个小的例子...

    AsiaYe

扫码关注云+社区

领取腾讯云代金券