MalBus攻击将市场从Google Play转移到ONE Store

McAfee Mobile Research团队在由韩国开发商开发的教育应用程序中发现了MalBus的另一种变体。在先前的Malbus案例中,作者通过Google Play分发了恶意软件,但新的变体通过ONE Store分发的方式几乎相同。ONE Store是韩国三大电信公司的合资企业,并且是在韩国销售的大多数Android手机上的预装应用程序。它拥有3500万用户(接近韩国人口的70%),并且自2018年底以来已经超过苹果的应用商店销售额。 有问题的应用程序同时通过Google Play和ONE Store分发。恶意应用程序下载并运行具有恶意功能的加密有效负载。 McAfee Mobile Security将这种威胁检测为Android / Malbus,并警告移动用户(如果存在),同时保护他们免受任何数据丢失。

图1. ONE商店中应用程序页面的屏幕截图

战役

我们发现攻击者通过开发者的帐户将恶意代码注入通过ONE商店分发的应用程序的版本27和28。从One Store分发的版本26至29的应用签名证书相同。在ONE商店中找不到同一作者开发的其他应用程序。ONE Store现在正在为版本29提供服务,该版本不包含恶意代码。Google Play仍提供版本26,尽管它也很容易被感染。

图2.应用程序的受感染版本历史记录

下面说明此应用程序的总体流程,重点是恶意功能:

图3.恶意行为概述

安装恶意软件后,该恶意代码的潜伏期为10个小时,以避免被动态分析发现。

图4.使用LastUpdateTime检查潜伏期

潜伏期过后,它将启动两个线程。第一个加载本机库“ libmovie.so”并使用电话号码作为参数调用其导出的函数“ playMovie”,而第二个创建一个Java服务器套接字以与另一个本机库通信。

图5.嵌入在APK中的恶意本机库

第一个加载的库libmovie.so包含一个curl二进制文件和XOR编码数据中辅助有效载荷的URL,这些URL在运行时进行解码。XOR值为0x8E,并且在此库中全局使用。所有已解码的URL似乎都已被黑,并且已解码的URL删除了RC4加密的ELF文件。

表1. libmovie.so中的内容

简而言之,libmovie.so是一个下载器和执行器。它使用拖放的curl二进制文件从被入侵的Web服务器下载下一个有效负载,解密并加载该库。加载库后,将删除下载的文件,以避免检测到。最后,下载的代码从导出的函数名称“ Libfunc”开始。

图6. libmovie.so的主要流程

对于RC4密码库,加密是隐藏或保护重要内容的最常用方法。因此,假设此文件中有一些重要内容。

表2.下载文件的其他信息

szServer_XX_1和szServer_XX_2的文件大小和数据与表2中所示的相同。但是szServer_XX_3具有一些功能,可以对其进行一些添加,删除或修改。但是,它不会影响整个过程。 “ doMainProc”是“ Libfunc”调用的核心功能。“ doMainProc”的第一项工作是随机选择C2服务器。

表3. C2服务器列表

选择C2服务器后,将随机创建的TUID发送到服务器。从其用途猜测,TUID可能是用于管理受污染目标的目标设备ID。现在,该应用程序正在充当间谍代理,等待来自选定服务器的操作并准备执行命令。我们发现了以下可用命令:

表4.可用命令列表

在恶意命令中,引人注目的功能是SMS和MMS捕获。SMS和MMS分别以文件名“ sms.txt”和“ mms.txt”保存在“ / data / data / <程序包名称> / files /”目录中。

图7. SMS和MMS保存在txt文件中

可以通过注册Android接收器来激活此功能。

图8. RegisterReceiver

恶意应用程序在本地打开TCP端口1111与加载的本机库通信。下面是手动解释的Java代码:
public void run()

{

CommunicationThread commThread;

Socket socket = null;

serverSocket = new ServerSocket(sock_port); // sock_port = 1111

if (serverSocket) {

while ((!Thread.currentThread().isInterrupted())) {

commThread = new CommunicationThread(this, serverSocket.accept());

new Thread(commThread).start();

}

}

}
当在本地TCP 1111端口上接收到“ SET”字符串时,启用SMS / MMS捕获功能,而通过接收“ FREE”来禁用SMS / MMS捕获功能。

图9. SET或FREE

当“ SD_SetSMSCapture”命令接收并发送“ SET”时,已加载的本机库将连接

图10. SD_SetSmsCapture

下面被解释为C语言。 客户端=套接字(AF_INET,SOCK_STREAM,0); addr.sin_family = AF_INET; addr.sin_port = htons(1111); addr.sin_addr.s_addr = inet_addr(“ 127.0.0.1”); 我们之前从未见过的另一个功能是“ SD_LoadSoFile”。这将加载一个新的本机库并在其中执行特定功能。当前的二进制文件有问题时,此功能似乎将正在运行的本机库更改为较新的库,或添加了新功能。

图11. SD_LoadSoFile

与Malbus相比

与Malbus相比,这种新发现的恶意代码具有许多相似之处,例如使用相同的恶意函数名称(以“ SD_”开头),文件名,异或字符串隐藏原始字符串,库中嵌入的文件,命令ID,相同版本的编译器等。它还具有上述差异:直接下载恶意库而不是安装插件APK,并且没有敏感的关键字列表,例如“朝鲜”,“国防”等。

图12.恶意库中相同的函数名称

图13.相同版本的编译器字符串

结论

恶意软件可以通过各种形式的第三方应用商店进行分发,而不仅限于Google Play等官方商店。该恶意软件是经过精心准备的–恶意软件的最终有效载荷是在恶意软件分发之前被黑客入侵并上传到易受攻击的服务器的文件。我们相信,此恶意软件的作者将继续购买或破解受信任的开发者帐户,以更新恶意功能,通过官方应用商店渗透和分发。与以前的情况一样,即使从官方商店下载了应用程序,用户也应验证安装的应用程序。迈克菲(McAfee)正在与韩国执法机构合作,以协助打击攻击活动。

哈希(SHA-256)

初始下载器(APK)
  • 5e57bc8d83a372bf4d046c272cd43db9000036c9b32d8eecead1af75f4958c57
  • 1613b35c73c6497730490d7712ac015c2b42931446aed149e1292e2ba77d0ff4
加密木马(additional payload)
  • d328373cd67c467485b9c96349a0ee08fc3b58fe2c11fb19f4dcb9ea6c7a0dae
  • c5bff68022ead6302f710f1ce1c3d5682a8cd3610b1f8ed2563098d7ac4e1909
  • c410cacbb0be8f649f082148c91f4cef27f101b8db3ce64a02882506c9b51a63
  • 178dddf38ec232d540bd88320521d8134644da1e7af19e7ae295b2d614e3ab56
解密的木马(additional payload)
  • 9fc914545fbb99b7e0d4a5207f5a2b32a8a127a36caa9159d4feeac445c509f7
  • df651ac1bfd60cd29cea85cc410002b933552260c2439fe86a4f32486abd0828
  • 63d10c9cd105c7b17effef18d31d571fe4c9c999966cc09bdb40df07c1b6baa8
  • f99212b70729942923fe26b996791cdd8eb561f8ae017e1d71202fbb97f7d245

0 0 vote
Article Rating

未经允许不得转载:x-sec » MalBus攻击将市场从Google Play转移到ONE Store

赞 (0) 打赏
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

0
Would love your thoughts, please comment.x
()
x