任务劫持StrandHogg(第2 部分)

blackhat

版主

blackhat Rep
0
0
0
Rep
0
blackhat Vouches
Vouches
0
8 MONTHS
8 8 MONTHS OF SERVICE
blackhat 获得
0
0
0
获得
0
blackhat 凭证
0
0
0
凭证
0
主题
15
点赞
0
HakB
8
在社区成长 8 月
LEVEL 90 100 XP
 
欢迎回到我们的Android 任务劫持系列!如果您还没有阅读第1 部分,我们强烈建议您在深入研究漏洞利用之前从那里开始了解基本概念,例如taskAffinity、launchMode 和Android Back Stack。
在第二部分中,我们将引导您逐步进行概念验证,演示如何通过创建冒充合法应用程序的恶意应用程序来利用StrandHogg 漏洞。

快速回顾:到目前为止我们学到了什么?​

我们识别出的内容:目标(用户)应用程序:的minSdkVersion小于30。使用launchMode=“singleTask”进行一项或多项活动。

我们的理解:​

singleTask 启动模式确保在任何给定时间只能存在一个Activity 实例。针对SDK 版本30 的应用可能缺乏Android 11(API 级别30)中引入的针对任务劫持的内置保护。

如何利用 StrandHogg 漏洞​

通过构建具有特定配置的恶意应用程序,攻击者可以冒充用户应用程序并劫持其任务。
关键利用配置android:taskAffinity=””为恶意活动分配与目标应用程序相同的taskAffinity(例如,com.example.user_application),使其显示为该应用程序任务的一部分。android:launchMode=”singleTask”确保该活动仅存在一个实例,模仿真实应用程序的情况behaves.android:excludeFromRecents=”true”防止恶意应用程序出现在最近使用的应用程序列表中,使其对用户隐藏。

构建恶意应用程序 (hacker_app)​

步骤1:
1)打开Android Studio。如果尚未安装,请从Android Studio 网站下载并安装。 2) 选择Empty Views Activity 作为模板创建一个新项目。
task hijacking part2
3) 将编程语言设置为Java 并保留所有其他选项不变,并将应用程序命名为hacker_app 并继续。
task hijacking part 2
5) 等待Gradle 完成项目构建。项目创建后,您将看到两个默认文件:
– Activity_main.xml: 布局文件。 – MainActivity.java: 主逻辑文件。
task hijacking part 2
步骤2:
1) 导航到应用程序资源布局Activity_main.xml 并将以下代码添加到该文件中。以下是activity_main.xml 文件的代码。
task hijacking part2
task hijacking part2

?xml 版本='1.0'编码='utf-8'?
2)进入MainActivity.java文件,参考以下代码。以下是MainActivity.java 文件的代码。
task hijacking part2

包com.example.hacker_app;
导入android.Manifest;
导入android.content.Intent;
导入android.content.pm.PackageManager;
导入android.os.Build;
导入android.os.Bundle;
导入android.view.View;
导入android.widget.EditText;
导入android.widget.TextView;
导入androidx.appcompat.app.AppCompatActivity;
导入androidx.core.app.ActivityCompat;
导入com.google.android.material.snackbar.Snackbar;
公共类MainActivity 扩展AppCompatActivity {
@覆盖
protected void onCreate(Bundle savingInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
moveTaskToBack(真);
}
@Override public void onResume()
{
super.onResume();
setContentView(R.layout.activity_main);
}
}
3)进入AndroidManifest.xml文件,参考以下代码。以下是AndroidManifest.xml 文件的代码。
重要提示: taskAffinity 值与受害者应用程序的包名称(com.example.user_application)匹配,有效地将此活动嵌入到受害者的任务中。
task hijacking part2

?xml 版本='1.0'编码='utf-8'?
4) 进入主菜单Build Build APK(s),选择Build APK(s),构建完成后,在AndroidStudioProjects/hacker_app/app/build/outputs/apk/debug 文件夹中找到app-debug.apk 文件。
task hijacking part2
task hijacking part2
task hijacking part2

概念验证:利用任务劫持​

1) 启动黑客应用程序(该应用程序以android:launchMode=”singleTask” 运行,并且对最近的应用程序隐藏)。它将作为单独的任务打开并模仿合法用户应用程序。
task hijacking part2
2) 启动用户应用程序并完成涉及身份验证的任何任务,例如输入凭据或执行与身份验证相关的活动。
task hijacking part2
task hijacking part2
task hijacking part2
3) 查看设备上最近使用的应用程序屏幕,以验证黑客应用程序是否控制了您的会话,看起来像是合法应用程序,允许攻击者冒充您并在未经您批准的情况下采取行动。
task hijacking part2

TL;DR​

在此过程中,我们演示了如何通过控制用户会话并直接利用它们来利用StrandHogg 漏洞。通过创建一个带有精心配置的android:taskAffinity、android:launchMode=”singleTask” 和android:excludeFromRecents=”true” 的恶意应用程序,攻击者设法冒充合法应用程序。
有关影响和预防,请参阅任务劫持(StrandHogg) 漏洞第1 部分Redfox Security 是一个由专家安全顾问组成的多元化网络,具有全球思维和协作文化。如果您希望改善组织的安全状况,请立即联系我们讨论您的安全测试需求。我们的安全专业人员团队可以帮助您识别系统中的漏洞和弱点,并提供修复建议。报名参加我们的综合课程,加入我们的成长和发展之旅。

参考:​

https://developer.android.com/privacy-and-security/risks/strandhogg https://developer.android.com/guide/components/activities/tasks-and-back-stack https://www.geeksforgeeks.org/task-hijacking-in-android/
 
顶部