admin 管理员组

文章数量: 887021

Windows系统安装补丁问题解决方法

  • 获取补丁信息
    • 通过补丁编号下载补丁
    • 通过CVE编号获取补丁信息
    • 通过MS编号获取补丁信息
  • 部分问题及解决方法
    • 报错“此更新不适用于您的计算机”
      • 确定补丁是否正确
      • 前置补丁缺失
      • 使用dism命令安装
    • 报错“必须更新windows模块安装程序才能安装此软件包”
    • 安装程序遇到错误:0x800b0109
  • 无法安装补丁但需要进行加固的情况
  • 部分漏洞对应补丁

在日常的运维、漏扫、安服中,经常会遇到Windows操作系统的高危漏洞,修复这些漏洞通常需要安装特定的补丁。在笔者的工作经验中,Windows Server 2008 R2和Windows Server 2012 R2这两个操作系统遇到的高危漏洞占了大头,并且微软官方已经停止了对这两个操作系统的支持,意味着即使当前操作系统能够访问互联网并开启了自动获取更新,微软官方也已经停止了补丁更新推送,必须手动下载并安装补丁。

在修复此类漏洞,安装补丁时存在以下痛点:
一、漏洞与补丁的对应信息。 查找漏洞对应的补丁较为繁琐,存在修复某个漏洞需要安装多个补丁的情况,也存在安装一个补丁就可以修复多个漏洞的情况,但理清相关的信息较为繁琐。
二、补丁的依赖。 找到了对的补丁,但存在该补丁的安装依赖于其他补丁的情况,对前置补丁的依赖信息难易查找,难以解决。
三、报错。 在安装补丁时遇到各种报错,没有解决思路。例如补丁的版本正确,前置补丁也已安装,但安装时仍然报错。

参考网上各位前辈的文章以及自己的工作经验,对安装补丁遇到的一些问题及解决方法进行了整理。不足之处欢迎纠正补充。

获取补丁信息

主要通过三个微软官方的网站获取修复漏洞所需的补丁信息,三个网站互相组合提高效率:
https://catalog.update.microsoft/Home.aspx
https://learn.microsoft/zh-cn/security-updates/securitybulletins/securitybulletins
https://msrc.microsoft/update-guide/vulnerability

通过补丁编号下载补丁

https://catalog.update.microsoft/Home.aspx
该网站在搜索框输入补丁编号可以下载相关漏洞影响的操作系统对应的补丁


以补丁KB3149090为例,可以直接查询到对应win7、Windows Server 2008 R2、Windows Server 2012 R2等操作系统对应的补丁以及下载链接


点击右侧的 Download 即可弹出补丁下载窗口,点击蓝色链接,浏览器便会下载该补丁


点击左侧的链接,即可弹出该操作系统补丁的具体信息

点击Package Details 就能看到补丁的替换信息(既后续补丁可以替换掉该补丁)、依赖的前置补丁信息
下图为修复MS 17-010漏洞的关键补丁KB4012213的前置补丁信息

根据当前系统情况下载需要的补丁即可

通过CVE编号获取补丁信息

https://msrc.microsoft/update-guide/vulnerability

以CVE-2020-1350为例,将漏洞编号补在上面的链接后面,往下翻便可查到不同系统对应的安全补丁(下载Security Only对应的补丁即可,Monthly Rollup 为月度更新,可按需下载,本文仅讨论安全更新补丁)


点击数字编号4565539(这里其实就是补丁编号),可跳转到该补丁的介绍信息页面


点击Security Only 可跳转到该补丁下载页面

通过MS编号获取补丁信息

https://learn.microsoft/zh-cn/security-updates/securitybulletins/securitybulletins


CVE是通用漏洞披露(Common Vulnerabilities and Exposures)的英文缩写,表示的是已被公开披露的各种计算安全缺陷
MS是微软对其操作系统漏洞的命名方式,MS 17-010代表的是微软在2017年公布的第10个漏洞。一个MS编号可能对应多个CVE编号,例如MS 17-010对应的CVE包括CVE-2017-0148、CVE-2017-0147、CVE-2017-0146、CVE-2017-0145、CVE-2017-0144、CVE-2017-0143

以MS 17-010为例查询补丁信息
可以查询到该漏洞对应的多个CVE编号,该漏洞修复补丁替换的旧的修复补丁


Windows Server 2008 R2 SP1操作系统修复该漏洞对应的补丁,点击该链接可跳转到KB4012212补丁下载页面

Windows Server 2012 R2 SP1操作系统修复该漏洞对应的补丁,点击该链接可跳转到KB4012213补丁下载页面

部分问题及解决方法

报错“此更新不适用于您的计算机”

在安装补丁时遇到系统报错“此更新不适用于您的计算机”

解决方法

确定补丁是否正确

检查当前操作系统版本信息,32位还是64位系统,SP1版本还是 Itanium或server core系统,检查下载的补丁是否与操作系统匹配

前置补丁缺失

部分补丁依赖一些前置补丁,前置补丁安装并重启后才能安装针对特定漏洞的关键补丁。例如。Windows Server 2012 R2系统必须安装补丁KB2919442、KB2919355才能安装其他补丁。
但是不同补丁依赖的前置补丁信息较为繁杂,这一步是最繁琐的,目前没有很好的、高效的解决方法。笔者整理了一小部分补丁依赖的前置补丁,可关注笔者后续发布的文章作参考。
这里提供一些笔者的经验:可以借助AI聊天工具查询补丁的前置补丁信息,结合微软官方的补丁信息进行测试。
建议在实施加固前,记录需要加固的服务器中的已安装补丁信息,进行针对性测试。

工具:笔者接触过火绒卡巴斯基这两款杀毒/终端安全管理工具,这两个工具在补丁管理这一块是做得比较好的,都能够下载安装关键补丁并解决前置补丁依赖问题(前提是主机可以访问互联网,无法访问互联网的主机只能手工进行测试了,这两款工具都无法进行离线补丁安装)。

使用dism命令安装

一些补丁版本正确,没有前置补丁依赖,但仍然无法安装的问题,直接运行msu程序会报错“此更新不适用于您的计算机”。可以尝试使用dism命令进行安装,步骤如下:
1、使用expend命令解压补丁包

expand -F:* 解压前msu文件路径及msu补丁文件名 解压后补丁包路径

例如:
expand -F:* C\KB2719033.msu C\update\


执行以上命令后得到4个文件,其中cab后缀的文件就是后面要安装的补丁程序

也可以使用压缩软件解压msu程序

2、使用dism命令安装cab补丁程序
命令行切换到解压后的cab程序所在路径,使用以下命令安装

dism /online /add-package /packagepath"解压后的cab程序所在路径及cab文件名"

例如:
dism /online /add-package /packagepath"C\update\Windows6.1-KB2719003-x64.cab"

报错“必须更新windows模块安装程序才能安装此软件包”

Windows Server 2008 R2系统在安装补丁时遇到报错“必须更新windows模块安装程序才能安装此软件包”

解决方法
安装服务堆栈更新(Service Stack Update)KB5017397、KB4474419、KB4490628

注意:补丁KB5017397、KB4490628为必须安装的前置补丁,安装后无法卸载,安装后必须重启系统方可安装其他补丁。

安装程序遇到错误:0x800b0109

Windows Server 2008 R2系统在安装补丁时遇到报错“安装程序遇到错误:0x800b0109”

解决方法
更新本地根证书或安装以下补丁:
KB2509553、KB2621440、KB2667402、KB3042553、KB3133977、KB4499175、KB976902、KB4022719

无法安装补丁但需要进行加固的情况

有时我们出于各种原因无法安装补丁(例如测试未完成,但急需进行加固;担心补丁安装后影响主机中的其他服务;补丁安装失败的情况),此时可以采取其他方案进行安全加固:
设置IP安全策略(在本地安全策略管理工具中新建IP安全策略)、在防火墙中设置出站入站规则,将漏洞影响的服务使用的端口进行限制,或在本地网络的硬件防火墙中添加拒绝和放行组合策略,仅允许可信主机访问目标主机的相关服务和端口(比如,仅IT运维部门可以访问其他主机的DRP服务/3389端口)。

部分漏洞对应补丁

花时间整理了一些漏洞修复对应的补丁,目前仅包含Windows Server 2008 R2 SP1、Windows Server 2012 R2、Windows Server 2016、Win 7 操作系统。
点击此链接跳转
https://blog.csdn/qq_41060781/article/details/134613672

本文标签: 解决方法 系统安装 补丁 Windows