Tapjacking
Reading time: 5 minutes
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
基本信息
Tapjacking 是一种攻击,其中 恶意 应用程序 被启动并 定位在受害者应用程序的顶部。一旦它明显遮挡了受害者应用程序,其用户界面被设计成欺骗用户与之互动,同时将互动传递给受害者应用程序。
实际上,它是 让用户无法知道他们实际上是在对受害者应用程序执行操作。
检测
为了检测易受此攻击的应用程序,您应该在 Android 清单中搜索 导出活动(请注意,带有意图过滤器的活动默认情况下会自动导出)。一旦找到导出活动,检查它们是否需要任何权限。这是因为 恶意应用程序也需要该权限。
保护
Android 12 (API 31,32) 及更高版本
根据这个来源, 从 Android 12 (API 31 & 30) 及更高版本开始,Android 会自动防止 tapjacking 攻击。因此,即使应用程序存在漏洞,您 也无法利用它。
filterTouchesWhenObscured
如果 android:filterTouchesWhenObscured
设置为 true
,则 View
在视图窗口被另一个可见窗口遮挡时将不会接收触摸。
setFilterTouchesWhenObscured
如果 Android 版本较低,属性 setFilterTouchesWhenObscured
设置为 true 也可以防止利用此漏洞。
例如,如果设置为 true
,则按钮在被遮挡时可以自动 禁用:
<Button android:text="Button"
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:filterTouchesWhenObscured="true">
</Button>
利用
Tapjacking-ExportedActivity
最新的 Android 应用程序 执行 Tapjacking 攻击(+ 在被攻击应用程序的导出活动之前调用)可以在这里找到: https://github.com/carlospolop/Tapjacking-ExportedActivity。
请遵循 README 指示使用它。
FloatingWindowApp
一个实现 FloatingWindowApp 的示例项目,可以用于覆盖其他活动以执行点击劫持攻击,可以在 FloatingWindowApp 找到(有点旧,祝你构建 apk 顺利)。
Qark
caution
看起来这个项目现在不再维护,这个功能也不再正常工作
你可以使用 qark 和 --exploit-apk
--sdk-path /Users/username/Library/Android/sdk
参数来创建一个恶意应用程序,以测试可能的 Tapjacking 漏洞。
缓解措施相对简单,因为开发者可以选择在视图被其他视图覆盖时不接收触摸事件。使用 Android 开发者参考:
有时,应用程序能够验证某个操作是在用户充分了解和同意的情况下进行的,这一点至关重要,例如授予权限请求、进行购买或点击广告。不幸的是,恶意应用程序可能会试图欺骗用户在不知情的情况下执行这些操作,通过隐藏视图的预期目的。作为补救措施,框架提供了一种触摸过滤机制,可以用来提高提供敏感功能访问的视图的安全性。
要启用触摸过滤,请调用
setFilterTouchesWhenObscured(boolean)
或将 android:filterTouchesWhenObscured 布局属性设置为 true。当启用时,框架将丢弃在视图的窗口被另一个可见窗口遮挡时接收到的触摸。因此,当 toast、对话框或其他窗口出现在视图的窗口上方时,视图将不会接收到触摸。
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。