您现在的位置是:烟消火灭网 > 知识

smb远程代码执行漏洞修复

烟消火灭网2026-10-17 07:47:52【知识】8人已围观

简介```html SMB远程代码执行漏洞修复 body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto

```html SMB远程代码执行漏洞修复

SMB远程代码执行漏洞修复

去年秋天,我帮一家小公司处理过一台被勒索的码执Windows Server 2016。攻击者没用什么高级钓鱼,行漏就是洞修对着445端口打了一个SMB漏洞,两小时内加密了所有共享盘。程代事后查日志,码执补丁其实半年前就发布了,行漏没人装。洞修SMB这个协议从Windows 2000时代就问题不断,程代但真正让它出圈的码执,是行漏2017年的MS17-010(永恒之蓝)。那之后,洞修每过一段时间就有新的程代SMB RCE冒出来,比如CVE-2020-0796(SMBGhost)和CVE-2022-24500。码执修复这件事,行漏本质上不是技术有多难,而是你愿不愿意把该做的动作做到位。

先明确一点:SMB远程代码执行漏洞的修复,核心就三件事——打补丁、关端口、开监控。听起来像废话,但多数中招的机器,这三件事至少漏了两件。我见过一个开发团队,内网文件服务器跑着SMBv1,理由是“老代码依赖”。结果一个EternalBlue变种进来,整个部门共享盘被锁。补丁不是没推,而是那台机器不在WSUS分组里,IT以为它早就退役了。

最容易被忽略的:很多人只盯着“高危”补丁,但SMB漏洞的补丁往往被标记为“重要”而非“紧急”,于是被排到队列后面。攻击者最喜欢这种时间差。

先看补丁状态,别信“应该装了”

打开PowerShell,跑一条命令比翻控制面板快得多:

Get-HotFix | Where-Object {  $_.HotFixID -match "KB[0-9]+" } | Sort-Object InstalledOn -Descending | Select-Object -First 20

如果补丁列表里没有对应漏洞的KB号,别犹豫,直接去微软更新目录下载手动装。WSUS或Intune推不动的机器,手动装是唯一办法。我习惯把MS17-010对应的KB4012598、KB4012212这些记在便签上,省得每次查。

关掉SMBv1,但别只关它

SMBv1是重灾区,但SMBv2和v3也有漏洞。CVE-2020-0796就是SMBv3的压缩机制出的问题。正确的做法是:

# 检查SMBv1状态 Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol # 禁用SMBv1(需要重启) Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force # 禁用SMBv3压缩(针对SMBGhost) Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" -Name "DisableCompression" -Value 1 -Type DWORD

注意,DisableCompression这个注册表项在打全补丁后其实不需要,但如果你暂时没法重启,它是临时缓解手段。我一般直接打补丁,注册表只作为过渡。

防火墙规则比“关端口”更实际

很多人说“关闭445端口”,但内网文件共享全靠它,全关不现实。我的做法是:在域控或核心交换机上做ACL,只允许特定子网访问445,其余全部拒绝。Windows防火墙里加一条入站规则,限制远程地址范围。别用“阻止所有”那种一刀切,否则业务部门会找你麻烦。具体命令:

New-NetFirewallRule -DisplayName "Restrict SMB Inbound" -Direction Inbound -Protocol TCP -LocalPort 445 -RemoteAddress 10.0.1.0/24 -Action Allow New-NetFirewallRule -DisplayName "Block SMB Others" -Direction Inbound -Protocol TCP -LocalPort 445 -Action Block

顺序很重要,Allow规则要在Block之前生效。我见过有人把Block放前面,结果整个内网SMB全断,排查了一下午。

监控:别等加密了才看日志

SMB漏洞利用通常伴随异常登录和文件操作。打开Microsoft-Windows-SmbServer/Security和Microsoft-Windows-SmbClient/Security日志,关注事件ID 551(SMB会话建立失败)和3000(SMBv1访问)。更直接的是用Sysmon,监控lsass.exe对srv.sys的异常调用。我自己的脚本每天跑一次,把新出现的SMB连接IP跟白名单对比,有陌生IP就发邮件。


最后说个真事。上个月一个客户问我:“打了补丁是不是就绝对安全?”我说不是。补丁修复的是已知漏洞,但SMB协议本身的设计缺陷——比如NTLM中继——补丁管不了。你得同时开SMB签名、禁用NTLMv1、限制匿名访问。这些配置比补丁更影响性能,但安全就是这样,没有一劳永逸。

修复SMB RCE漏洞,别把它当成一个“任务”去勾选。把它当成日常运维的一部分:每月检查补丁、每季度审计SMB配置、每周看一次日志。攻击者不会等你准备好才来。那个被勒索的服务器,如果早两周打补丁,后面的事都不会发生。

```

很赞哦!(86)