导语:专家发现,FriedEx是由Dridex的开发团队研发的,这些犯罪团伙不仅会继续改善这个银行木马软件,而且会赶上这股恶意软件的“大流”,研发出他们自己的勒索软件。

Dridex一直是计算机用户、公司和金融机构的噩梦。对于很多人来说,谈及银行木马,首先想到的就是它。最近,ESET的研究表明,臭名昭著的Dridex银行木马的作者是另一个备受瞩目的恶意软件家族的幕后黑手。该软件是由ESET检测到的复杂的勒索软件Win32 / Filecoder.FriedEx和Win64 / Filecoder.FriedEx,也被称为BitPaymer。

Dridex

Dridex银行木马在2014年首次出现,最初是一个相对简单的受老项目启发的机器人,但作者很快将这个机器人变成了市场上最复杂的银行木马之一。该木马发展稳定,每周会发布小修正和更新,偶尔休息一下。有时候,作者还会引入重要更新,增加一些关键的功能或大的变化。2017年初发布第3版到第4版的最后一次重大更新,因采用Atom Bombing注入技术而获得关注,并在今年推出了新的MS Word 0day漏洞利用,该漏洞把木马传播给数百万的受害者。

截至本文撰写时,Dridex的最新版本是4.80,包括对Chrome版本63的webinjects支持。Dridex 4.80于2017年12月14日发布。

注意:去年我们发布了一个工具,可以帮助识别流行Web浏览器中的恶意钩子。该工具旨在帮助事件响应者发现潜在的银行木马,包括Dridex。

FriedEx

依据勒索需求显示的文本,此勒索软件最初被称为BitPaymer,Michael Gillespie在2017年7月初发现。八月份,它重新成为焦点,因感染苏格兰NHS医院而登上头条。

FriedEx专注于高规格的目标和公司,而不是常规终端用户,通常通过RDP暴力攻击传播。勒索软件使用随机生成的RC4密钥对每个文件进行加密,并保存为相应的.readme_txt文件,之后使用硬编码的1024位RSA公钥将RC4密钥加密。

2017年12月,我们仔细查看了FriedEx的一个样本,立即注意到代码与Dridex有相似之处。深入分析FriedEx样本,我们发现FriedEx与Dridex使用相同的技术以尽可能多地隐藏其行为。

它通过hash搜索来解决所有系统API调用,以加密形式存储所有字符串,通过hash查找注册表项和值等。由此产生的二进制文件在静态特性方面非常低调,而且在没有深入分析的情况下很难搞清楚恶意软件在做什么。我们开展了进一步的分析,揭示了一些额外的属性,证实了我们最初的怀疑——这两个恶意软件家族由同一个开发者创建。

代码相似性

Fig1.png

图1. Dridex和FriedEx样本中的GetUserID函数比较

图1中,我们可以看到生成用户ID函数的一部分,该函数可在所有Dridex二进制文件(loader和bot模块)中找到。正如我们所看到的,FriedEx二进制文件中也使用了与Dridex相同的函数。该函数生成相同的结果——它从受害者机器的若干属性中生成一个字符串,作为受害者的唯一标识符,或在Dridex僵尸网络中,或在FriedEx勒索软件中。值得一提的是,这些截图会让你有一种在玩“找差异”游戏的感觉!

Dridex与FriedEx的这种相似性贯穿于整个二进制文件中,只有极少数与特定勒索软件相对应的函数(即文件加密循环和创建赎金消息文件)未在Dridex样本中找到。

Fig2.png

图2. Dridex和FriedEx样本中函数顺序的比较。另一个样本中缺少的函数以相应的颜色突出显示

另一个共享特征就是二进制文件中函数的顺序,当多个项目使用相同的代码库或静态库时,就会发生这种情况。如图2所示,虽然FriedEx样本似乎缺少Dridex样本中的一些函数,反之亦然(编译器忽略未引用/未使用的函数引起的),但顺序保持不变。

注意:基于代码地址(sub_CA5191和sub_2A56A2等)自动生成的函数名称对明显不匹配,但代码却是相同的。

还有一点,Dridex和FriedEx都使用相同的恶意软件壳。然而,由于加壳如今非常流行(可能是因为其避免检测和阻碍分析的有效性)并被其他知名的家族(如QBot,Emotet或Ursnif)使用,所以我们并不认为这是单独的有力证据。

PDB paths

在构建Windows可执行文件时,链接器可能会包含指向调试符号文件的PDB(程序数据库)路径,这些符号可帮助开发人员调试和识别崩溃。实际的PDB文件不存在于恶意软件中,因为它是一个单独的文件,没有分发。但是,有时仅仅路径就(如果包含的话)可以提供有价值的信息,因为PDB文件与默认编译的可执行文件位于同一目录中,并且通常也具有相同的名称,后跟.pdb扩展名。

正如人们所想,PDB路径通常不包含在恶意软件的二进制文件中,因为攻击者不想泄露任何信息。幸运的是,这两个家族的一些样本确实包含了PDB路径。

Fig3.png

图3. Dridex和FriedEx项目中找到的所有PDB路径

如图3所示,两个项目的二进制文件都在相同的、独特命名的目录中。基于对所有恶意软件样本元数据的搜索,我们得出结论:S:Work_bin是Dridex和FriedEx项目独有的。

时间戳

我们发现Dridex和FriedEx的几个样本编译日期相同。这当然可能是巧合,但经过仔细观察,我们很快就排除了“纯属巧合”的理论。我们不但发现在同一天的编译最多仅有几分钟的时间差(这意味着Dridex的人可能同时编译这两个项目),而且随机生成的常量在这些样本中也是相同的。这些常量会随着每次编译的变化而变化,使分析更加困难,并避免检测。这可能是因为每次编译中随机因素或许基于像当前日期的一些变量。

Fig4.png

图4. Dridex样本中的GetAPIByHash函数,编译时间差为3天,突出显示的常量不同

图4中,我们比较了两个Dridex loader样本编译时间差三天。虽然loader几乎完全相同,唯一区别的是它们的硬编码数据(如加密密钥和C&C IP),但常量也不同,所有基于它们的hash也不同。 另一方面,图5中,我们可以看到同一天FriedEx和Dridex loader的比较(事实上,时间仅相隔两分钟)。此处,常量是相同的,这意味着二者可能在同一编译会话中建立。

Fig5.png

图 5.Dridex和FriedEx二进制文件中的GetAPIByHash函数在同一天编译,突出显示的常数在两个样本中相同

编译信息

编译器信息进一步支持我们发现的所有证据——Dridex和FriedEx的二进制文件都在Visual Studio 2015中编译。这可通过在PE Header和Rich Header数据中找到的链接器版本来确认。

Fig6.png

图6. Dridex 和 FriedEx样本中发现的Rich header数据

除了与Dridex明显的相似之外,我们遇到了一个之前未被报道的勒索软件的64位变种。由于通常的32位版本的勒索软件可以同时针对x86和x64系统,我们认为这个变种有点意思。

结论

有了这些证据,我们确认FriedEx系是Dridex作者所为。这一发现让我们更好地了解了该组织的活动情况——我们可以看到,该组织继续保持活跃,不断更新其银行木马,以保持对最新版本Chrome的webinject支持,并引入新的功能,如Atom Bombing,但它也遵循最新的恶意软件“趋势”,制造自己的勒索软件。

我们只能猜测未来会发生什么,但可以肯定的是,Dridex团伙不会很快消失,他们将不断创新旧项目,并可能衍生出新的作品。

很长一段时间,人们相信Dridex团伙只是“一招鲜”,他们把注意力集中在银行木马上。现在我们发现情况并非如此,他们适应最新的趋势,创造出一种可以与同类竞争的不同类型的最先进恶意软件。

IoCs

image.png

源链接

Hacking more

...