Android Task Hijacking

从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)

支持HackTricks的其他方式:

Try Hard安全团队


任务、后退栈和前台活动

在Android中,任务本质上是用户与之交互以完成特定工作的一组活动,这些活动在后退栈中组织。该堆栈根据打开活动的时间顺序对活动进行排序,最近的活动显示在顶部作为前台活动。在任何时刻,屏幕上只有这个活动可见,使其成为前台任务的一部分。

以下是活动转换的简要说明:

  • 活动1开始作为前台中唯一的活动。

  • 启动活动2活动1推送到后退栈,将活动2带到前台。

  • 启动活动3活动1活动2进一步推到堆栈后面,现在活动3在前面。

  • 关闭活动3活动2带回前台,展示了Android简化的任务导航机制。

任务亲和性攻击

任务亲和性和启动模式概述

在Android应用程序中,任务亲和性指定活动的首选任务,通常与应用程序的包名称对齐。这种设置对于创建用于演示攻击的概念验证(PoC)应用程序至关重要。

启动模式

launchMode属性指导任务内活动实例的处理。singleTask模式对于此攻击至关重要,根据现有活动实例和任务亲和性匹配,指导三种情况。攻击的关键在于攻击者的应用程序能够模仿目标应用程序的任务亲和性,误导Android系统启动攻击者的应用程序而不是预期的目标应用程序。

详细攻击步骤

  1. 恶意应用程序安装:受害者在其设备上安装攻击者的应用程序。

  2. 初始激活:受害者首次打开恶意应用程序,为攻击做准备。

  3. 目标应用程序启动尝试:受害者尝试打开目标应用程序。

  4. 劫持执行:由于匹配的任务亲和性,恶意应用程序被启动代替目标应用程序。

  5. 欺骗:恶意应用程序呈现一个伪造的登录界面,类似于目标应用程序,欺骗用户输入敏感信息。

要了解此攻击的实际实现,请参考GitHub上的Task Hijacking Strandhogg存储库:Task Hijacking Strandhogg

预防措施

为防止此类攻击,开发人员可以将taskAffinity设置为空字符串,并选择singleInstance启动模式,确保其应用程序与其他应用程序隔离。自定义onBackPressed()函数可提供额外保护,防止任务劫持。

参考资料

Try Hard安全团队

从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)

支持HackTricks的其他方式:

最后更新于