7.8 KiB
Android任务劫持
☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 YouTube 🎥
- 你在一家网络安全公司工作吗?你想在HackTricks中看到你的公司广告吗?或者你想获得PEASS的最新版本或下载PDF格式的HackTricks吗?请查看订阅计划!
- 发现我们的独家NFTs收藏品The PEASS Family
- 获取官方PEASS和HackTricks周边产品
- 加入💬 Discord群组或电报群组,或者关注我在Twitter上的🐦@carlospolopm。
- 通过向hacktricks repo 和hacktricks-cloud repo 提交PR来分享你的黑客技巧。
找到最重要的漏洞,以便您可以更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。立即免费试用。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
任务、后台堆栈和前台活动
任务是用户在执行某个任务时与之交互的活动集合。这些活动按照打开每个活动的顺序排列在一个堆栈中,即后台堆栈。
在屏幕上显示的活动称为前台活动,其任务称为前台任务。一次只能在屏幕上看到一个前台任务。
这是一些简单的活动流程:
- 只有Activity 1在前台。
- 启动Activity 2,将Activity 1推入后台堆栈。现在Activity 2在前台。
- 启动Activity 3,将Activity 1和2都推入后台堆栈。
- 现在关闭Activity 3。之前的活动即2会自动带到前台。这就是Android中任务导航的工作原理。
Android多任务 - 一个任务
一个任务由多个活动组成
Android多任务 - 多个任务
Android通常管理多个任务
任务控制开关
任务亲和性攻击
任务亲和性和启动模式
任务亲和性是在AndroidManifest.xml
文件中的每个<activity>
标签中定义的属性。它描述了一个活动首选加入的任务。
默认情况下,每个活动的亲和性与包名相同。
在创建我们的PoC应用程序时,我们将使用这个属性。
<activity android:taskAffinity=""/>
启动模式允许您定义新的活动实例与当前任务的关联方式。launchMode
属性指定了活动应该如何启动到任务中的指令。有四种不同的启动模式:
- standard(默认)
- singleTop
- singleTask
- singleInstance
当launchMode
设置为singleTask
时,Android系统会评估三种可能性,其中一种是我们攻击可能发生的原因。它们如下:
- 如果活动实例已经存在:
Android会恢复现有实例而不是创建新实例。这意味着在此模式下系统中最多只有一个活动实例。 - 如果需要创建新的活动实例:
活动管理器服务(AMS)通过在所有现有任务中查找“匹配”任务来选择一个任务来托管新创建的实例。如果活动“匹配”任务,则它们具有相同的任务亲和性。这就是为什么我们可以在我们的恶意/攻击者应用中指定与易受攻击应用相同的任务亲和性,以便它在其任务中启动而不是创建自己的任务。 - 未找到“匹配”任务:
AMS会创建一个新任务,并将新的活动实例设置为新创建任务的根活动。
攻击
受害者需要在设备上安装恶意应用。然后,他需要在打开易受攻击的应用之前打开它**。然后,当易受攻击的应用被打开时,恶意应用将被打开****代替。如果这个恶意应用程序呈现与易受攻击应用相同的登录界面,用户将无法知道他正在将凭据输入到恶意应用程序中。
您可以在此处找到实施的攻击:https://github.com/az0mb13/Task_Hijacking_Strandhogg
防止任务劫持
设置**taskAffinity=""
可以快速修复此问题。如果应用程序不希望其他活动加入属于它的任务,还可以将启动模式设置为singleInstance**。还可以添加自定义的**onBackPressed()**函数,以覆盖默认行为。
参考资料
- https://blog.dixitaditya.com/android-task-hijacking/
- https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html
找到最重要的漏洞,以便您可以更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。立即免费试用。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- 您在网络安全公司工作吗?您想在HackTricks中看到您的公司广告吗?或者您想获得PEASS的最新版本或下载PDF格式的HackTricks吗?请查看订阅计划!
- 发现我们的独家NFT收藏品The PEASS Family
- 获得官方PEASS和HackTricks周边产品
- 加入💬 Discord群组或电报群组,或在Twitter上关注我🐦@carlospolopm。
- 通过向hacktricks repo 和hacktricks-cloud repo 提交PR来分享您的黑客技巧。