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

2021-10-11 15:08:43 浏览数 (1)

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 宏代码。

代码语言:javascript复制
Sub Workbook_Open()ActiveWorkbook.Sheets("Macro1").Range("A1").Value=Environ("allusersprofile")& "KgmsgJbgP.sct"End Sub

值 Environ("allusersprofile")& "KgmsgJbgP.sct"设置成名为 Macro1的工作表的

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

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

宏代码提取的数据是带有一段 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进程。

简化后的代码如下所示:

代码语言:javascript复制
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_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstall查看安装软件。通过 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

0 人点赞