这个博客帖子是撰写的@Hasherezade.JérômeSegura.

Magnitude漏洞利用工具包是目前仍在使用的浏览器漏洞利用工具包中使用时间最长的一个。自年成立以来2013年,它在全球范围内享受了喜欢的勒索制造器. 最终,它变成了一家专注于狭隘地域的私人企业。

2017年,Magnitude通过滤波门作为。。而被知道拉动,仅适用于少数几个亚洲国家。2017年10月,漏洞工具包运营商开始分发自己的勒索软件,胶铁. 这一变化带来了一个有趣的转折,恶意软件的作者不遗余力地进行了修改将感染限制在韩国。除了通过国家特定的恶意链进行流量过滤,如果返回特定国家/地区代码,则胶石将仅安装,否则它将删除自己。

2018年4月,震级意外开始推动不断增长的Gandcrab赎金软件,不久之后采用一个新鲜的闪光零点(CVE-2018-4878)。可能是一个测试运动没有持续长期,不久之后,胶铁再次回来。在我们最近的幅度中,我们现在看到最新的Internet Explorer Exploit(CVE-2018-8174)主要用于它集成的经过一周的交通中断。

在这篇文章中,我们看看胶铁的一些显着变化。它的源代码现在更加精细,利用各种混淆技术,不再依赖于其加密例程的命令和控制服务器或硬编码密钥。此外,虽然胶铁以前只针对韩国,但它现在已经扩大到其他亚太国家。

提取有效载荷

下载并执行最终有效负载之前有几个阶段。在称为302重定向之后(步骤1),我们会看到一个Base64混淆的JavaScript(步骤2)用于发射幅度的着陆页面,以及Base64编码的VBScript。(在IOC的本篇文章结束时,脚本的原始版本都可用。)在CVE-2018-8174的开发之后,检索XOR加密的胶质。

图1.胶质感染的交通视图,通过衡量重定向和幅度ek

图2.解码的Javascript显示重定向到Magnitude的登录页

图3.显示CVE-2018-8174部分的VBScript代码片段

一旦在Internet Explorer中的免费漏洞后使用(CVE-2018-8174)是成功的,VBScript将执行以下ShellCode:

图4.字节数组(shellcode)

就功能而言,此外壳代码是一个简单的下载程序。它下载经过模糊处理的有效负载,用XOR键对其进行解码,然后部署:

图5.通过InternetOpenUrlw API下载最终有效负载

下载的有效载荷(72FCE87A976667A8C09ED844564ADC75但是,然而,仍然不是胶铁芯,而是一个下一阶段装载机。该装载机解压缩胶铁的核心DLL(19599CAD1BBCA18AC6473E64710443B7)并将其注射到一个过程中。

元素,装载机和胶铁芯,都是具有反射装载机的DLL,可使用它自己加载到当前过程中反思DLL注射技术。

行为分析

Magniber执行的操作没有太大变化;它对文件进行加密,并在最后放一张名为README.txt的赎金便条。

图6.受感染机器上留下的赎金笔记

给定的链接导致每个受害者唯一的洋葱页,类似于许多其他勒索仓库页面:

图7.胶铁的付款页面

通过其扩展可以识别由此版本加密的文件:.dyaaghemy。虽然在过去的每个文件中使用相同的AES密钥加密,但这次每个文件都以唯一的键加密 - 相同的明文给出了不同的密文。加密内容没有可见模式。这表明使用流密码或具有链式块的密码(可能是CBC模式中的AES)。下面您可以在磁石加密之前和之后看到BMP文件:

图8.在加密之前和之后可视化文件

代码更改

胶铁不断随着时间重写的大量重写而不断发展。下面您可以在目前的磁板DLL和早期版本之间看到代码比较(8A0244EED8A26139BEA287A7E419D9),在Bindiff的帮助下创建:

图9.与较新的旧胶质进行比较

混淆

作者在提高混淆方面付出了很多努力。我们描述的第一个版本根本没有被滥用。相反,当前的电流使用少数不同的技术进行了混淆。首先,API函数现在可以通过其校验和动态检索。例如:

图10.通过校验和调用API函数

对比新旧版本,我们可以看到一些重叠的代码片段:

图11.具有正常导入呼叫与新版本的旧版本,具有动态检索的功能

通过搜索当前加载的DLL的导出表来检索函数指针。这种技术要求我们要从中检索函数的DLL已经加载。这个检索函数的算法是几个月前添加到Magniber的,例如在示例中60AF42293D2DB0CC8BF1A008E06F394

此外,呼叫的一些参数是动态计算的,并且在操作之间添加垃圾码。应该加载的字符串通过若干变量分散。

图12.添加垃圾代码使分析更加复杂

文件加密

我们还可以在功能级别观察到一些变化。早期版本依赖于从CNC服务器下载的AES密钥(如果不可用,则丢回硬编码器,在这种情况下使解密差别)。这一次,胶铁配备了攻击者的公共RSA密钥,使得在加密过程中完全独立于Internet连接。此键用于保护用于加密文件的唯一AES键。

攻击者的RSA键在样本中以混淆的形式进行硬编码。这是它在Deobfuscation后看起来的样子:

图13. Deobfused RSA键

每次加密新文件时,都会生成两个16字节的长字符串。一个将用作AES密钥,另一个作为初始化向量(IV)。您可以在下面看到负责生成那些伪随机字符串的代码的片段。

图14.生成伪随机字符串

有趣的事实是他们用作随机生成器的东西 - 弱的随机性来源可能会产生漏洞。我们可以看到在引擎盖下GetTickCount叫做:

图15.使用gettickcount的随机发生器

生成密钥和IV的代码的完整重建可在以下代码段中获得:https://gist.github.com/hasherezade/7fb69fbd045315b42d7f962a83fdc300

在RansomWare继续加密文件之前,导入RSA密钥并用于加密生成的数据(key + iv):

图16. RSA密钥在文件加密开始之前导入

它生成一个256字节的加密块,传递给加密函数,然后附加到加密文件的末尾。除了这些更改之外,文件的加密方式也类似以前,在Windows'Crypto API的帮助下。

图16.设置AES密钥和初始化向量

图17.加密和写入文件

地理扩张

7月初,我们注意到我们在典型地区外部发生的尝试,我们已经习惯了,例如在马来西亚。大约在同一时间,一个鸣叫从MaluareHunterteam提到的台湾和香港的感染。

在分发范围的变化之后,胶铁代码已更新为白名单更多语言。现在列表扩展,添加了其他亚洲语言,如中文(澳门,中国,新加坡)和马来语(Malysia,文莱)。

图17.扩展语言检查

继续演变

虽然起初,胶铁并不令人印象深刻,但具有简单的代码和没有混淆,它是积极开发的,并且其质量不断提高。他们的作者看起来很专业,即使他们犯了一些错误。

这种勒索软件的操作非常精确,从仔细分发到匹配的语言白名单。犯罪分子确切地知道他们要针对哪个国家,他们努力将噪音降至最低并减少附带损害。

必威平台APP通过我们的反漏洞模块,阻止了用户免受这种威胁的保护,这些模块阻止了幅度ek的尝试利用CVE-2018-8174(VBScript引擎漏洞):

幸亏大卫·莱德贝特为了他的帮助,劝阻VBScript。

妥协指标(IOC)

178.32.62 [。] 130,Bluehuge [。]专家,称重(步骤1)94.23.165 [。] 192,69A5010HBJDD722Q.FeedRun [。]在线,称重(步骤2)92.222.121 [。] 30,08taw3c6143ce。Nexthas [。]岩石,幅度ek(着陆页)149.202.112 [。] 72,胶束

代码片段

胶铁(原版)

6E57159209611F2531104449F4BB86A7621FB9FBC2E90ADD2ECDFBE293AA9DFC

胶铁(核心DLL)

FB6C80AE783C1881487F2376F5CACE7532C5ADFC170B39E06E17492652581C2