研究传播 Dridex 新变种的 Excel 文档

VSole2021-09-19 18:54:44

Dridex也称为 Bugat 或 Cridex,可以从失陷主机上窃取敏感信息并执行恶意模块(DLL)的木马。

FortiGuard Labs 最近捕获了新的网络钓鱼邮件活动,其中包括特制的 Excel 文档附件。分析研究后,发现一旦在受害者的机器上打开了恶意 Excel 文档就会下载 Dridex 的新变种。

Dridex 钓鱼邮件

带有 Excel 附件的 Dridex 钓鱼邮件如下所示:

钓鱼邮件伪装成向客户发送的进口关税数据,要求用户打开 Excel 附件(HF7.TRANS 2021.08.09.xlsb)查看详细信息。

宏代码解析

收件人打开 Excel 文档后会在顶部以红色粗体显示要求用户启用宏代码。Excel 则会显示黄色警告栏,通知用户当前已经禁用了宏,意味着启用内容可能存在风险。

Excel 文件内部不仅使用了自动运行的 VBA 代码(Workbook_Open),还使用了 Excel 4.0 宏代码。

Sub Workbook_Open()ActiveWorkbook.Sheets("Macro1").Range("A1").Value=Environ("allusersprofile")& "\KgmsgJbgP.sct"End Sub

值 Environ("allusersprofile")& "\KgmsgJbgP.sct"设置成名为 Macro1的工作表的 $A$1单元格。

Macro1是一个隐藏的工作表,包含并执行 Excel 4.0 宏代码,在文件 xl\workbook.xml中定义。

Excel 4.0 宏代码使用各种单元格中的公式执行代码,给定起始单元格后会从上到下、从左到右执行代码。本例代码从 Macro1!$A$4单元格开始执行。

宏代码提取的数据是带有一段 VBScript 代码的 HTML 应用程序(.hta 文件)。最后调用 mshta命令执行 KgmsgJbgP.sct文件,即 =EXEC(CONCATENATE("mshta ", CHAR(34), A1, CHAR(34)))

下载 Dridex 的 HTML 程序

VBScript 代码包含十个 URL 组成的数组,这些 URL 与 Dridex 有关。循环从十个 URL 下载 Dridex 到本地文件 %ALLUSERSPROFILE%\\icXBOuZukiASGnpfVowZ.dll。该文件也硬编码在 VBScript 代码中,当 Dridex 下载成功后会执行 wmic.exe来创建一个新的 rundll32.exe进程。

简化后的代码如下所示:

CreateObject("Wscript.Shell").Exec("wmic process call create \"Rundll32.exe %ALLUSERSPROFILE%\\icXBOuZukiASGnpfVowZ.dll ReportDeviceAdd\"")

最后,Rundll32.exe 加载 Dridex 的 icXBOuZukiASGnpfVowZ.dll并调用其名为 ReportDeviceAdd的导出函数来执行其恶意功能。

深入理解 Dridex

Dridex 包含两个导出函数:

DllEntryPoint 是 DLL 的入口函数
FWroeeWqoinnmw 是恶意函数

Dridex 最终的导出函数列表如下所示:

加载 Dridex 的步骤如下所示:

Rundll32.exe 调用 LoadLibrary() 将 DLL 加载到内存中
调用 DLL 的入口点函数 DllEntryPoint 来初始化模块,包含脱壳
调用函数名 ReportDeviceAdd 中的 GetProcAddress,从初始化的模块中获取函数地址
Rundll32.exe 调用函数地址

反分析

Dridex 使用了多种反分析技术:

所有 API 都被隐藏,通过 API 哈希调用
所有常量字符串都是加密的,在使用前解密
某些 API 通过触发异常(0x80000003)在异常处理函数中捕获异常进行调用

加密数据包

Dridex 将从失陷主机窃取的敏感数据加密发送到 C&C 服务器。

红色将数据包分割成多个字段,每个字段的含义如下所示:

C&C 通信

和 Dridex 保持一致,C&C 服务器的 IP 地址和端口都硬编码在数据中。

循环选择一个 IP 地址和端口,与 C&C 服务器成功建立连接就会使用使用它进行通信。

0x18F8C844是第一个数据包的数据包 ID。收集的数据包括安装的软件(软件名称和版本)和失陷主机中定义的所有环境变量。

通过 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall查看安装软件。通过 GetEnvironmentStringsW()获取环境变量。

Dridex 将加密数据包通过 HTTP POST 方法发送到 C&C 服务器,并使用 InternetConnectW()、HttpOpenRequestW()、HttpSendRequestW()、HttpQueryInfoW() 和 InternetReadFile() 来发送和接收数据。

整个过程如下所示:

持久化

得到 C&C 服务器的响应后,将会发送第二个数据包(0x11041F01)。Dridex 通过数据包的前四个字节作为哈希码验证响应数据包。成功接收后发送(0xD3EF7577)通知 C&C 服务器成功接收。

Dridex 会从 %windir%\system32中随机选择一对 Windows EXE 程序和 DLL 文件,通过恶意软件覆盖 DLL

文件。程序启动就会拉取恶意 DLL 执行。

Dridex 创建计划任务实现持久化,每半个小时触发执行。计划任务名为 vzwbtojdsmg

在 Dridex 退出前,会发送 ID 为 0x69BE7CEE的数据包,告知 C&C 服务器已经成功安装。

IOC

103.75.201.2:443
158.223.1.108:6225
165.22.28.242:4664
59C8D87A450F0647BEA930EBA1AA692B75D82DEF1358F1601C4FE9A561B4707E
C8065BD2A1443FF988E9BA95022554F6EE302E9BCB4082C3D9B2B8D74C5A4BE5
6556E4029CF50C9538F4E02D0BCCA5356F28E6870E62838E164020A31B3DF096

参考来源

Fortinet
电子表格
本作品采用《CC 协议》,转载必须注明作者和本文链接
本文介绍了ATT&CK框架当下较为成熟的五大用例。
ChatGPT最近添加的代码解释器让使用AI编写Python代码变得更便捷,因为它实际上已可以编写代码,然后在沙盒环境中运行代码。
excelize 简介Excelize是一个用Go语言编写的库,提供了一组允许您写入和读取XLSX / XLSM / XLTM文件的功能。2007和更高版本生成的电子表格文档。通过高度兼容性支持复杂的组件,并提供了流式API,用于从工作表中生成或读取包含大量数据的数据。
软件漏洞是当今组织的主要威胁。这些威胁的代价是巨大的,无论是在经济上还是在声誉方面。
网安引领时代,弥天点亮未来 0x00序言在日常工作中,如果办公电脑或者个人PC有以下两个方面的异常行为
由于巴西医院工作人员的失误,超过1600万巴西COVID-19患者的个人和健康详细信息在网上意外暴露。该电子表格包含用于多个系统的登录凭据,包括用于管理COVID-19患者数据的E-SUS-VE和Sivep-Gripe应用程序。该档案库包含属于政府代表的数据,包括巴西总统贾尔·博尔索纳罗,七位部长和17位省长。用户与巴西报纸Estadao分享了他的发现,该报纸已通知巴西卫生部和医院。该电子表格已迅速从GitHub中删除,并且系统的密码和访问密钥已更改。
7月底,谷歌网络安全项目Project Zero发布报告,描述2019年网络攻击中的漏洞利用,得出了关于零日漏洞检测的一些有趣结论。Stone还指出,在微软产品中发现的11个零日漏洞里,只有4个针对Windows 10用户,这也可能是检测偏差的一个指征。相反,这一现象恰恰表明,安全行业应该重点检测针对上述操作系统的攻击。这很令人惊讶,因为供应商应该更便于检测零日漏洞。
有攻击者正利用已存在6年的微软Office 远程代码执行 (RCE) 漏洞,以恶意Excel附件的形式在电子邮件中传播间谍软件
丰田金融服务公司(TFS)证实遭遇Medusa(美杜莎)勒索软件组织的攻击,该公司在欧洲和非洲的系统上检测到未经授权的访问。
VSole
网络安全专家