Joker恶意软件的最新攻击技巧:使用Github隐藏有效载荷 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

Joker恶意软件的最新攻击技巧:使用Github隐藏有效载荷

lucywang 技术 2020-11-23 11:00:00
675428
收藏

导语:Joker(又名Bread)恶意软件在几个月时间里,就感染了数百万设备,而且需要手动干预删除,才能最终实现设备对恶意软件的全部清除。

Joker(又名Bread)恶意软件在几个月时间里,就感染了数百万设备,而且需要手动干预删除,才能最终实现设备对恶意软件的全部清除。

早在7月份的时候,谷歌安全研究人员就发现被Joker感染的问题。据调查,这款恶意软件,早在3月份就开始活跃,截止目前,已经成功感染了将近数百万台的设备。通过分析,Joker是个技术简单却很难防御的恶意软件,所以导致了众多设备的感染,其实Joker早在三年前就首次被发现。

详细分析

研究人员最近在Google Play的样本中检测到了一个恶意软件Joker的新版本,此更新版本利用Github页面和存储库来逃避检测。

自2017年被发现以来,该Joker恶意软件一直困扰着移动用户。2020年1月,Google从PlayStore中删除了1700个受感染的应用程序,在过去的三年中该恶意软件的技术也在不断迭代中。最近,9月,安全公司Zscaler发现了17个样本,这些样本已上传到Google PlayStore。 Joker就是这一系列恶意活动的幕后策划者,从对不知情的用户签名到高级服务,再从窃取短信到手机通讯录,几乎所有的恶意活动Joker都有涉及。

该恶意软件已成为众所周知的持久威胁,因为开发者不断进行一些小的更改以寻求Google防御方面的漏洞。他们之前尝试过的技术包括加密以隐藏字符串不被分析引擎发现,除此之外,开发者还经常对版本进行更新,即上传一个干净版本的应用程序,然后通过更新添加恶意代码。研究人员最近在Google Play的样本中检测到一个新的Joker恶意软件版本,该版本利用Github页面和存储库来逃避检测。安全研究员Tatyana Shishkova还发现并分析了该样本。

研究人员分析过的应用承诺了高清和4K质量的壁纸,并被下载了1000多次。在被举报为恶意软件后,谷歌已将其从PlayStore中删除。

Joker Figure 1.jpg

推送Joker恶意软件的墙纸应用程序,目前链接到该应用程序的URL已经失效

有效载荷分析

这个新样本与以前的版本之间最明显的区别是使用Github和Github页面存储其恶意有效载荷。这种技术在任何早期的Joker恶意软件样本中都没有出现过,幸运的是,与该恶意软件连接的Github页面和存储库都已被删除。

以下是它的新存储策略和其他近期技术发展的细节:

1.它将恶意代码注入到新位置,而不是应用程序类或启动程序活动。

2.jpg

2.在最初的版本中,Joker通常使用注入的代码下载其有效载荷。不过此版本首先从远程服务器获得一个json配置字符串,然后解密字段以获得下一阶段命令和控制服务器(C&C)以及下一个有效载荷的入口点函数。

3.jpg

不同的Joker样本中的配置文件不同,研究人员研究的样本有以下json格式的加密字段。

4.jpg

3. 该恶意软件使用Github页面来促进恶意活动,同时避免URL检测。用于获取配置字符串的C&C是hxxps://surasuke7.github.io/retrofit/static/vega-schema.json。Github用户使用名为surasuke7的名称,并将配置隐藏在库更新中,路径是static / vega-schema.json。

5.jpg

4.Github也用于装载有效载荷,第一个有效载荷C&C是hxxps://cdn.jsdelivr.net/gh/surasuke7/vega@gh-pages/releases/v1.5.4/ppk-62.zip(与以前的版本不同,有效载荷着陆页面不是阿里云或亚马逊)。为了给URL提供更多的上下文:jsdelivr是一个帮助加速访问GitHub的快速内容传递网络(CDN),并且URL有一个特定的格式(hxxps://cdn.jsdelivr.net/gh/user/repo@version/file)。

C&C URL显示有效载荷位于surasuke7用户的Vega存储库中,位于gh-pages分支中,文件路径为 releases/v1.5.4/ssp-62.raw。 git提交历史表明,该攻击流已在10月初被使用过了。

6.jpg

5.最新的有效载荷的行为类似于之前的样本,第一个有效载荷将在下载下一个有效载荷之前检查SIM ISO代码。

7.jpg

攻击过程

一旦第二个有效载荷被加载到内存中,感染过程将以静默方式运行,而活动设备上没有任何明显的行为。以下是对过程的描述和说明:

1.恶意有效载荷将调用loadNewJob函数以从C&C获得新的攻击任务,而C&C将决定有效载荷的攻击行为,下图显示了Joker使用共享首选项文件中的deviceID来记录设备是否已被感染。

8.jpg

a. register

此函数用于将受害者的设备注册到C&C服务器,服务器将向该设备发送第一个任务。

9.jpg

b. getJob

恶意有效载荷使用此函数来请求新任务。

10.jpg

它们中的任何一个都将根据其Job类返回一个Job对象。json结构应该如下:

11.jpg

最后,它运行该作业并向主处理程序发送一条消息以启动另一个恶意模块,该模块将劫持WebView。

2. Joker通过调用setWebViewClient来设置一个定制的webViewClient对象来劫持WebView。

12.jpg

如上图所示,它主要覆盖onPageFinished,shouldInterceptRequest和ShouldOverrideUrlLoading。

拦截可以通过两种方式完成:中继和黑客攻击。他们每个人都会根据C&C响应(分别对应于relays数组和thks数组)检查URL是否可以中继或入侵。

恶意软件使用以下函数来完成对受害者的攻击:

a. loadUrl

13.jpg

如果一个URL即将加载到WebView中,并且check_hack响应为True,则恶意软件将向私有处理程序发送一条消息。此消息将调用requestPage函数,此函数主要尝试为用户订阅未添加的高级服务。

b. intercept

如上所述,该恶意软件试图通过中继和黑客拦截请求。

中继

14.jpg

这将检查最终的URL是否可以中继,如果可以,该恶意软件将运行中继函数,以将用户重定向到C&C指定的另一个URL。

黑客

这将替换响应正文中的某些项,如果URL无法中继,则在拦截结束时,它将尝试使用以下步骤来攻击URL:

首先,请求必须为GET,并且当前网址应在C&C的thks数组响应中找到;

然后,它执行请求并获得原始响应;

最后,它调用distortContent函数来攻击URL;

15.jpg

c. onPageFinished

这个函数将尝试运行C&C发送的JS代码

3.该恶意软件还试图向受害用户添加订阅付费服务。

加载URL时,恶意软件会检查SIM运营商是否为AIS(泰国的移动运营商)以及URL是否为hxxp://ss1.mobilelife.co.th/wis/wap。如果两个参数都满足,那么它将以静默方式向受感染的用户订阅付费服务。

具体步骤如下:

a.向操作员请求确认码;

b.阅读通知或短信中的确认码;

C.用确认码向操作员发送确认请求;

它在用户不知情的情况下执行所描述的所有步骤

4.该恶意软件可以运行JS代码。

与它覆盖shouldInterceptRequest函数的方式类似,如果一个页面已经完成加载,它也将覆盖onPageFinished以触发JS代码。

16.jpg

它从C&C响应中获取一个Action对象,并检查这些操作是否可以在当前页面上运行。获取Action对象后,它将向主处理程序发送一条消息,该主处理程序随后将运行JS代码。

17.jpg

以下是runJs函数:

18.jpg

这将调用EvaluationJavascript来运行JS代码。

19.jpg

由于它使用JavascriptInterface实现JS桥,因此可以运行JS代码,这些命令是通过C&C发送的。一些可能的命令如下:

1.addComment:向当前网页添加评论;

2. finish:完成网页;

3.sleep:使线程休眠特定的时间:

4.getPin:从通知中读取PIN码;

5. get:发送GET请求;

6. submitForm:通过post请求向C&C提交表单数据;

7.callPhone:当前不受支持;

8.sendSms:发送短信;

9. post:发送一个post请求;

通过进一步的调查,研究人员发现了另外两个与surasuke7.github.io相关的样本,但是它们都不在Google Play上。

乍一看,由于Joker恶意软件样本包含在可正常运行的应用程序中,因此用户可能不会意识到有任何不妥。该应用程序承诺提供墙纸并将其重新打包到应用程序中,这是研究人员之前从Joker恶意软件中已经看到的,如果应用程序没有获取短信的权限,它就需要获得一定的运行权限。它需要android.permission.BIND_NOTIFICATION_LISTENER_SERVICE才能从通知中窃取密码,并从android.permission.READ_PHONE_STATE来获取SIM卡的移动国家/地区代码。

众所周知,Joker仅在带有SIM卡的设备上运行并且仅适用于特定的SIM国家代码。目前发现的这个特定样本似乎仅针对泰国的移动运营商用户。

该样本包含Joker恶意软件的其他长期运行的元素:它使用JS代码运行C&C命令,并且在用户不知情的情况下向用户订阅WAP服务。但这也表明,自2017年以来,Joker仍在不断发展和迭代中。在这种变化中,攻击者似乎正在寻找一种新的有效方法来隐藏恶意软件的有效载荷。 由于Github是一个已知的公共存储库,攻击者可能认为使用它会帮助他们绕过安全检测。另一个值得注意的变化是,恶意软件现在在C&C服务器上隐藏了所有有价值的线索,例如欺诈URL。

IoC

20..png

本文翻译自:https://www.trendmicro.com/en_us/research/20/k/an-old-jokers-new-tricks--using-github-to-hide-its-payload.html如若转载,请注明原文地址:
  • 分享至
取消

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

扫码支持

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

发表评论

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