前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >研究传播 Dridex 新变种的 Excel 文档

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

作者头像
FB客服
发布2021-10-11 15:08:43
1.3K0
发布2021-10-11 15:08:43
举报
文章被收录于专栏:FreeBufFreeBuf

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 宏代码,在文件 xl\workbook.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_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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Dridex 钓鱼邮件
  • 宏代码解析
  • 下载 Dridex 的 HTML 程序
  • 深入理解 Dridex
  • 反分析
  • 加密数据包
  • C&C 通信
  • 持久化
  • IOC
  • 参考来源
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档