冗余服务就是多余攻击面
Windows 上有一些服务在服务器角色下属于冗余或本身高危:Remote Registry 允许远程读写注册表,Print Spooler 历史上多次出现高危漏洞,SSDP 与 UPnP 以及 Fax 一般也用不到。按需禁用这些服务可以直接减少攻击面,代价是必须先确认业务是否依赖它们。
基本信息
| 适用平台 | Windows Server 与 Windows 10 / 11 |
|---|---|
| 风险等级 | 中 |
| 基线要求 | 冗余服务已禁用 |
| 常见对象 | RemoteRegistry、Spooler、SSDPSRV、upnphost、Fax、WerSvc |
| 核查命令 | Get-Service 与 sc.exe query |
典型使用场景
- 服务器角色梳理时的服务最小化
- 收缩暴露面,找出对网络开放的冗余服务
- 域控等关键主机的收紧加固
- 排查历史上出过高危漏洞的组件是否还在
- 把新服务器模板的基线固化下来
- 应急响应时评估可用攻击面
批量核查与处置
批量核查与处置
Get-Service -Name RemoteRegistry, Spooler, SSDPSRV, upnphost, Fax, WerSvc, Telnet -ErrorAction SilentlyContinue | Select-Object Name, Status, StartType # 查看状态与启动类型
Get-Service -Name RemoteRegistry | Stop-Service -Force; Set-Service -Name RemoteRegistry -StartupType Disabled # 停用并禁止启动
Get-Service -Name Spooler | Select-Object Name, Status, StartType # 关闭前先确认打印使用面
sc.exe query type= service state= all | findstr /i "SERVICE_NAME" | find /c /v "" # 统计服务总数,便于建立基线服务与处置建议
| 服务 | 作用 | 处置建议 |
|---|---|---|
| RemoteRegistry | 远程注册表访问 | 服务器上一般可禁用 |
| Print Spooler | 打印后台处理 | 域控建议关闭,打印服务器保留 |
| SSDPSRV 与 upnphost | 即插即用与设备发现 | 服务器上通常不需要 |
| Fax | 传真服务 | 无传真需求时禁用 |
| WerSvc | Windows 错误报告 | 按需禁用,同时评估对排障的影响 |
域控上关闭 Print Spooler 是比较常见的推荐做法(打印服务历史漏洞频发);域内另有一台专门的打印服务器时不受影响。
关闭 Spooler 之后共享打印机与打印队列会全部不可用:动手之前先确认这台机器上有没有人在用。
SSDP 与 UPnP 会被家庭组、投屏类软件依赖:桌面终端可以按需保留,服务器角色一般应当禁用。
处置之后要做一次复核:用 Get-Service 确认启动类型确实变为 Disabled;只执行 Stop-Service 的话,重启之后服务又会回来。