漏洞名称
:微软Type 1字体解析远程代码执行漏洞(ADV200006)
威胁等级
:
高危
影响范围
:Windows 常见所有主流系统
漏洞类型
:远程代码执行
Adobe Type Manager(ATM)是由Adobe Systems创建以用于其PostScript Type 1字体的一系列计算机程序的名称。Windows和MacOS等现代操作系统都内置了对PostScript字体的支持,从而无需使用Adobe的第三方实用程序。
Type 1矢量轮廓字体是PostScript的一种特殊形式(全球印刷和成像标准),其中包含从可缩放的线条和曲线来构建轮廓的说明。
ADV200006,Type 1字体解析远程代码执行漏洞。
该漏洞属于0day漏洞,可能导致远程代码执行,且目前已发现在野攻击。Windows内置的Adobe Type Manager库在解析特制的Adobe Type 1 PostScript格式时处理不恰当,造成了远程代码执行。
攻击者可以通过多种方式利用这些漏洞。例如,攻击者可以诱使用户打开特制文档或在Windows预览窗格中查看它。Windows资源管理器(在Windows 10中称为文件资源管理器)使用Windows预览窗格来预览图片,视频和其他内容。
所有当前受支持的Windows版本都会受到影响,包括Windows 10以及Windows 7,Windows 8.1,Windows RT,Windows Server 2008,Windows Server 2012,Windows Server 2016和Windows Server 2019的版本。微软表示,尽管Windows 7已经终止支持,但它也受到了影响。
该漏洞微软目前尚未发布针对此漏洞的安全更新补丁,但官方给出了缓解方案(
下述三种解决方案,可自选其一
):
①在Windows资源管理器中禁用预览窗格和详细信息窗格
在Windows资源管理器中禁用“预览”和“详细信息”窗格将阻止在Windows资源管理器中自动显示OTF字体。虽然这可以防止在Windows资源管理器中查看恶意文件,但不能阻止经过身份验证的本地用户运行特制程序来利用此漏洞。
要在
Windows Server 2008,Windows 7,Windows Server 2008 R2,Windows Server 2012,Windows Server 2012 R2和Windows 8.1
中禁用这些窗格,请执行以下步骤:
1. 打开Windows资源管理器,单击“ 组织”,然后单击“ 布局”。
2. 清除“ 详细信息”窗格和“ 预览”窗格的菜单选项。
3. 单击“ 整理”,然后单击“ 文件夹和搜索选项”。
5. 在“ 高级设置”下,选中“ 始终显示图标,从不显示缩略图”框。
6. 关闭Windows资源管理器的所有打开的实例,以使更改生效。
对于
Windows Server 2016,Windows 10和Windows Server 2019
,请执行以下步骤:
1. 打开Windows资源管理器,单击“ 查看”选项卡。
2. 清除“ 详细信息”窗格和“ 预览”窗格的菜单选项。
5. 在“ 高级设置”下,选中“ 始终显示图标,从不显示缩略图”框。
6. 关闭Windows资源管理器的所有打开的实例,以使更改生效。
缓解措施的影响:
Windows资源管理器不会自动显示OTF字体。
②禁用WebClient服务
禁用WebClient服务可以通过Web分布式创作和版本控制(WebDAV)客户端服务阻止最可能的远程攻击媒介,从而帮助保护受影响的系统免遭利用此漏洞的尝试。应用此替代方法后,成功利用此漏洞的远程攻击者仍然有可能导致系统运行位于目标用户计算机或局域网(LAN)上的程序,但是在从Windows Server 2003中打开任意程序之前,系统将提示用户进行确认互联网。
要禁用WebClient服务,请执行以下步骤:
1. 单击开始,单击运行(或按键盘上的Windows键和R),键入Services.msc,然后单击确定。
2. 右键单击WebClient服务,然后选择属性。
3. 将启动类型更改为已禁用。如果服务正在运行,请单击“ 停止”。
缓解措施的影响:
禁用WebClient服务时,将不发送Web分布式创作和版本控制(WebDAV)请求。此外,任何明确依赖于WebClient服务的服务都不会启动,并且错误消息将记录在系统日志中。例如,将无法从客户端计算机访问WebDAV共享。
③重命名ATMFD.DLL
请注意
从Windows 10版本1709开始的Windows 10安装中不存在ATMFD.DLL。较新的版本没有此DLL。
对于32位系统:
1. 在管理命令提示符处输入以下命令:
cd "%windir%\system32"
takeown.exe /f atmfd.dll
icacls.exe atmfd.dll /save atmfd.dll.acl
icacls.exe atmfd.dll /grant Administrators:(F)
rename atmfd.dll x-atmfd.dll
2. 重新启动系统。
1. 在管理命令提示符处输入以下命令:
cd "%windir%\system32"
takeown.exe /f atmfd.dll
icacls.exe atmfd.dll /save atmfd.dll.acl
icacls.exe atmfd.dll /grant Administrators:(F)
rename atmfd.dll x-atmfd.dll
cd "%windir%\syswow64"
takeown.exe /f atmfd.dll
icacls.exe atmfd.dll /save atmfd.dll.acl
icacls.exe atmfd.dll /grant Administrators:(F)
rename atmfd.dll x-atmfd.dll
2. 重新启动系统。
Windows 8.1或更低版本操作系统的可选过程(禁用ATMFD):
注意不正确地使用注册表编辑器会导致严重的问题,可能需要您重新安装操作系统。Microsoft无法保证可以解决由于注册表编辑器使用不当而导致的问题。使用注册表编辑器需要您自担风险。有关如何编辑注册表的信息,请在注册表编辑器(Regedit.exe)中查看“更改键和值”帮助主题,或在Regedt32中查看“在注册表中添加和删除信息”和“编辑注册表数据”帮助主题。
方法1(手动编辑系统注册表):
2. 在注册表编辑器中,导航到以下子项(或创建它)并将其DWORD值设置为1:HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows\DisableATMFD, DWORD = 1
1. 创建一个名为ATMFD-disable.reg的文本文件,其中包含以下文本:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows]
"DisableATMFD"=dword:00000001
3. 在注册表编辑器中,单击“ 文件”菜单,然后单击“ 导入”。
4. 浏览并选择您在第一步中创建的ATMFD-disable.reg文件。(请注意,如果未在您期望的位置列出您的文件,请确保未自动为该文件指定.txt文件扩展名,或将对话框的文件扩展名参数更改为All Files)。
5. 单击“ 打开”,然后单击“ 确定”关闭注册表编辑器。
缓解措施的影响:
依赖嵌入式字体技术的应用程序将无法正确显示。禁用ATMFD.DLL可能会导致某些应用程序使用OpenType字体而无法正常运行。Microsoft Windows不会本地发布任何OpenType字体。但是,第三方应用程序可以安装它们,并且它们可能会受到此更改的影响。
①在Windows资源管理器中恢复使用预览窗格和详细信息窗格
要在Windows资源管理器中为Windows Server 2008,Windows 7,Windows Server 2008
R2,Windows Server 2012,Windows Server 2012 R2和Windows
8.1重新启用预览和详细信息窗格,请执行以下操作
:
1. 打开Windows资源管理器,单击“ 组织”,然后单击“ 布局”。
3. 单击“ 整理”,然后单击“ 文件夹和搜索选项”。
5. 在“ 高级设置”下,清除“ 始终显示图标,从不缩略图”框。
6. 关闭Windows资源管理器的所有打开的实例,以使更改生效。
对于Windows Server 2016,Windows 10和Windows Server 2019:
1. 打开Windows资源管理器,单击“ 查看”选项卡。
5. 在“ 高级设置”下,清除“ 始终显示图标,从不缩略图”框。
6. 关闭Windows资源管理器的所有打开的实例,以使更改生效。
②恢复使用WebClient服务
要重新启用WebClient服务,请执行以下步骤:
1. 单击开始,单击运行(或按键盘上的Windows键和R),键入Services.msc, 然后单击确定。
2. 右键单击WebClient服务,然后选择属性。
3. 将启动类型更改为自动。如果该服务未运行,请单击“ 开始”。
1. 在管理命令提示符处输入以下命令:
cd "%windir%\system32"
rename x-atmfd.dll atmfd.dll
icacls.exe atmfd.dll /setowner "NT SERVICE\TrustedInstaller"
icacls.exe . /restore atmfd.dll.acl
2. 重新启动系统。