freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

传播 Dridex 新变种的 Excel 文档
Avenger 2021-09-11 23:14:13 208756

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 服务器。

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

image.png-48.7kB

C&C 通信

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

image.png-25.7kB

循环选择一个 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

# 钓鱼邮件 # Dridex # 反分析
本文为 Avenger 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
Avenger LV.7
这家伙太懒了,还未填写个人描述!
  • 532 文章数
  • 178 关注者
利用 CVE-2024-21412 进行窃密的攻击激增
2024-07-28
滥用云服务进行传播的恶意软件越来越多
2024-07-03
详解 RisePro 信息窃密木马
2024-07-03
文章目录