Microsoft DirectX DirectShow指针验证远程代码执行漏洞(MS09-028)

Microsoft DirectX是Windows操作系统中的一项功能,流媒体在玩游戏或观看视频时通过这个功能支持图形和声音。
 
DirectX的DirectShow组件(quartz.dll)在更新指针时验证某些值的方式存在远程代码执行漏洞。如果用户打开了特制的 QuickTime文件,这个漏洞可能允许代码执行。如果用户以管理权限登录,成功利用此漏洞的攻击者可以完全控制受影响的系统。攻击者可随后安装程序;查看、更改或删除数据;或者创建拥有完全用户权限的新帐户。系统上帐号配置为较少权限的用户比以管理权限操作的用户所受影响要小。
 
 
 
解决方法
临时解决方法:
 
* 在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并点击“保存”。这会在默认的“我的文档”文件夹中创建该注册表项的备份。
    9. 按下“删除”键删除注册表项。如果“确认删除项”对话框提示是否要删除注册表项,点击“是”。
        
    使用管理的部署脚本
    
    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}
 
    2. 用.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}]
 
    3. 在目标机器上从提升的命令提示符通过以下命令运行上述注册表脚本:
    Regedit.exe /s Disable_QuickTime_Parser.reg
 
* 修改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。
    
    如果要注销这个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攻击载体。
    
    1. 点击“开始”、“控制面板”、“外观和主题”,然后点击“文件夹选项”;或者,打开任意文件夹,如“我的文档”,然后在“工具”菜单中点击“文件夹选项”。
    2. 在“常规”标签的“任务”下选择“使用Windows传统风格的文件夹”。
https://docs.microsoft.com/en-us/security-updates/securitybulletins/2009/ms09-028
posted @ 2019-05-20 11:05  mrhonest  阅读(269)  评论(0)    收藏  举报