SharkBot:通过Google Play 商店分发的Android银行木马 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

SharkBot:通过Google Play 商店分发的Android银行木马

h1apwn 技术 2022-05-14 11:50:00
70724
收藏

导语:近年来 Android 恶意软件的数量有所增加,尤其是 Android 银行恶意软件。其中一个系列是一款名为 SharkBot 的 Android 银行恶意软件。

近年来 Android 恶意软件的数量有所增加,尤其是 Android 银行恶意软件。其中一个系列是一款名为 SharkBot 的 Android 银行恶意软件。在我们的研究中,我们注意到该恶意软件是通过 Google Play 官方商店分发的。

我们在 Google Play 商店中发现了很多的 SharkBot droppers,C2 服务器也用于所有其他的 dropper。发现后,我们立即向 Google 报告了这一情况。有关新发现的 SharkBot dropper 应用程序的 Google Play 商店 URL,请参阅下面的 IoC 部分。

0x01 总体概括

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

https://www.cleafy.com/cleafy-labs/sharkbot-a-new-generation-of-android-trojan-is-targeting-banks-in-europe

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

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

由于是通过 Google Play 商店规避防病毒软件进行分发的,受感染设备必须下载安装才能传播恶意应用程序。SharkBot 通过利用“Direct Reply”的Android 功能来实现这一点。此功能用于自动发送回复通知以及下载虚假防病毒应用程序的消息。这种利用直接回复功能的传播策略最近出现在另一个名为Flubot的银行恶意软件中,该恶意软件由 ThreatFabric 发现。

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

1.凭证窃取功能

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

注入(覆盖攻击):一旦检测到官方银行应用程序已打开,SharkBot 就可以通过显示带有虚假登录网站(网络钓鱼)的 WebView 来窃取凭据。

键盘记录: Sharkbot可以通过记录可访问性事件(与文本字段更改和单击按钮相关)并将这些日志发送到命令和控制服务器(C2)来窃取凭据。

短信拦截: Sharkbot 具有拦截/隐藏短信的能力。

远程控制/ATS:Sharkbot 能够获得对 Android 设备的完全远程控制(通过辅助功能服务)。

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

2.软件分发

Sharkbot 通过 Google Play 商店进行分发,但也使用了 Android 恶意软件中的新技术:“Direct reply”通知功能。借助此功能,C2 可以向恶意软件发送命令消息,该命令消息将用于Direct reply受感染设备消息。Flubot最近引入了此功能,以使用受感染的设备分发恶意软件,但似乎SharkBot攻击者在最近的版本中也加入了此功能。

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

img

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

img

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

这个恶意 dropper 在 Google Play 商店中作为假的防病毒软件发布,它实际上有两个主要功能和从 C2 接收命令:

使用“Direct reply”功能传播恶意软件:它可以接收带有消息的“Direct reply”命令,该消息应用于Direct reply受感染设备中收到的任何通知。我们研究发现,它一直在通过Bit.ly URL 短链接传播相同的 Google Play dropper。

img

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

img

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

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

img

0x02 技术分析

1.C2协议

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

img

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

img

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

ownerID

botnetID

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

2.域生成算法

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

img

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

img

使用的日期元素是:

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

年份(代码中的 v1.get(1))

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

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

3.木马命令

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:用于更新Robot的最后一次请求时间戳

localATS:用于启用 ATS 攻击。它包括一个 JSON 数组,其中包含它应该模拟以执行 ATS(按钮单击等)的不同事件/动作

img

4.ATS技术

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

总而言之,ATS 与 webinject 类似,只是用于不同的目的。它使用凭证在端点上自动启动电子传输,这样就不需要登录和绕过2fa 或其他反欺诈措施,并不会收集凭证用于使扩展成果。然而,它是非常个性化的,需要对每个银行、金额、货币等进行相当多的维护。这可能是 ATS 在(Android)银行恶意软件中并不流行的原因之一。

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

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

5.IOC

样本哈希:

a56dacc093823dc1d266d68ddfba04b2265e613dcc4b69f350873b485b9e1f1c (Google Play SharkBotDropper)

9701bef2231ecd20d52f8fd2defa4374bffc35a721e4be4519bda8f5f353e27a (Dropped SharkBot v1.64.1)

20e8688726e843e9119b33be88ef642cb646f1163dce4109b8b8a2c792b5f9fc (Google play SharkBot dropper)

187b9f5de09d82d2afbad9e139600617685095c26c4304aaf67a440338e0a9b6 (Google play SharkBot dropper)

e5b96e80935ca83bbe895f6239eabca1337dc575a066bb6ae2b56faacd29dd (Google play SharkBot dropper)

SharkBotDropper C2:

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

用于分发恶意软件的URL:

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

Google Play 商店网址:

https://play.google.com/store/apps/details?id=com.abbondioendrizzi.antivirus.supercleaner

https://play.google.com/store/apps/details?id=com.abbondioendrizzi.tools.supercleaner

https://play.google.com/store/apps/details?id=com.pagnotto28.sellsourcecode.alpha

https://play.google.com/store/apps/details?id=com.pagnotto28.sellsourcecode.supercleaner

SharkBot 的 C2 服务器/域名:

n3bvakjjouxir0zkzmd[.]xyz (185.219.221.99)

mjayoxbvakjjouxir0z[.]xyz (185.219.221.99)

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

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

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

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu9qo1QgM8FH7oAkCLkNO5XfQBUdl+pI4u2tvyFiZZ6hMZ07QnlYazgRmWcC5j5H2iV+74gQ9+1cgjnVSszGbIwVJOQAEZGRpSFT7BhAhA4+PTjH6CCkiyZTk7zURvgBCrXz6+B1XH0OcD4YUYs4OGj8Pd2KY6zVocmvcczkwiU1LEDXo3PxPbwOTpgJL+ySWUgnKcZIBffTiKZkry0xR8vD/d7dVHmZnhJS56UNefegm4aokHPmvzD9p9n3ez1ydzfLJARb5vg0gHcFZMjf6MhuAeihFMUfLLtddgo00Zs4wFay2mPYrpn2x2pYineZEzSvLXbnxuUnkFqNmMV4UJwIDAQAB
本文翻译自:https://research.nccgroup.com/2022/03/03/sharkbot-a-new-generation-android-banking-trojan-being-distributed-on-google-play-store/如若转载,请注明原文地址
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务