关键在于切断“启动服务→伪装进程→获取高权限”整条链路:禁用图形化服务管理入口、限制sc.exe等命令行工具、收紧服务ACL、拒绝普通用户作为服务登录。
要防止普通账户通过服务路径提权,关键不是只封一个入口,而是切断“启动服务→伪装进程→获取高权限”的整条链路。核心思路是:不让普通用户看到服务、不让其调用管理工具、更不让其对服务对象本身拥有任何访问权限。
禁用图形化服务管理入口
多数用户依赖图形界面操作,先堵住最常用的入口:
- 在组策略中导航至用户配置 → 管理模板 → 系统 → 管理工具,启用“禁止使用服务”策略。该设置会彻底屏蔽 services.msc,包括 Win+R 输入、双击 .msc 文件、从计算机管理中打开等所有方式
- 同步启用“禁止访问控制面板”,或更精准地启用“禁止访问指定的控制面板项”,填入 inetcpl.cpl、sysdm.cpl 等常见 .cpl 文件名
- Windows 10/11 的“设置”应用需单独处理:启用计算机配置 → 管理模板 → 控制面板 → 设置页面可见性,用 Hide:network-proxy;network-mobilehotspot 这类格式隐藏敏感页
限制命令行与脚本服务操作能力
图形界面关闭后,技术型用户仍可能用 sc.exe、PowerShell 查询或控制服务,必须同步收紧:
- 在用户配置 → 管理模板 → 系统 → 可执行文件的限制中启用“不允许运行指定的Windows应用程序”,添加 sc.exe(这是最常被用于服务探测的工具)
- 如环境允许,推荐使用 AppLocker(域环境适用):在计算机配置 → 应用程序控制策略 → AppLocker → 可执行规则中新建拒绝规则,路径设为 %SystemRoot%\System32\sc.exe,作用对象为 Domain Users
- 慎封 cmd.exe 和 powershell.exe;若必须限制,应先灰度测试,避免影响日常办公脚本或IT支持流程
收紧服务对象自身的安全描述符(ACL)
这是最根本的一层防护——即使用户能运行工具,也因权限不足而失败:
- 进入计算机配置 → 策略 → Windows 设置 → 安全设置 → 系统服务,逐个添加关键服务(如 Spooler、Dhcp、W32Time)
- 双击服务 → 勾选“定义此策略设置” → 点击“编辑安全性” → 移除 Authenticated Users 和 Users 组的“读取”“查询状态”权限,仅保留 SYSTEM、Administrators 等必要组
- 注意:该设置需配合服务启动类型(如设为“手动”或“禁用”)共同生效,否则残留的读取权限可能导致服务名、状态等信息泄露
阻断服务登录权限与高危账户行为
防止普通用户将自身账户配置为服务运行主体,从而绕过交互式登录限制:
- 在计算机配置 → Windows 设置 → 安全设置 → 本地策略 → 用户权限分配中,启用“拒绝作为服务登录”,将普通用户组(如 Domain Users)加入其中
- 同步配置“拒绝通过网络访问该计算机”“拒绝以批处理作业身份登录”“拒绝通过远程桌面服务登录”,限制内置 Administrator 或 Domain Admins 账户的非必要登录场景
- 确保这些策略仅链接到普通用户 OU,避免被管理员 OU 继承覆盖;本地管理员账户不受用户策略限制,需单独评估和管控


















