微软产品里的‘小惊喜’:两个有趣漏洞浅析
字数 1802 2025-08-18 11:36:57

微软产品漏洞分析:CVE-2023-36563与CVE-2023-24955技术解析

漏洞概述

微软近期发布的安全补丁中,两个漏洞特别值得关注:

  1. CVE-2023-36563 - Microsoft WordPad信息泄露漏洞
  2. CVE-2023-24955 - Microsoft SharePoint Server远程代码执行漏洞

本教学文档将重点分析CVE-2023-36563的技术细节。

漏洞分析技术方法

补丁差异分析(BinDiff)

  • 工具组合:IDA Pro + BinDiff
  • 分析目标:比较补丁前后的二进制文件差异
  • 样本信息
    • 补丁前MD5: bd05d1b9fba2f5f**b6fbb59d3a78d84
    • 补丁后MD5: e46d2a1e4836b**d00eeccc0e1db0f52

关键函数发现

  1. LoadImageResource函数

    • 与图像解析相关
    • 在预览图像时触发断点
  2. 新增函数

    • QueryConvertOLELinkCallback
    • 通过ChatGPT 4.0辅助分析其功能

OLE技术背景

OLE基础

  • 全称:Object Linking and Embedding
  • 功能:允许将对象和文件嵌入到Windows上的其他文件中
  • 示例:将mspaint创建的画图对象嵌入到RTF文件中

OLE相关漏洞历史

  • 近年来微软已修复多个OLE高风险漏洞
  • 著名案例:CVE-2022-30190
    • 通过OLE组件攻击
    • 创建包含恶意OLE对象链接的MS Office文档
    • 即使受保护模式下且宏禁用也能执行代码
    • 利用MSDT(Microsoft Windows支持诊断工具)执行命令

补丁分析细节

ole32.dll的修改

补丁后的ole32.dll新增了五个函数:

  1. CheckOLELinkConversionRegistrySetting
  2. FindStringInMultiString
  3. IsAppExcludedFromOLELinkConversionRegistrySetting
  4. OleConvertOLESTREAMToIStorage2
  5. OleConvertOLESTREAMToIStorageEx2

关键函数分析

  • OleConvertOLESTREAMToIStorage2OleConvertOLESTREAMToIStorageEx2
    • 新增了参数有效性检查
    • 防止无效或恶意的内存访问
  • 漏洞触发点:LinkedObject

历史漏洞对比(CVE-2017-11882)

  1. winword.exe加载RTF文件并解析
  2. 调用ole32!OleConvertOLESTREAMToIStorage
  3. 内部调用ole32!wConvertOLESTREAMTOIStorage
  4. 将OLE 1对象转换为OLE 2结构化存储对象
  5. ole32!GenericObjectToIStorage通过剪切板传送给EquEdt32.exe处理

漏洞利用构造

利用原理

构造恶意OLE对象,触发LinkedObject中的不安全转换机制,导致Windows强制进行NTLM身份验证。

NTLM相关背景

  • 微软计划在Insider版本中逐步用Kerberos替代NTLM
  • Kerberos优势:
    • 更强的安全保障
    • 避免NTLM易受中间人攻击和重放攻击的弱点

具体构造步骤

  1. 使用oletools解析RTF文件
  2. 观察FormatID值为0x2(表示LinkedObject类型)
  3. 设置TopicName字段指向链接文件的UNC路径(SMB目标)
  4. 删除NativeDataSizeNativeData的chunk(LinkedObject结构不包含这些)

利用限制

  • 会触发MotW(Mark of the Web)警告框
  • 但NTLM身份验证已在显示警告前发起

防御建议

  1. 补丁管理:及时安装微软安全更新
  2. 安全意识
    • 对不明文件保持警惕
    • 注意各种文档处理软件的警告提示
  3. 技术措施
    • 保持杀毒软件更新
    • 实施最小权限原则
  4. 架构调整
    • 考虑迁移到Kerberos认证
    • 监控和限制SMB协议的使用

总结

  • OLE技术历史悠久但风险持续存在
  • 文档处理软件是常见攻击媒介
  • 补丁分析是理解漏洞的有效方法
  • 用户和管理员需同时关注技术防御和意识提升
微软产品漏洞分析:CVE-2023-36563与CVE-2023-24955技术解析 漏洞概述 微软近期发布的安全补丁中,两个漏洞特别值得关注: CVE-2023-36563 - Microsoft WordPad信息泄露漏洞 CVE-2023-24955 - Microsoft SharePoint Server远程代码执行漏洞 本教学文档将重点分析CVE-2023-36563的技术细节。 漏洞分析技术方法 补丁差异分析(BinDiff) 工具组合 :IDA Pro + BinDiff 分析目标 :比较补丁前后的二进制文件差异 样本信息 : 补丁前MD5: bd05d1b9fba2f5f** b6fbb59d3a78d84 补丁后MD5: e46d2a1e4836b** d00eeccc0e1db0f52 关键函数发现 LoadImageResource函数 : 与图像解析相关 在预览图像时触发断点 新增函数 : QueryConvertOLELinkCallback 通过ChatGPT 4.0辅助分析其功能 OLE技术背景 OLE基础 全称 :Object Linking and Embedding 功能 :允许将对象和文件嵌入到Windows上的其他文件中 示例 :将mspaint创建的画图对象嵌入到RTF文件中 OLE相关漏洞历史 近年来微软已修复多个OLE高风险漏洞 著名案例 :CVE-2022-30190 通过OLE组件攻击 创建包含恶意OLE对象链接的MS Office文档 即使受保护模式下且宏禁用也能执行代码 利用MSDT(Microsoft Windows支持诊断工具)执行命令 补丁分析细节 ole32.dll的修改 补丁后的ole32.dll新增了五个函数: CheckOLELinkConversionRegistrySetting FindStringInMultiString IsAppExcludedFromOLELinkConversionRegistrySetting OleConvertOLESTREAMToIStorage2 OleConvertOLESTREAMToIStorageEx2 关键函数分析 OleConvertOLESTREAMToIStorage2 和 OleConvertOLESTREAMToIStorageEx2 : 新增了参数有效性检查 防止无效或恶意的内存访问 漏洞触发点: LinkedObject 历史漏洞对比(CVE-2017-11882) winword.exe加载RTF文件并解析 调用 ole32!OleConvertOLESTREAMToIStorage 内部调用 ole32!wConvertOLESTREAMTOIStorage 将OLE 1对象转换为OLE 2结构化存储对象 ole32!GenericObjectToIStorage 通过剪切板传送给EquEdt32.exe处理 漏洞利用构造 利用原理 构造恶意OLE对象,触发 LinkedObject 中的不安全转换机制,导致Windows强制进行NTLM身份验证。 NTLM相关背景 微软计划在Insider版本中逐步用Kerberos替代NTLM Kerberos优势: 更强的安全保障 避免NTLM易受中间人攻击和重放攻击的弱点 具体构造步骤 使用oletools解析RTF文件 观察 FormatID 值为0x2(表示 LinkedObject 类型) 设置 TopicName 字段指向链接文件的UNC路径(SMB目标) 删除 NativeDataSize 和 NativeData 的chunk( LinkedObject 结构不包含这些) 利用限制 会触发MotW(Mark of the Web)警告框 但NTLM身份验证已在显示警告前发起 防御建议 补丁管理 :及时安装微软安全更新 安全意识 : 对不明文件保持警惕 注意各种文档处理软件的警告提示 技术措施 : 保持杀毒软件更新 实施最小权限原则 架构调整 : 考虑迁移到Kerberos认证 监控和限制SMB协议的使用 总结 OLE技术历史悠久但风险持续存在 文档处理软件是常见攻击媒介 补丁分析是理解漏洞的有效方法 用户和管理员需同时关注技术防御和意识提升