导读
活跃在东欧和中亚地区、热衷于抢银行的 Cobalt Group 网络犯罪团伙在其领导人之一被捕后,近期被发现入侵了哈萨克斯坦的一家银行。但是他们的犯罪行为被以色列的科技公司 Check Point 给逮住了。
让我们看看百足之虫死而不僵的 Cobalt Group 的犯罪事实,也来看看以色列安全公司对 APT 组织的分析、溯源、归因能力如何……
介绍
Cobalt Group 是一个基于经济目的的网络犯罪团伙,自2016年以来一直活跃。该集团主要对银行进行攻击,试图进入银行的内网,并尽可能的控制敏感组件,如控制 ATM 的服务器或银行卡处理系统。尽管欧洲警察组织在2018年逮捕了 Cobalt Group 的领导人,但该组织直到今天仍保持活跃。
以色列的 Check Point 公司最近研究发现:Cobalt Group 发起了一场针对哈萨克斯坦一家银行的行动,并精心制作了一个带有该银行 logo 的极具可信力的恶意文件。更令人担忧的是,该文件本身可以从该银行的官网下载,从而增强了其合法性、降低了潜在受害者的怀疑。本文将描述该攻击的完整感染链,以及确定该攻击真凶的分析过程。
诱饵文件
针对此次攻击的调查始于我们在 Kassa Nova 银行的宣传网站上发现了一份恶意文件。根据描述,Kassa Nova 银行向哈萨克斯坦公众和小企业提供金融产品和服务。
该恶意文件托管在银行的文档存储库中,使得它更容易与合法文档混淆:
https://kassanova[.]kz/files/docs/T47188445.doc
下载并启动后,该文档显示俄语的诱导信息,要求受害者启用其内容。再加上在文档正文中带有 Kassa Nova 银行的 logo,这种社会工程学的内容很容易诱骗受害者运行嵌入式恶意宏:
图1:诱饵文件
MD5: 7f0f3689b728d12a00ca258c688bf034
启用宏之后会启动一个多阶段感染链,最终下载并执行一个 Cobalt Strike beacon(远控木马),为攻击者在目标组织内提供一个立足点。
图2:感染链
众所周知,在实际攻击中,许多威胁组织会使用一些通用渗透测试工具,Cobalt Group 更是如此。这种做法不仅可以为攻击团队节省大量的开发工作,而且还可以使溯源更加困难。
图3:经过混淆的宏代码
宏
一旦用户按下“启用宏”按钮, Document_Open 宏功能将由 Word 自动触发。
使用的代码经过了深度混淆,变量名称似乎是随机生成的,代码中包含由随机单词组成的注释。
宏的目的是将一个 XSL 文件写入本地磁盘C:WindowsTempaA3jY9HP.xsl,并使用 SquiblyTwo 执行技术运行它。
图4:使用 WMIC 执行 Jscript 的 shell
此技术利用合法的 WMIC 实用程序,攻击者只需运行以下命令即可从 XSL 文件调用 JScript 或 VBScript 代码:
wmic os get /format:[XSL_FILE_PATH]
在我们的示例中,XSL 文件包含 JScript 代码,该代码会从远程服务器地址下载下一阶段的可执行文件,运行它,并最终删除 XSL 文件以移除各种痕迹:
图5:XLS 文件中嵌入的 JScript 代码片段
下一阶段 payload 中的托管的域名 myovs[.]de 属于德国媒体公司 Otto Schmid,是一家专注于税务、商业和公司法市场的媒体公司。显然,这家公司的网站在银行攻击行动之前也遭遇了入侵。
Payload
下载的 payload “file.exe” 是已签名的可执行文件,它带有 Sectigo 的有效证书:
图6:下载的 payload 经过了签名
MD5:a26722fc7e5882b5a273239cddfe755f
该可执行文件与 185.61.149[.]186/rpc 进行通信来下载和解密一个 Cobalt Strike beacon(远控木马)。然后,该 beacon 在同一 IP 地址上与下列 URL 进行通信:
http://185.61.149[.]186/owa/?wa=UdHv7kfAh0akFkK7uZW2P721Wm-ceiYOj1wqEiX7QBO6kvCNkDwV_Pbukex3OZnbJ6vDEY3ipA9ZLnKXnzKobrVlsrak93OoUclN-ofsPEHv_7_1CT1Jcqtcwxiv6rQO53GpZd5hTYG4hfP4s96PWTb3IkM9H3VTbu8RnaSplGs&path=/calendar
令人惊讶的是,此通信类似于查看 Office 365 Outlook 日历时发出的合法请求。查找唯一请求 header 使我们进入了一个名为“Malleable C2 Profiles”的 GitHub 项目(https://github.com/xx0hcd/Malleable-C2-Profiles/blob/master/normal/office365_calendar.profile),该项目提供了多种不同的 profile(配置文件),可以各种模拟合法服务、已知恶意软件甚至 APT 组织的通信模式。【译者注:该 Github 项目是自定义的一些配置好的 Cobalt Strike C2 profile 的集合。通过自定义Cobalt Strike C2 profile,可以模拟正常请求进行数据收发、伪造 web 服务器响应……其实对于 payload 行为和协议流量特征方面的的控制全部都可以在 CobaltStrike profile 文件中进行自定义。这里的 office365_calendar.profile 很明显就是模拟了请求 Office 365 Outlook 日历的服务。该项目分为三个子模块:1. APT 是模仿其他 APT 组织的通信模式;2. crimeware 是模仿其他知名恶意软件家族的通信模式;3. normal 是模仿各种合法服务的通信模式。】
通过这种方法可以逃避检测、从失陷系统中窃取数据而不会引起任何怀疑,因为监控网络的人可能会将此错误归咎于合法的 Office 365 流量。
锁定 Cobalt Group
Cobalt Strike beacon(木马文件)存在与一家中亚银行的关联这一线索将可疑 APT 组织的数量减少到一个非常短的名单,但需要更多的证据才能得出 Cobalt Group 是这次行动的幕后黑手的结论。
在研究可执行文件时,可以通过查看“Rich Header”结构深入了解开发人员(或攻击参与者)用来编译可执行文件的工具。
有时,关于开发环境的信息可以帮助分析研究人员找到来自同一攻击参与者的更多实例,该攻击参与者在相同恶意软件变体的多个编译中重用相同的构建环境。
图7:来自payload中的解码后的Rich Header(如PE-bear所示)
利用这种技术找到相似的文件,我们能够发现大量类似的 Cobalt Strike 加载器。
比较加载器的逻辑验证了我们的假设,即样本确实是相关的:
正如 @VK_Intel 所指出的,两个实例都依赖类似的算法,以正确地提取下一阶段的 shellcode;使用当前月份或年份作为解码的偏移量。
如果月份或年份与预期的操作窗口不匹配,则攻击的下一阶段将无法正确执行。
图8:“file.exe” payload
图9:匹配的样本
此外,其中一个找到的样本在其调试信息中显示了一个独一无二的项目名称:BATLE_SOURCE。
C:UsersdDocumentsтрshellBATLE_SOURCEONLY_EXESMRS-30.10.2018smrsReleasesmrs.pdb
MD5: 02c11b8697aeec84249316733c2a0c2d
这个确切的项目名称(和类似的文件夹路径)可以2016年发现的 Cobalt Group 加载器中找到:
C:UsersDNSDocumentsтрshellBATLE_SOURCESampleService_run_shellcode_from-memory10-02-2016ReleaseSampleService.pdb
MD5: af82af8f5d540943aaba20920d015530
在考虑了 TTPs(战术、技术和程序)、攻击目标和类似攻击技术的重叠后,我们能够高度自信地将此活动与 Cobalt Group 的操作联系起来。
宏生成器(Macro Builder)套件
除了可执行的 payload 以外,在调查过程中我们还尝试通过相关 artifact(译者注:在软件工程领域,所有软件开发过程中的有形产物都可以叫 artifact,比如:源代码、文档、编译后的文件、可执行文件、测试用例、测试文档、测试结果等)的独有特征来寻找类似的文件。有趣的是,我们能够找到几个在我们发现有问题的文件的同时段出现的恶意样本。
通过比较 Kassa Nova 文档宏和我们发现的另一个文档的 VBA 调用图,可以看出它们非常相似。唯一的区别是随机函数名称,它仍然保持相同的字符串长度:
图10:分析的行动中的VBA调用图
图11:来自另一个活动的VBA调用图
此外,这些文档掉出的 XSL 文件与我们描述的攻击中掉出的文件几近相同,甚至包含相同的注释和代码格式。然而,这似乎是这些递送的文件与我们的文件之间的唯一联系,因为它们最终将丢出诸如 Dridex、IcedID 和 Ursnif 等银行木马。
事实上,payload 属于不同的活动表明:Cobalt Group 再次使用了出售在地下犯罪论坛的宏生成器工具包。在过去,有人观察到 Cobalt Group 使用其他“商业”开发框架,如“ThreadKit”和“Microsoft Word Intruder”。
过去的攻击
一直以来 Cobalt Group 活跃在东欧和中亚地区。事实证明,这甚至不是 Kassa Nova 银行首次被 Cobalt Group 入侵:2018年12月,从属于该银行员工的电子邮件地址发送了恶意附件到金融部门的其他潜在目标。
图12:从 Kassa-Nova 银行发送到合作伙伴的恶意电子邮件
这是已知的 Cobalt Group 的 TTP(战术、技术和程序)——通过发送来自可靠的合作伙伴的恶意电子邮件,通过入侵一家公司来入侵另一家公司。
这封有问题的电子邮件附件使用了新披露的CVE-2018-15982来安装 CobInt——Cobalt Group 使用的一个签名侦察工具,而就在不久之前,360CoreSecurity就披露了关于在野使用该零日漏洞的信息(http://blogs.360.cn/post/PoisonNeedles_CVE-2018-15982_EN.html)。
结论
无论它是否正在入侵银行的网站,但构建一个量身定制的文件来伪装成合法的文件,使用带有效证书的 payload 等等,这看起来都像是一场早已精心预谋的攻击。Cobalt Group 似乎并没有因其领导者之一的逮捕而受到打击,相反正在扩大其工具集,瞄准新的目标。
在发现攻击的第一时间,Check Point 公司就已经联系了Kassa Nova银行的相关人员,该银行的工作人员之后确认内部系统检测到了攻击并成功进行了修复。
附录
附录 A 提供了相关 IOC(失陷指标),附录 B 提供了 Cobalt beacon 的配置文件。有兴趣的读者可以点击左下角的「阅读原文」从英文原文中查看附录。
原文始发于微信公众号(全球红队情报):银行大盗 Cobalt Group 在其领导人被捕之后入侵了哈萨克斯坦银行