写点什么

Windows 系统引入 Sudo 命令的技术内幕与安全风险分析

作者:qife
  • 2025-07-18
    福建
  • 本文字数:780 字

    阅读完需:约 3 分钟

Windows 系统 Sudo 命令快速解析

背景

Windows Insider Preview build 26052 引入了 sudo 命令。经分析发现其本质是通过 UAC 机制实现权限提升,而非类 Unix 系统的 SUID 机制。执行方式如下:


C:\> sudo powershell.exe
复制代码

实现原理

  1. UAC 依赖:完全依赖现有 UAC 机制,通过ShellExecuterunas动词触发提权

  2. 四种模式

  3. 禁用模式(注册表键值 0)

  4. 新窗口模式(键值 1):等效于Start-Process -Verb runas

  5. 输入禁用模式(键值 2)和行内模式(键值 3):通过 RPC 通信共享控制台句柄

安全实现细节

# RPC服务接口定义[uuid(F691B703-F681-47DC-AFCD-034B2FAAB911)]interface intf_f691b703_f681_47dc_afcd_034b2faab911 {    int server_DoElevationRequest(        [in] handle_t _hProcHandle,        [in, system_handle(sh_process)] HANDLE p0,        [in] int p1,  # 进程类型(2=输入禁用,3=行内)        [in, string] char* p2,  # ANSI格式命令行        [in, string] char* p5,  # 工作目录        [in, size_is(p9)] byte* p8[],  # 环境变量块        [in] int p9);}
复制代码

关键安全漏洞

  1. ALPC 端口权限问题


   # 检查端口DACL显示所有用户都有连接权限   Get-NtAlpcServer | Where Name -Match sudo | Format-NtSecurityDescriptor -Summary
复制代码


  • 允许Everyone组连接 RPC 服务

  • 包括带有RESTRICTED SID 的进程(如 Chromium GPU 进程)


  1. 跨会话提权风险

  2. 在终端服务器场景下,普通用户可攻击管理员会话

  3. 无 PID 验证机制,可通过直接连接 RPC 端口执行提权操作

架构缺陷

  1. 模式切换无强制校验(可通过 RPC 绕过配置限制)

  2. 提权后的 sudo 进程持续运行 RPC 服务

  3. 环境变量/工作目录通过非安全通道传输

开发建议

  1. 应使用RpcServerRegisterIfEx替代废弃的RpcServerRegisterIf

  2. 必须为 ALPC 端口设置严格安全描述符

  3. 建议实现真正的策略管理系统(类似/etc/sudoers)


更多精彩内容 请关注我的个人公众号 公众号(办公 AI 智能小助手)公众号二维码


办公AI智能小助手


用户头像

qife

关注

还未添加个人签名 2021-05-19 加入

还未添加个人简介

评论

发布
暂无评论
Windows系统引入Sudo命令的技术内幕与安全风险分析_Windows安全_qife_InfoQ写作社区