导语:FortiGuard实验室发现了一系列针对俄罗斯服务中心的攻击,并概述了攻击的各个阶段。另外,我们将尝试找到与同一组织有关联的其它攻击。
在FortiGuard内部威胁智能平台(Kadena)的帮助下,FortiGuard实验室发现了一系列针对俄罗斯服务中心的攻击。这些服务中心为各种电子产品提供维护和支持。
这些攻击的一个显著特点是多阶段。它们使用伪造的电子邮件,携带17年前的漏洞的恶意Office文档,还有一个五层保护的商业版本的RAT。
在本文中,我们将概述攻击的各个阶段。另外,我们将尝试找到与同一组织有关联的其它攻击。此外,文末还提供了IOC指标。
一、钓鱼邮件
3月底,一家未披露的从事电子设备的维修和服务工作的俄罗斯服务公司,收到了几封电子邮件。这些电子邮件似乎来自三星公司的代表。下图提供了此类电子邮件的示例。
我们相信这些电子邮件是有计划有针对性的攻击源头,而不仅仅是随机大众攻击活动的一部分。得出这个结论的原因如下:
· 电子邮件被专门发送给维修三星电子设备的服务公司。
· 该公司位于俄罗斯,电子邮件以俄文写成,发件人字段中输入俄文姓名。
· 发件人虚假声称来自三星公司。
· 该电子邮件包含名为Symptom_and_repair_code_list.xlsx的文件,该文件与目标公司的配置文件相关。
图1.电子邮件示例的一部分,附件为漏洞文件
仔细审查这封电子邮件后,我们得出结论,俄语母语人士写这篇文章的可能性不大。相反,这个文本可能是一些机器翻译的产物。因此,我们认为,虽然这些攻击者针对的是一家俄罗斯公司,但他们并非俄罗斯人。
我们还分析了此电子邮件的标题。我们可以看到,身份验证尝试导致软失败,这意味着发件人的IP地址与“发件人”字段中的域名无关。
图2.发件人策略框架软失败
虽然我们检测到的所有电子邮件都有不同的附件,但它们都是通过一种常见模式结合在一起的:附件中的所有文件都是.XLSX,并且它们都是合法的。下图显示了这些文件中的一个。
图3.其中一个.xlsx漏洞的内容
所有这些样本的另一个共同特征是它们都包含漏洞利用。我们将在下一节中更详细地讨论这一点。
附注:在恶意文档中有一个打印机配置字符串,如下图所示。
图4.恶意示例中的PrinterSettings1.bin
我们进行了调查并得出结论,这个字符串与这些文件的原始来源有关,并且不属于攻击者。相反,这些字符串的源IP可能与文档最初创建的组织有关。文档中的所有打印机都是三星的型号。攻击者随后修改这些文件以包含漏洞。
在对这些可疑文件进行动态测试期间,我们记录了eqnedt32.exe的恶意活动。这引起了对其使用CVE-2017-11882的怀疑。之后,我们确认所有新鲜样本均来自相同漏洞的攻击:CVE-2017-11882。恶意软件作者明显很喜欢这个漏洞,因为它允许在当前所有的Windows平台上实现稳定的利用。原因在于组件“eqnedt32.exe”17年未更新。
这个组件太旧了,以至于一些研究人员认为微软已经丢失了eqnedt32.exe的源代码,并且必须为现有的可执行文件做一个二进制补丁来修复这个漏洞。你可以在这篇综述文章(this)中找到更多关于这个漏洞的分析。
图5. eqnedt32.exe的恶意活动
二、Shellcode分析
Shellcode用于解决PIC(位置独立代码)的标准任务:
· 不加密其余的body
· 确定kernel32.dll的地址
· 解析kernel32.dlland的导出目录,查找两个关键函数的地址:LoadLibraryA和GetProcAddress。有了这两个函数,它就可以访问执行其有效载荷所需的任何函数。
· 借助LoadLibraryA和GetProcAddress,shellcode获取其他所需函数的地址。有趣的是,它没有使用“哈希名称”技术。这表明shellcode作者实际上并没有受到代码大小的限制,并且可以“承受”以纯文本存储函数名称。
· 由shellcode导入的两个最重要的函数是:URLDownloadToFileW和ExpandEnvironmentStringsW。
· 第一个函数的目的很明显。最后一个函数用于确定shellcode存储下载的有效载荷的确切位置,因为在不同平台下这个位置会有所不同。
· 最后,Shellcode从URL下载文件:hxxp://brrange.com/imm.exe,将其存储在%APPDATA%server.exe中,然后尝试执行它。
图6. Shellcode:获取URLDownloadToFileW的地址
三、Payload分析
在本文中我们决定分析从如下从恶意URL下载的一个有效载荷:
Brrange[.]com/imm.exe.
上面的图5描述了这个过程。作为参考,分析样本的SHA-256校验和为:975ddf75491e3f482a7d7941e4fd33fb98e4daf339f57a4c7843fd2b375c199b
四、Payload脱壳
在分析其恶意功能之前,需要对样本脱壳。该样本具有多层多壳保护。
阶段1: ConfuserEx
第一层保护是着名的ConfuserEx加壳程序。这个加壳程序混淆了对象名称,以及方法和资源的名称,使人难以阅读和理解。另外,ConfuserEX包含很多跳转,用于改变执行流程。因此,只使用静态分析,很难预测下一步将执行哪部分代码。
图7. ConfuserEX:样本的混淆代码
样本自己脱壳过程的一般工作流程:
· 通过删除“填充”符号来解密资源名称。例如,从字符串“ADAeAmAasAAuAAAAAsLAoAtAAaAAAsAiAAAAtAAAAAAAAoAAAAA”删除所有大写字母“A”并获得“DemasusLotasito”
· 使用解密的名称从这些资源中读取字节并形成一个数组。该数组是下一个阶段的有效载荷,通过DES加密进行加密。
· 为了解密有效载荷,使用以下参数初始化DES.decryptor:KEY:0x59,0x2F,0x55,0x3D,0x17,0x4A,0x55,0x10IV:0x4A,0x59,0x36,0x0D,0x60,0x59,0x4A,0x55
图8. ConfuserEX:有效载荷解密
· 最后,它解密资源并执行解密的文件。在下图中,我们可以看到“sender2”数组的内部结构,从0x4D,0x5A开始,它是DOS标题中的MZ魔术值。在这种情况下,解密文件的名称是“BootstrapCS”,我们将在下一节中对其进行分析。
图9. ConfuserEX:运行Payload的下一个阶段
阶段2: BootstrapCS
BootstrapCS是多层保护第二阶段中可执行文件的内部名称。此层未被混淆,但包含大量反分析检查。由资源部分的结构“设置”决定(如下图所示)应该进行哪些检查。注意二进制资源mainfile,这是Payload的加密阶段3。
图10. BootstrapCS的资源部分
该模块主要的反分析功能包括:
· 对模拟器,沙箱和虚拟机执行各种检查:
1. 检测“SbieDLL.dll”
2. 检查“Win32_VideoController object”描述中的特定值 :
VMware VM additions S3 trio32/64 S3 trio32/64 VirtualBox graphics adapter VMware SVGA II
· 搜索并关闭指定的进程:
1. Fiddler Web Debugger
2. WPE PRO
3. The Wireshark Network Analyzer
· 禁用系统实用程序:
1. Command prompt
2. Registry editor
3. ask manager
4. User Access Control (UAC)
· 将有效负载路径写入以下启动注册表项:
1. HKLM\Software\Microsoft\Windows\CurrentVersion\Run\[Specified Name]
2. HKCU\Software\Microsoft\Windows\CurrentVersion\Run\[Specified Name]
· 通过分配系统和隐藏属性来隐藏文件。
· 将有效载荷注入不同的进程:
1. Vbc.exe
2. RegAsm.exe
3. AppLaunch.exe
4. Svchost.exe
5. Notepad.exe
6. Current process
脱壳过程:
请注意,在“设置”资源中有一个名为mainfile的二进制文件,这是一个加密的可执行文件,代表第三阶段加壳保护。这里使用的加密方案是一个简单的XOR算法,KEY = 0x20。
图11.解密Payload
解密后,根据设置资源文件中的值将有效载荷注入到其中一个进程中。
图12.可能的注入目标
阶段3: 7Zip
继续来看解密的有效载荷“mainFile”,它的内部名称是“im3.exe”,包含资源“application”和“_7z”两项。我们也可以观察到一个有趣的词条叫做“Imminent-Monitor-Client-Watermark”。
图13.“im3.exe”的内部
它包含以下信息:
图14.开发人员的水印
检查提到的域名“imminentmethods.net”,我们发现这是一个商业远程管理工具“Imminent Monitor”的官方网站。
任何人都可以购买许可证,设置服务器并构建自己的客户端。开发人员明确禁止恶意使用该工具,明确声明其政策。因此,他们可能会加入这种水印,以确保人们不会将其工具用作恶意活动的有效载荷。
正如我们发现的,水印已经包含在4.4版本的Imminent Monitor软件的代码中。在撰写的时候,公开的只有3.9和4.1破解版本。因此,正式购买此许可证的人也有可能编译它。但我们无法确定这一点。
一旦我们继续对文件进行进一步分析,我们就必须解压称为“应用程序”的资源。在解压过程中,该文件使用来自7zip的合法“lzma.dll”库。
图15.解压im3内部
阶段4: ConfuserEx?
在这个阶段,我们遇到了…… ConfuserEx。什么?再次使用ConfuserEx?
是的!这一次尝试rick rolling:)
图16. ConfuserEX中的Rick-Rolling URL
太糟糕了,这个视频已经被二十世纪福克斯屏蔽了。
图17. Rickrolling尝试…失败
五、RAT分析
这是Imminent Monitor RAT的商业版本。我们的IMM版本由5个模块组成:
· Aforge.Video.DirectShow 2.2.5.0
· Aforge.Video 2.2.5.0
· Injector 1.0.0.0
· ClientPlugin 1.0.0.0
· LZLoader 1.0.0.0
前两个模块能够记录来自受害者摄像头的视频。后三个包含不同的间谍和控制功能。IMM功能的完整列表可在官方website上找到。因此,我们在这里就不详细赘述。
根据动态分析,一个很好的IoC指标是下述文件夹:
%AppData%\Roaming\Imminent\
图18.Imminent监视器的文件系统活动
六、相关联的攻击
我们还分析了攻击中使用的C2服务器。根据注册数据,我们发现50个域名全部在同一天注册。其中一些域名已被用于传播恶意软件。另一组织与钓鱼攻击有关。这些域名目前被我们的WebFilter阻止。本文末尾的IOC部分提供了这些域名的完整列表。
此外,我们对样本集中进行了一次搜索,发现了几个使用与这些攻击样本相同的C2服务器的.XLSX样本。这些示例较旧并使用不同的漏洞。我们认为,这一组织的攻击者就是在两组样本的幕后真凶。
七、总结
FortiGuard实验室发现了针对俄罗斯服务中心的多阶段攻击。我们也注意到,这些攻击的模式现在已经变得非常流行。使用漏洞利用比使用简单的可执行文件更为有效,特别是近年来,用户的威胁意识水平已经有了显著提升。诱骗用户打开之前的可执行文件并不那么容易。不过,漏洞是另一种情况。
IOC(参见原文)