在这种攻击技术的帮助下,只拥有YSTEM_ALERT_WINDOW权限的应用程序也有可能获取到目标用户在屏幕键盘上输入的内容。此时,恶意App需要在虚拟键盘的每一个键上添加额外的透明覆盖层,这些覆盖层不会拦截点击事件,这里需要涉及到键盘的底层设计。如果点击事件是从不同的覆盖层传递过来的,那么FLAG_WINDOW_IS_OBSCURED标识将会设置为“true‘,再配合上运动事件和叠加层堆栈的顺序,攻击者可以大致推测出用户的按键情况。
七、键盘App劫持
这种攻击允许攻击者通过键盘劫持来窃取用户输入的数据。一般来说,当App显示密码输入文本框时,getText方法将会返回一个空字符串。但是在BIND_ACCESSIBILITY_SERVICE权限的帮助下,键盘App本身将会被视作普通的非特权App,而每一个按键所生成的键盘事件都将被记录下来。
八、目标密码窃取
辅助服务可以用来检测目标用户启动的应用程序,攻击者可以显示一个看似像用户名和密码编辑框的可视层来窃取用户密码。但是,当用户在输入完凭证并点击“提交“按钮之后,这些信息将会发送到攻击者的服务器上。
九、2FA令牌窃取
现在很多网站服务或应用程序都采用了双因素身份验证功能(2FA)来验证用户的合法性。通过这种攻击技术,攻击者可以完全控制目标设备,并读取用户的短信消息,从而获取到访问令牌。
十、广告劫持
恶意软件可以知道一款App显示广告的时间和位置,并在目标位置通过额外的可视层来显示其他的广告,并以此来牟利。
参考资料
1.
2.
3. https://www.kaspersky.com/blog/cloak-and-dagger-attack/16960/
4. https://techcrunch.com/2017/05/25/cloak-dagger-is-a-newly-discovered-android-exploit-that-lets-hackers-hide-malicious-activity/
5. https://latesthackingnews.com/2017/05/25/android-is-vulnerable-to-cloak-and-dagger-attack/