出版于

CSIS TechBlog

Joker分析 - GooglePlay上的间谍和高级订阅机器人

在过去的几周中,我们一直在Google游戏中观察到新的特洛伊木马。到目前为止,我们已经在24个应用程序中检测到它,总共安装了472,000多个。The malware — going by the name “the Joker” (which was borrowed from one of the C&C domain names) — delivers a second stage component, which silently simulates the interaction with advertisement websites, steals the victim’s SMS messages, the contact list and device info.

与广告网站的自动交互包括点击模拟和输入高级服务订阅的授权代码。例如,在丹麦,小丑可以默默地签下受害者/周/周的服务(约6,71欧元)。该策略是通过自动化与Premium优惠网页的必要互动,输入操作员的要约代码,然后等待带有确认代码的SMS消息并使用正则表达式提取的SMS消息。最后,小丑将提取的代码提交给报价的网页,以授权高级订阅。

小丑恶意软件仅攻击目标国家。大多数受感染的应用程序都包含移动国家代码(MCC)列表,受害者必须使用其中一个国家 /地区的SIM卡才能获得第二阶段有效载荷。但是,大多数发现的应用程序针对欧盟和亚洲国家,但是,一些应用程序允许任何国家加入。此外,大多数发现的应用程序都有额外的支票,这将确保在美国或加拿大境内运行时的有效载荷不会执行。C&C面板的UI和一些机器人的代码评论是用中文编写的,这可能是地理归因的提示。

37个目标国家的完整列表包括:澳大利亚,奥地利,比利时,巴西,中国,塞浦路斯,埃及,法国,德国,加纳,希腊,希腊,洪都拉斯,印度,印度尼西亚,爱尔兰,意大利,科威特,科威特,马来西亚,马来西亚,缅甸,缅甸,尼兰兹,诺威兰州,尼兰兹,尼兰兹,尼兰兹,尼兰兰州,,,,波兰,葡萄牙,卡塔尔,阿根廷共和国,塞尔维亚,新加坡,斯洛文尼亚,西班牙,瑞典,瑞士,泰国,泰国,土耳其,乌克兰,乌克兰,阿拉伯联合酋长国,英国和美国。

除了加载第二阶段DEX文件外,恶意软件还通过HTTP接收动态代码和命令,并通过JavaScript到Java回调运行该代码。这种方法为静态分析提供了额外的保护层,因为在这种情况下,许多说明并未在Google玩家的恶意应用程序中进行硬编码。

加载程序

在大多数应用程序中,开发人员将Joker初始化组件插入一个或另一个广告框架中。恶意代码的小包装通常包含:
•目标国家通过MCC检查
•最低限度C&C通信 - 足以报告感染并接收加密配置
•DEX解密和加载
•通知侦听器 - 当新的SMS消息到达时,该侦听器会捕获它,并为Core(第二阶段)组件发送广播以进行拾取。

通常,应用程序将包含一个所谓的“飞溅”屏幕 - 一个活动,该活动在后台执行各种初始化过程时会显示应用程序的徽标。一些小丑应用程序也使用此类活动进行初始化。

310和302是美国和加拿大的MCC代码

小丑采用所有配置/有效载荷/通信解析过程的自定义字符串混淆方案。下面的代码列表显示了一个混淆的MCC代码列表的示例,(default_country_iso)由下划线符号隔开。

在这种情况下,一种用于脱弹性的方法会动态构建一个字符串“ 28 UX0-”,并将其从这些字符串中删除

初始化完成后,恶意软件将从有效负载分发C&C服务器下载一个混淆和AES加密配置。Joker使用另一个字符串方案组成了配置字符串解密的AES密钥,这将使应用程序的软件包名称与MCC代码字符串相连,并以特定的方式将符号调整。最终,第二阶段检索的设置解密了以下格式的消息:

上面的配置字符串包含有关第二阶段代码的必要信息 - 小丑的核心组件。被上面的配置字符串包含(排序):由3符号定界符分开:
1. Joker Core Dex文件的URL - 此文件被混淆
2. DE-OBFUSCATION“键” - 混淆的读取缓冲区的索引
3.初始化类名称 - 班级,该类实现初始化方法
4.初始化方法名称 - 加载时要调用哪种方法
5. C&C URL
6.广告系列标签

加载程序下载DEX并启动De-Obfuscation例程。上述例程一次以缓冲区128字节读取DEX文件。DE-OBFUSCATION“键”是此缓冲区的位置索引。对于每次迭代,例程仅在这些位置之间读取混淆的缓冲区的字节,并将其写入文件中,最后产生有效的DEX文件。

这个恶意软件套件以小而沉默的套件脱颖而出。它正在使用尽可能少的Java代码,因此产生了尽可能少的足迹。在所有加载程序的MCC检查和有效负载加载之后,核心组件开始工作。它是以工作安排方式设计的,这意味着它会定期从C&C服务器请求新命令。发现时,它会严格顺序执行它们,然后根据给定任务的类型报告结果。下图是命令的示例(截断)。

小丑C&C的工作信息

当Joker收到此类消息时,它将继续打开报价URL,注入JavaScript命令,一一等待授权SMS(如果有)。当SMS消息到达时,恶意软件使用特定于案例的正则表达式提取必要的授权代码。在其他时候,它只是将SMS消息发送到高级编号,并在报价页面上提供特定代码。

从高级优惠页面上的JavaScript片段

小丑知道何时在打开高级优惠页面时发送高级短信,并找到一个具有“价值”的属性。短信:”。

Joker使用Premium提供的数据提供网页,构建SMS以发送到高级号码

每当恶意软件从SMS消息中提取代码时,它还在作业完成后将其报告给C&C。假设僵尸网络操作员可以制作工作,这将导致所有传入的SMS消息被盗。

Joker的SMS数据剥落,用AES进行加密

上图是与C&C的第二阶段通信的示例,它包含了被盗测试SMS消息的全文。可以将其解密到JSON对象中。也可以使用调试器观察到清晰文本的通信。

解密报告的一部分,包含被盗的SMS消息

关于小丑的最后一件重要的事情是电话簿联系人列表盗窃。核心组件收集联系人列表中的所有数字,并以加密表格将其发送到C&C:

联系人清单收获

在24个受感染的应用程序中,观察到了第二阶段有效载荷的12个独特构建。版本名称来自示例配置类中的有效负载URL和数据:

概括

所描述的特洛伊木马采用了明显的隐形策略来在Google游戏中进行非常恶意的活动,同时躲藏在广告框架内,并且不会在公开场合公开露出太多的恶意代码。我们可以确定的野外小丑最早发生的事件来自DNS Metadata,这表明Joker恶意软件家族已于2019年6月上旬开始了其最近的广告系列。但是,构建名称中的主要版本数字给人留下了深刻的印象。稍长于生命周期,过去可能会有更多的运动。

尽管有数量(24个应用程序),但Google似乎尽可能地受到这种威胁的贡献。某些应用程序在删除之前确实安装了100,000多个安装,但是,由于常见的Astroturfing实践,安装号始终可以在某种程度上是人造的。在整个调查过程中,Google一直在删除所有这些应用程序,而我们却没有任何注释。

我们建议您密切注意您在Android设备上安装的应用程序中的权限列表。显然,通常没有清楚的描述某个应用程序为什么需要特定的许可,这意味着每当您下载任何应用程序时,您仍在某种程度上依靠自己的直觉感觉。

IOC

- -

- -

CSIS安全集团软件开发和安全研究团队正在共享其经验建筑系统,以检测,监视和拆除恶意软件基础架构。

获取中型应用betway娱乐官网

一个说“在应用商店上下载”的按钮,如果单击,它将带您到iOS App Store
一个说“获取它,Google Play”的按钮,如果单击它,它将带您到Google Play商店
Baidu