攻击者可利用‘USB for Remote Desktop’中的漏洞添加虚假设备
字数 1795 2025-08-15 21:31:11

USB for Remote Desktop 漏洞分析及利用教学文档 (CVE-2020-9332)

1. 漏洞概述

漏洞编号: CVE-2020-9332
影响产品: FabulaTech公司开发的"USB for Remote Desktop"软件
漏洞类型: 权限提升漏洞
危险等级: 高危
影响版本:

  • Windows版6.0(2019年11月22日发布)
  • Linux版5.2.29(2018年5月8日发布)

2. 漏洞技术细节

2.1 漏洞成因

该漏洞存在于FabulaTech的USB重定向解决方案的总线驱动程序中,具体问题在于:

  1. 不安全的IoCreateDevice调用:

    • 驱动程序调用Windows内核函数IoCreateDevice时未执行适当的安全检查
    • 未添加限制访问的安全描述符(通常应限制为仅系统和管理员访问)
    • 未在驱动程序本身实施安全检查
  2. 服务权限过高:

    • FabulaTech服务运行在LocalSystem账户下
    • LocalSystem账户拥有系统最高权限

2.2 漏洞影响

攻击者可利用此漏洞:

  1. 添加和控制受操作系统信任的虚假USB设备
  2. 提升在目标计算机上的权限
  3. 执行多种恶意操作,包括但不限于:
    • 模拟鼠标输入绕过UAC
    • 添加虚拟网卡劫持流量
    • 注入恶意HID设备输入

3. 漏洞利用原理

3.1 USB重定向工作原理

  1. 客户端/服务器架构:

    • 客户端收集本地USB设备信息并发送到远程服务器
    • 服务器通过总线驱动程序创建虚拟设备
    • 操作系统被欺骗认为连接了真实USB设备
  2. 通信流程:

    真实USB设备 → 客户端软件 → 网络传输 → 服务器软件 → 总线驱动 → 虚拟设备 → 操作系统
    

3.2 漏洞利用点

驱动程序暴露了三个关键控制代码:

  1. 设备创建代码:

    • 输入: 设备描述符
    • 无权限验证
  2. 获取USB请求块(URB)代码:

    • 输入/输出: URB结构
    • 无权限验证
  3. 重放URB代码:

    • 输入/输出: URB结构
    • 无权限验证

数据结构:

[驱动私有头] + [URB] + [HID报告]

4. 漏洞利用演示

4.1 概念验证(PoC)分析

SentinelOne研究人员创建了两个PoC:

  1. 基础PoC:

    • 演示添加虚假USB设备
    • 展示无权限用户如何控制系统信任的设备
  2. UAC绕过PoC(未公开):

    • 模拟鼠标点击同意UAC提示
    • 因漏洞未修复而未公开完整代码

4.2 攻击场景示例

  1. 模拟HID设备攻击:

    • 添加虚假鼠标/键盘
    • 注入输入事件(如点击、按键)
  2. 网络设备攻击:

    • 添加虚拟以太网卡
    • 劫持或监控网络流量
  3. 存储设备攻击:

    • 添加虚假存储设备
    • 提供恶意文件或自动运行脚本

5. 防御与修复建议

5.1 临时缓解措施

  1. 限制对FabulaTech服务的访问
  2. 监控驱动程序活动
  3. 禁用不必要的USB重定向功能

5.2 官方修复

FabulaTech公司正在开发新版本,预计修复内容包括:

  1. 为IoCreateDevice添加适当的安全描述符
  2. 实施驱动程序级别的权限检查
  3. 可能降低服务运行权限

更新计划:

  • Windows版: 版本6.x
  • Linux版: 版本5.2.30+
  • 预计发布时间: 漏洞披露后一周内

6. 受影响客户

该软件被众多知名组织使用,包括但不限于:

  • 科技公司: Google, Microsoft, Intel, Texas Instruments, Xerox
  • 金融机构: MasterCard, Raiffeisen Bank
  • 能源公司: Chevron, Shell, General Electric
  • 政府机构: NASA
  • 军工企业: Raytheon
  • 教育机构: Harvard
  • 媒体: Reuters

7. 研究参考资料

  1. 原始漏洞报告: SentinelOne
  2. 技术细节来源: Bleeping Computer
  3. CVE数据库: CVE-2020-9332
  4. FabulaTech官方通信(关于修复计划)

8. 附录

8.1 关键术语解释

  • IoCreateDevice: Windows内核函数,用于创建设备对象
  • URB (USB Request Block): USB设备通信的数据结构
  • HID (Human Interface Device): 人机接口设备,如键盘鼠标
  • LocalSystem: Windows最高权限系统账户

8.2 相关技术背景

USB重定向技术通常用于:

  1. 远程桌面环境共享本地USB设备
  2. 虚拟化环境提供USB设备支持
  3. 云计算场景中的设备穿透功能
USB for Remote Desktop 漏洞分析及利用教学文档 (CVE-2020-9332) 1. 漏洞概述 漏洞编号 : CVE-2020-9332 影响产品 : FabulaTech公司开发的"USB for Remote Desktop"软件 漏洞类型 : 权限提升漏洞 危险等级 : 高危 影响版本 : Windows版6.0(2019年11月22日发布) Linux版5.2.29(2018年5月8日发布) 2. 漏洞技术细节 2.1 漏洞成因 该漏洞存在于FabulaTech的USB重定向解决方案的总线驱动程序中,具体问题在于: 不安全的IoCreateDevice调用 : 驱动程序调用Windows内核函数 IoCreateDevice 时未执行适当的安全检查 未添加限制访问的安全描述符(通常应限制为仅系统和管理员访问) 未在驱动程序本身实施安全检查 服务权限过高 : FabulaTech服务运行在LocalSystem账户下 LocalSystem账户拥有系统最高权限 2.2 漏洞影响 攻击者可利用此漏洞: 添加和控制受操作系统信任的虚假USB设备 提升在目标计算机上的权限 执行多种恶意操作,包括但不限于: 模拟鼠标输入绕过UAC 添加虚拟网卡劫持流量 注入恶意HID设备输入 3. 漏洞利用原理 3.1 USB重定向工作原理 客户端/服务器架构 : 客户端收集本地USB设备信息并发送到远程服务器 服务器通过总线驱动程序创建虚拟设备 操作系统被欺骗认为连接了真实USB设备 通信流程 : 3.2 漏洞利用点 驱动程序暴露了三个关键控制代码: 设备创建代码 : 输入: 设备描述符 无权限验证 获取USB请求块(URB)代码 : 输入/输出: URB结构 无权限验证 重放URB代码 : 输入/输出: URB结构 无权限验证 数据结构 : 4. 漏洞利用演示 4.1 概念验证(PoC)分析 SentinelOne研究人员创建了两个PoC: 基础PoC : 演示添加虚假USB设备 展示无权限用户如何控制系统信任的设备 UAC绕过PoC (未公开): 模拟鼠标点击同意UAC提示 因漏洞未修复而未公开完整代码 4.2 攻击场景示例 模拟HID设备攻击 : 添加虚假鼠标/键盘 注入输入事件(如点击、按键) 网络设备攻击 : 添加虚拟以太网卡 劫持或监控网络流量 存储设备攻击 : 添加虚假存储设备 提供恶意文件或自动运行脚本 5. 防御与修复建议 5.1 临时缓解措施 限制对FabulaTech服务的访问 监控驱动程序活动 禁用不必要的USB重定向功能 5.2 官方修复 FabulaTech公司正在开发新版本,预计修复内容包括: 为IoCreateDevice添加适当的安全描述符 实施驱动程序级别的权限检查 可能降低服务运行权限 更新计划 : Windows版: 版本6.x Linux版: 版本5.2.30+ 预计发布时间: 漏洞披露后一周内 6. 受影响客户 该软件被众多知名组织使用,包括但不限于: 科技公司: Google, Microsoft, Intel, Texas Instruments, Xerox 金融机构: MasterCard, Raiffeisen Bank 能源公司: Chevron, Shell, General Electric 政府机构: NASA 军工企业: Raytheon 教育机构: Harvard 媒体: Reuters 7. 研究参考资料 原始漏洞报告: SentinelOne 技术细节来源: Bleeping Computer CVE数据库: CVE-2020-9332 FabulaTech官方通信(关于修复计划) 8. 附录 8.1 关键术语解释 IoCreateDevice : Windows内核函数,用于创建设备对象 URB (USB Request Block) : USB设备通信的数据结构 HID (Human Interface Device) : 人机接口设备,如键盘鼠标 LocalSystem : Windows最高权限系统账户 8.2 相关技术背景 USB重定向技术通常用于: 远程桌面环境共享本地USB设备 虚拟化环境提供USB设备支持 云计算场景中的设备穿透功能