Microsoft DirectX QuickTime媒体文件解析代码执行漏洞(MS09-028)

2009-07-16T00:00:00
ID SSV:11819
Type seebug
Reporter Root
Modified 2009-07-16T00:00:00

Description

BUGTRAQ ID: 35139 CVE(CAN) ID: CVE-2009-1537

Microsoft DirectX是Windows操作系统中的一项功能,流媒体在玩游戏或观看视频时通过这个功能支持图形和声音。

DirectX的DirectShow组件(quartz.dll)在解析畸形的QuickTime媒体文件时存在错误,用户受骗打开了恶意的媒体文件就会导致执行任意代码。由于用户可能在浏览器中安装媒体播放插件,因此访问恶意网页就足以导致播放QuickTime文件,触发Quartz.dll中的漏洞。

Microsoft DirectX 9.0 Microsoft DirectX 8.1 Microsoft DirectX 7.0 临时解决方法:

  • 在quartz.dll中禁用QuickTime内容。

使用交互方式

32位Windows系统:

  1. 点击“开始”、“运行”,在“打开”框中键入“Regedit”然后点击“确定”。
  2. 找到以下子键:HKEY_CLASSES_ROOT\CLSID{D51BD5A0-7548-11CF-A520-0080C77EF58A}。
  3. 在“文件”菜单中点击“导出”。
  4. 在“导出注册表文件”对话框中,输入“QuickTime_Parser_Backup.reg”并点击“保存”。
  5. 按删除键删除注册表项。当“确认项删除”对话框提示删除注册表项时,点击“是”。

64位Windows系统:

  1. 点击“开始”、“运行”,在“打开”框中键入“Regedit”然后点击“确定”。
  2. 找到以下子键:HKEY_CLASSES_ROOT\CLSID{D51BD5A0-7548-11CF-A520-0080C77EF58A}
  3. 在“文件”菜单中点击“导出”。
  4. 在“导出注册表文件”对话框中,输入“QuickTime_Parser_Backup1.reg”并点击“保存”。
  5. 按删除键删除注册表项。当“确认项删除”对话框提示删除注册表项时,点击“是”。
  6. 找到以下子键:HKEY_CLASSES_ROOT\Wow6432Node\CLSID{D51BD5A0-7548-11CF-A520-0080C77EF58A}。
  7. 在“文件”菜单中点击“导出”。 8.在“导出注册表文件”对话框中,输入“QuickTime_Parser_Backup2.reg”并点击“保存”。
  8. 按删除键删除注册表项。当“确认项删除”对话框提示删除注册表项时,点击“是”。

使用管理的部署脚本

  1. 使用包含有以下命令的管理部署脚本创建注册表项的备份:

32位Windows系统:

Regedit.exe /e QuickTime_Decoder_Backup.reg HKEY_CLASSES_ROOT\CLSID{D51BD5A0-7548-11CF-A520-0080C77EF58A}

64位Windows系统:

Regedit.exe /e QuickTime_Decoder_Backup1.reg HKEY_CLASSES_ROOT\CLSID{D51BD5A0-7548-11CF-A520-0080C77EF58A} Regedit.exe /e QuickTime_Decoder_Backup2.reg HKEY_CLASSES_ROOT\Wow6432Node\CLSID{D51BD5A0-7548-11CF-A520-0080C77EF58A}

  1. 将以下内容保存为.REG文件,如Disable_QuickTime_Parser.reg:

32位Windows系统:

Windows Registry Editor Version 5.00 [-HKEY_CLASSES_ROOT\CLSID{D51BD5A0-7548-11CF-A520-0080C77EF58A}]

64位Windows系统:

Windows Registry Editor Version 5.00 [-HKEY_CLASSES_ROOT\CLSID{D51BD5A0-7548-11CF-A520-0080C77EF58A}] [-HKEY_CLASSES_ROOT\Wow6432Node\CLSID{D51BD5A0-7548-11CF-A520-0080C77EF58A}]

  1. 在提升的命令提示符中通过以下命令在目标机器上运行以上注册表脚本: Regedit.exe /s Disable_QuickTime_Parser.reg

  2. 修改quartz.dll的访问控制列表。

在Windows XP和Windows Server 2003上,从命令提示符运行以下命令(需要管理权限):

32位Windows系统:

Echo y| cacls %WINDIR%\SYSTEM32\quartz.DLL /E /P everyone:N

64位Windows系统:

Echo y| cacls %WINDIR%\SYSTEM32\quartz.DLL /E /P everyone:N Echo y| cacls %WINDIR%\SYSWOW64\quartz.DLL /E /P everyone:N

  • 注销quartz.dll,在提升的命令提示符运行以下命令:

32位Windows系统:

Regsvr32.exe –u %WINDIR%\system32\quartz.dll

64位Windows系统:

Regsvr32.exe –u %WINDIR%\system32\quartz.dll Regsvr32.exe –u %WINDIR%\syswow64\quartz.dll

  • 对于非多媒体文件夹类型,可通过使用Windows传统风格的文件夹来缓解Windows shell攻击:

  • 点击“开始”、“控制面板”、“外观和主题”,然后点击“文件夹选项”;或打开任意文件夹,在“工具”菜单中点击“文件夹选项”。

  • 在“常规”标签页中“任务”下选择“使用Windows传统风格的文件夹”。

厂商补丁:

Microsoft

Microsoft已经为此发布了一个安全公告(MS09-028)以及相应补丁: MS09-028:Vulnerabilities in Microsoft DirectShow Could Allow Remote Code Execution (971633) 链接:http://www.microsoft.com/technet/security/bulletin/MS09-028.mspx?pf=true