SharkBot 新一代安卓银行木马在Google Play商店中被发现

SharkBot 新一代安卓银行木马在Google Play商店中被发现

作者:

  • Alberto Segura,恶意软件分析师
  • Rolf Govers,恶意软件分析师和取证 IT 专家
SharkBot 新一代安卓银行木马在Google Play商店中被发现
在 Google Play 商店中找到的包含病毒的应用程序

NCC Group 以及许多其他研究人员注意到去年 Android 恶意软件有所增加,尤其是 Android 银行恶意软件。在 NCC 集团的威胁情报团队中,我们正在密切关注其中几个恶意软件系列,以便向我们的客户提供有关这些威胁的有价值信息。除了更流行的 Android 银行恶意软件之外,NCC 集团的威胁情报团队还关注新趋势和新家族的出现,并可能对我们的客户构成潜在威胁。

其中一个“较新”系列是一款名为 SharkBot 的 Android 银行恶意软件。在我们的研究中,我们注意到该恶意软件是通过 Google Play 官方商店分发的。发现后,我们立即通知了 Google,并决定通过这篇博文分享我们的知识。

NCC Group 的威胁情报团队继续分析 SharkBot 并发现新发现。在我们发布这篇博文后不久,我们在 Google Play 商店中发现了更多的 SharkBot 下载器。所有人的行为似乎都相同;事实上,代码在所有这些中似乎都是一个字面的“复制粘贴”。同样对应的 C2 服务器也用于所有其他的 dropper。发现后,我们立即向 Google 报告了这一情况。有关新发现的 SharkBot dropper 应用程序的 Google Play 商店 URL,请参阅下面的 IoC 部分。

概括

SharkBot 是Cleafy 威胁情报团队于 2021 年 10 月末发现的一种 Android 银行恶意软件。在撰写本文时,SharkBot 恶意软件似乎与 Flubot、Cerberus/Alien、Anatsa/Teabot、Oscorp 等其他 Android 银行恶意软件没有任何关系。

Cleafy 博客文章指出,SharkBot 的主要目标是通过自动转账系统 (ATS) 发起资金转账(从受感染的设备)。据我们观察,这种技术是一种高级攻击技术,在 Android 恶意软件中并不经常使用。它使攻击者能够自动填写合法移动银行应用程序中的字段并启动汇款,而其他 Android 银行恶意软件(如 Anatsa/Teabot 或 Oscorp)需要现场操作员插入和授权汇款。这种技术还允许对手以最小的努力扩大他们的行动。

ATS 功能允许恶意软件接收要模拟的事件列表,并将模拟它们以进行汇款。由于此功能可用于模拟触摸/点击和按钮按下,因此它不仅可用于自动转账,还可用于安装其他恶意应用程序或组件。这就是我们在 Google Play 商店中找到的 SharkBot 版本的情况,它似乎是 SharkBot 的简化版本,具有最低要求的功能,例如 ATS,可以在初始安装后的某个时间安装恶意软件的完整版本.

由于通过 Google Play 商店作为假防病毒软件分发的事实,我们发现它们必须包括受感染设备的使用才能传播恶意应用程序。SharkBot 通过滥用“直接回复”Android 功能来实现这一点。此功能用于自动发送回复通知以及下载虚假防病毒应用程序的消息。这种滥用直接回复功能的传播策略最近在ThreatFabric发现的另一个名为Flubot的银行恶意软件中被发现。

有趣且与其他家族不同的是,SharkBot 很可能使用 ATS 还绕过多因素身份验证机制,包括生物特征等行为检测,同时它还包括更多经典功能来窃取用户的凭据。

金钱和凭证窃取功能

SharkBot 实施了四种主要策略来窃取 Android 中的银行凭证:

  • 注入(覆盖攻击):一旦检测到官方银行应用程序已打开,SharkBot 就可以通过显示带有虚假登录网站(网络钓鱼)的 WebView 来窃取凭据。
  • 键盘记录: Sharkbot可以通过记录可访问性事件(与文本字段更改和单击按钮相关)并将这些日志发送到命令和控制服务器 (C2) 来窃取凭据。
  • 短信拦截: Sharkbot 具有拦截/隐藏短信的能力。
  • 远程控制/ATS:Sharkbot 能够获得对 Android 设备的完全远程控制(通过辅助功能服务)。

对于大多数这些功能,SharkBot 需要受害者启用Accessibility Permissions & Services。这些权限允许 Android 银行恶意软件拦截用户与用户界面交互产生的所有可访问性事件,包括按钮按下、触摸、TextField 更改(对键盘记录功能有用)等。拦截的可访问性事件还允许检测前台应用程序,因此银行恶意软件也使用这些权限来检测目标应用程序何时打开,以显示网络注入以窃取用户的凭据。

传输

Sharkbot 通过 Google Play 商店分发,但也使用了 Android 恶意软件中相对较新的东西:通知的“直接回复”功能。借助此功能,C2 可以向恶意软件提供消息,该消息将用于自动回复在受感染设备中收到的传入通知。Flubot最近引入了此功能,以使用受感染的设备分发恶意软件,但似乎SharkBot威胁参与者也在最近的版本中包含了此功能。

在下图中,我们可以看到 SharkBot 用于拦截新通知的代码,并自动将收到的来自 C2 的消息进行回复。

SharkBot 新一代安卓银行木马在Google Play商店中被发现

在下图中,我们可以看到受感染的测试设备收到的“autoReply”命令,其中包含一个缩短的 Bit.ly 链接,该链接重定向到 Google Play 商店示例。

SharkBot 新一代安卓银行木马在Google Play商店中被发现

我们检测到SharkBot精简版于 2 月 28 日在 Google Play 上发布,但最后一次更新是在 2 月 10 日,所以该应用程序已经发布了一段时间。这个简化版本使用非常相似的协议与 C2 通信(RC4 加密有效负载和公共 RSA 密钥用于加密 RC4 密钥,因此 C2 服务器可以使用相同的密钥解密请求并加密响应)。这个 SharkBot 版本,我们可以称之为SharkBotDropper主要用于从 C2 服务器下载一个功能齐全的 SharkBot,它将使用自动传输系统 (ATS) 安装(模拟点击和触摸,具有辅助功能权限)。

这个恶意 dropper 在 Google Play 商店中作为假杀毒软件发布,它实际上有两个主要目标(以及从 C2 接收的命令):

  • 使用“自动回复”功能传播恶意软件:它可以接收带有消息的“自动回复”命令,该消息应用于自动回复受感染设备中收到的任何通知。在我们的研究中,它一直在通过缩短的 Bit.ly URL 传播相同的 Google Play 投放器。
SharkBot 新一代安卓银行木马在Google Play商店中被发现

Dropper+ATS:ATS 功能用于安装从 C2 获取的下载的 SharkBot 示例。在下图中,我们可以看到从 C2 接收到的解密响应,其中 dropper 接收命令“ b ”以从提供的 URL 下载完整的 SharkBot 样本,并模拟 ATS 事件以安装恶意软件。

SharkBot 新一代安卓银行木马在Google Play商店中被发现

使用此命令,从 Google Play 商店安装的应用程序能够为其下载的全功能SharkBot示例安装和启用辅助功能权限。它将用于最终执行 ATS 欺诈,以从受害者那里窃取金钱和凭证。

在 Google Play 商店中发布的假防病毒应用 SharkBotDropper 的下载量已超过 1,000 次,还有一些虚假评论,如“效果很好”,还有一些受害者的评论,他们意识到这个应用做了一些奇怪的事情

SharkBot 新一代安卓银行木马在Google Play商店中被发现

技术分析

协议和 C2

用于与 C2 服务器通信的协议是基于 HTTP 的协议。HTTP 请求是明文发出的,因为它不使用 HTTPs。即便如此,包含发送和接收信息的实际有效负载是使用 RC4 加密的。用于加密信息的 RC4 密钥是为每个请求随机生成的,并使用每个样本中硬编码的 RSA 公钥进行加密。这样,C2 可以解密加密的密钥( HTTP POST 请求中的rkey字段)并最终解密发送的有效载荷( HTTP POST 请求中的rdata字段)。

SharkBot 新一代安卓银行木马在Google Play商店中被发现

如果我们看一下解密后的有效载荷,我们可以看到 SharkBot 如何简单地使用 JSON 发送有关受感染设备的不同信息并接收要从 C2 执行的命令。在下图中,我们可以看到从受感染设备发送的解密后的 RC4 有效负载。

SharkBot 新一代安卓银行木马在Google Play商店中被发现

请求中发送的两个重要字段是:

  • 所有者ID
  • 僵尸网络ID

这些参数是硬编码的,并且在分析的样本中具有相同的值。我们认为这些值将来可用于识别此恶意软件的不同买家,根据我们的调查,该恶意软件尚未在地下论坛中出售

域生成算法

SharkBot 包括一个或两个应该注册和工作的域/URL,但如果硬编码的 C2 服务器被关闭,它还包括一个域生成算法 (DGA),以便将来能够与新的 C2 服务器通信。

SharkBot 新一代安卓银行木马在Google Play商店中被发现

DGA 使用当前日期和特定的后缀字符串 (‘pojBI9LHGFdfgegjjsJ99hvVGHVOjhksdf‘) 最终将其编码为 base64 并获取前 19 个字符。然后,它附加不同的 TLD 以生成最终的候选域。

SharkBot 新一代安卓银行木马在Google Play商店中被发现

使用的日期元素是:

  • 一年中的一周(代码中的 v1.get(3))
  • 年份(代码中的 v1.get(1))

它使用’+’运算符,但由于年份的星期和年份是整数,所以它们是相加而不是附加的,所以例如:对于2022年的第二周,生成的要进行base64编码的字符串是:2 + 2022 + “pojBI9LHGFdfgegjjsJ99hvVGHVOjhksdf” = 2024 + “pojBI9LHGFdfgegjjsJ99hvVGHVOjhksdf” = “2024pojBI9LHGFdfgegjjsJ99hvVGHVOjhksdf”。

在之前的 SharkBot 版本中(从 2021 年 11 月到 12 月),它只使用一年中的当前一周来生成域。将年份加入到生成算法中似乎是为了更好地支持 2022 年的更新。

命令

SharkBot 可以从 C2 服务器接收不同的命令,以便在受感染的设备中执行不同的操作,例如发送短信、下载文件、显示注入等。它可以接收和执行的命令列表如下:

  • smsSend : 用于由 TA 向指定的电话号码发送短信
  • updateLib:用于请求恶意软件从指定的 URL 下载新的 JAR 文件,其中应包含恶意软件的更新版本
  • updateSQL:用于发送要在 SQLite 数据库中执行的 SQL 查询,Sharkbot 使用它来保存恶意软件的配置(注入等)
  • stopAll:用于重置/停止 ATS 功能,停止正在进行的自动化。
  • updateConfig:用于向恶意软件发送更新的配置。
  • uninstallApp:用于从受感染设备上卸载指定的应用程序
  • changeSmsAdmin:用于更改短信管理器应用
  • getDoze : 用于检查是否启用忽略电池优化的权限,如果未启用,则显示 Android 设置以禁用它们
  • sendInject:用于显示覆盖以窃取用户的凭据
  • getNotify:如果没有为恶意软件启用通知侦听器设置,则用于显示它们。启用此权限后,Sharkbot 将能够拦截通知并将其发送到 C2
  • APP_STOP_VIEW:用于关闭指定的应用程序,因此每次用户尝试打开该应用程序时,Accessibility Service 都会关闭它
  • downloadFile : 用于从指定的 URL 下载一个文件
  • updateTimeKnock:用于更新机器人的最后一次请求时间戳
  • localATS:用于启用 ATS 攻击。它包含一个 JSON 数组,其中包含它应该模拟以执行 ATS(按钮单击等)的不同事件/动作
SharkBot 新一代安卓银行木马在Google Play商店中被发现

自动传输系统

SharkBot 的一个独特之处在于它使用了一种称为自动传输系统 (ATS) 的技术。ATS 是针对 Android 的银行恶意软件使用的一种相对较新的技术。

总而言之,ATS 可以与 webinject 进行比较,只是用于不同的目的。它不是收集用于使用/扩展的凭据,而是使用凭据在端点本身上自动启动电汇(因此无需登录并绕过 2FA 或其他反欺诈措施)。但是,它是非常个性化的,并且要求对每家银行、金额、钱骡等进行相当多的维护。这可能是 ATS 在(Android)银行恶意软件中不那么流行的原因之一。

它是如何工作的?

一旦目标登录到他们的银行应用程序,恶意软件就会收到一系列事件(点击/触摸、按钮按下、手势等)以特定顺序进行模拟。这些事件用于模拟受害者与银行应用程序的交互以进行汇款,就好像用户正在自己进行汇款一样。

这样,通过模拟不同的事件从受害者的设备进行汇款,这使得欺诈检测系统更难以检测欺诈行为。

侵害指标(IOC)

样本哈希:

a56dacc093823dc1d266d68ddfba04b2265e613dcc4b69f350873b485b9e1f1c (Google Play SharkBot下载器)
9701bef2231ecd20d52f8fd2defa4374bffc35a721e4be4519bda8f5f353e27a (SharkBot下载器 v1.64.1)
20e8688726e843e9119b33be88ef642cb646f1163dce4109b8b8a2c792b5f9fc (Google Play SharkBot下载器)
187b9f5de09d82d2afbad9e139600617685095c26c4304aaf67a440338e0a9b6 (Google Play SharkBot下载器)
e5b96e80935ca83bbe895f6239eabca1337dc575a066bb6ae2b56faacd29dd (Google Play SharkBot下载器)

SharkBotDropper C2:

hxxp://statscodicefiscale[.]xyz/stats/

用于分发恶意软件的“自动/直接回复”URL:

hxxps://bit[.]ly/34ArUxI

Google Play 商店网址:

SharkBot 的 C2 服务器/域:

n3bvakjjouxir0zkzmd[.]xyz (185.219.221.99)
mjayoxbvakjjouxir0z[.]xyz (185.219.221.99)

用于加密SharkBot中的 RC4 密钥的 RSA 公钥:

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2R7nRj0JMouviqMisFYt0F2QnScoofoR7svCcjrQcTUe7tKKweDnSetdz1A+PLNtk7wKJk+SE3tcVB7KQS/WrdsEaE9CBVJ5YmDpqGaLK9qZhAprWuKdnFU8jZ8KjNh8fXyt8UlcO9ABgiGbuyuzXgyQVbzFfOfEqccSNlIBY3s+LtKkwb2k5GI938X/4SCX3v0r2CKlVU5ZLYYuOUzDLNl6KSToZIx5VSAB3VYp1xYurRLRPb2ncwmunb9sJUTnlwypmBCKcwTxhsFVAEvpz75opuMgv8ba9Hs0Q21PChxu98jNPsgIwUn3xmsMUl0rNgBC3MaPs8nSgcT4oUXaVwIDAQAB

RSA 公钥用于加密 Google Play SharkBotDropper中的 RC4 密钥:

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu9qo1QgM8FH7oAkCLkNO5XfQBUdl+pI4u2tvyFiZZ6hMZ07QnlYazgRmWcC5j5H2iV+74gQ9+1cgjnVSszGbIwVJOQAEZGRpSFT7BhAhA4+PTjH6CCkiyZTk7zURvgBCrXz6+B1XH0OcD4YUYs4OGj8Pd2KY6zVocmvcczkwiU1LEDXo3PxPbwOTpgJL+ySWUgnKcZIBffTiKZkry0xR8vD/d7dVHmZnhJS56UNefegm4aokHPmvzD9p9n3ez1ydzfLJARb5vg0gHcFZMjf6MhuAeihFMUfLLtddgo00Zs4wFay2mPYrpn2x2pYineZEzSvLXbnxuUnkFqNmMV4UJwIDAQAB

归因

四个应用程序来自三个开发者帐户 Zbynek Adamcik、Adelmio Pagnotto 和 Bingo Like Inc。当 CPR 检查这些帐户的历史时,我们看到其中两个在 2021 年秋季处于活动状态。与这些帐户相关联的一些应用程序是已从 Google Play 中删除,但仍存在于非官方市场中。这可能意味着这些应用程序背后的威胁行为者正试图保持低调,同时仍参与恶意活动。总体而言,我们从 Google Play 看到这些应用程序的下载量超过 15,000 次。

时间线

  • 2022 年 2 月 25 日 – CPR 在 Google Play 上发现了 4 个 SharkBot Dropper 应用程序,安装总数为 11K。
  • 2022 年 3 月 3 日 – CPR 向 Google 报告了在 Google Play 上发现的恶意应用程序。
  • 2022 年 3 月 3 日——NCC 集团发表了他们对 Sharkbot Dropper 的研究。
  • 2022 年 3 月 9 日 – 报告的应用程序已从 Google Play 中删除。
  • 2022 年 3 月 15 日——CPR 在 Google Play 上又发现了一个 SharkBot 下载器,安装量超过 0 次。心肺复苏术将其报告给谷歌。
  • 2022 年 3 月 22 日 – 在 Google Play 上发现了一个额外的 SharkBot 下载器,0+ 次安装。CPR将其报告给谷歌。
  • 2022 年 3 月 27 日 – 新发现的 SharkBot 下载器已从 Google Play 中删除。

当心恶意应用程序

威胁参与者正在不断发展,并不断寻求以任何可能的方式注入和删除恶意软件的方法,包括伪装成合法的“官方”应用程序。

我们建议 Android 用户:

  • 仅从受信任和经过验证的发布者处安装应用程序
  • 如果您看到来自新发布者的应用程序,请搜索来自受信任发布者的等效应用程序。
  • 向 Google 报告您遇到的任何看似可疑的应用程序

from

转载请注明出处及链接

Leave a Reply

您的电子邮箱地址不会被公开。