三种新型的DDE混淆方法
字数 1399 2025-08-20 18:18:17

三种新型DDE混淆方法详解

引言

Microsoft Office产品已成为各种新型攻击手法的滋生地,从简单的数据注入(如DDE和CSV注入)到针对嵌入式遗留公式对象的高级攻击方法。随着反病毒行业对这些技术的检测能力提升,攻击者也在不断进化其混淆和变异技术。本文将详细介绍三种新型的DDE混淆方法。

CSV/DDE代码注入基础

CSV文件特性

  • CSV(逗号分隔值)是一种简单的结构化数据格式
  • Excel能够解析CSV文件并使用分隔符间的数据填充单元格
  • 当文件格式与扩展名不一致时,Excel会回退到CSV模式

DDE机制

  • DDE(动态数据交换)是应用程序间传输数据的方法之一
  • 在Excel中,DDE可用于根据外部应用程序结果更新单元格内容
  • 包含DDE公式的CSV文件被打开时,Excel会尝试执行外部应用程序

DDE工作原理深入

文件解析过程

  1. Excel逐行检查文件内容
  2. 检查行是否以命令字符开头(:@=+-
  3. 根据前缀不同有两种处理方式:
    • 前缀为=+-:其余部分视为表达式
    • 前缀为@:搜索内部函数并将参数解释为表达式

表达式结构

  • 基本格式:command | 'arguments'!cell
  • 表达式可以是名称、数字、字符串或文件名
  • 表达式缓冲区大小为256字节(前缀占1字节,表达式最多255字节)
  • 外部应用程序文件名最大长度为8字符(沿袭MS-DOS限制)

表达式特性

  • 支持递归定义
  • 可使用常见算术和逻辑运算符(+-&等)链接
  • 可使用括号表示函数参数
  • 可使用冒号作为单元格分隔符
  • Null字节会被完全忽略
  • 空格有时会被忽略(如命令前的空格)
  • 单元格引用不必有效

三种新型混淆方法

1. 前缀型混淆

原理:利用表达式链接特性,在实际命令前注入任意数量子表达式

特点

  • 每个子表达式最多255字符
  • 可链接多个命令
  • 可在实际命令前添加大量无关表达式

示例

= AAAA+BBBB-CCCC & "Hello" /12345 & cmd | '/c calc.exe' !A
= cmd | '/c calc.exe' !A*cmd | '/c calc.exe' !A+thespanishinquisition
( cmd | '/c calc.exe' !A
= cmd | '/c calc.exe' !A

2. 后缀型混淆

原理:利用8字符文件名限制,在合法命令后添加无关字符

特点

  • 适用于文件名恰好8字符的外部程序(如regsvr32certutilrundll32
  • 可在命令名后添加任意字符(只要不超过255字节限制)

示例

= rundll32 | 'URL.dll,OpenURL calc.exe' !A
= rundll321234567890abcdefghijklmnopqrstuvwxyz | 'URL.dll,OpenURL calc.exe' !A

3. 中缀型混淆

原理:在命令各部分间插入空字节或空格

特点

  • 可在命令前或参数间插入混淆内容
  • 不能嵌入到命令名称中(会分隔命令名)
  • 命令名不区分大小写,可利用大小写变化混淆

实现方式

  • 插入空字节(完全被忽略)
  • 插入空格(在某些位置被忽略)
  • 混合大小写命令名

混淆技术组合使用

上述三种混淆方法可以单独使用,也可以组合使用以增强规避效果。在实际攻击中,攻击者通常会采用多种混淆技术的组合。

检测方法

为检测简单的混淆技术,可以使用YARA规则进行识别。相关规则可从原文提供的链接下载。

防御建议

  1. 禁用Office产品的DDE功能
  2. 保持Office和防病毒软件更新
  3. 对可疑文件进行沙箱分析
  4. 教育用户不要打开来源不明的Office文档
  5. 实施应用程序白名单策略

总结

DDE攻击技术仍在不断进化,本文介绍的三种混淆方法(前缀型、后缀型和中缀型)展示了攻击者如何利用Office功能的合法特性来规避检测。随着时间推移,预计会出现更多创新的混淆和攻击技术。安全团队需要持续关注这类攻击的发展,并采取多层次的防御措施。

三种新型DDE混淆方法详解 引言 Microsoft Office产品已成为各种新型攻击手法的滋生地,从简单的数据注入(如DDE和CSV注入)到针对嵌入式遗留公式对象的高级攻击方法。随着反病毒行业对这些技术的检测能力提升,攻击者也在不断进化其混淆和变异技术。本文将详细介绍三种新型的DDE混淆方法。 CSV/DDE代码注入基础 CSV文件特性 CSV(逗号分隔值)是一种简单的结构化数据格式 Excel能够解析CSV文件并使用分隔符间的数据填充单元格 当文件格式与扩展名不一致时,Excel会回退到CSV模式 DDE机制 DDE(动态数据交换)是应用程序间传输数据的方法之一 在Excel中,DDE可用于根据外部应用程序结果更新单元格内容 包含DDE公式的CSV文件被打开时,Excel会尝试执行外部应用程序 DDE工作原理深入 文件解析过程 Excel逐行检查文件内容 检查行是否以命令字符开头( : 、 @ 、 = 、 + 、 - ) 根据前缀不同有两种处理方式: 前缀为 = 、 + 或 - :其余部分视为表达式 前缀为 @ :搜索内部函数并将参数解释为表达式 表达式结构 基本格式: command | 'arguments'!cell 表达式可以是名称、数字、字符串或文件名 表达式缓冲区大小为256字节(前缀占1字节,表达式最多255字节) 外部应用程序文件名最大长度为8字符(沿袭MS-DOS限制) 表达式特性 支持递归定义 可使用常见算术和逻辑运算符( + 、 - 、 & 等)链接 可使用括号表示函数参数 可使用冒号作为单元格分隔符 Null字节会被完全忽略 空格有时会被忽略(如命令前的空格) 单元格引用不必有效 三种新型混淆方法 1. 前缀型混淆 原理 :利用表达式链接特性,在实际命令前注入任意数量子表达式 特点 : 每个子表达式最多255字符 可链接多个命令 可在实际命令前添加大量无关表达式 示例 : 2. 后缀型混淆 原理 :利用8字符文件名限制,在合法命令后添加无关字符 特点 : 适用于文件名恰好8字符的外部程序(如 regsvr32 、 certutil 、 rundll32 ) 可在命令名后添加任意字符(只要不超过255字节限制) 示例 : 3. 中缀型混淆 原理 :在命令各部分间插入空字节或空格 特点 : 可在命令前或参数间插入混淆内容 不能嵌入到命令名称中(会分隔命令名) 命令名不区分大小写,可利用大小写变化混淆 实现方式 : 插入空字节(完全被忽略) 插入空格(在某些位置被忽略) 混合大小写命令名 混淆技术组合使用 上述三种混淆方法可以单独使用,也可以组合使用以增强规避效果。在实际攻击中,攻击者通常会采用多种混淆技术的组合。 检测方法 为检测简单的混淆技术,可以使用YARA规则进行识别。相关规则可从原文提供的链接下载。 防御建议 禁用Office产品的DDE功能 保持Office和防病毒软件更新 对可疑文件进行沙箱分析 教育用户不要打开来源不明的Office文档 实施应用程序白名单策略 总结 DDE攻击技术仍在不断进化,本文介绍的三种混淆方法(前缀型、后缀型和中缀型)展示了攻击者如何利用Office功能的合法特性来规避检测。随着时间推移,预计会出现更多创新的混淆和攻击技术。安全团队需要持续关注这类攻击的发展,并采取多层次的防御措施。