攻击者可利用‘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重定向解决方案的总线驱动程序中,具体问题在于:
-
不安全的IoCreateDevice调用:
- 驱动程序调用Windows内核函数
IoCreateDevice时未执行适当的安全检查 - 未添加限制访问的安全描述符(通常应限制为仅系统和管理员访问)
- 未在驱动程序本身实施安全检查
- 驱动程序调用Windows内核函数
-
服务权限过高:
- FabulaTech服务运行在LocalSystem账户下
- LocalSystem账户拥有系统最高权限
2.2 漏洞影响
攻击者可利用此漏洞:
- 添加和控制受操作系统信任的虚假USB设备
- 提升在目标计算机上的权限
- 执行多种恶意操作,包括但不限于:
- 模拟鼠标输入绕过UAC
- 添加虚拟网卡劫持流量
- 注入恶意HID设备输入
3. 漏洞利用原理
3.1 USB重定向工作原理
-
客户端/服务器架构:
- 客户端收集本地USB设备信息并发送到远程服务器
- 服务器通过总线驱动程序创建虚拟设备
- 操作系统被欺骗认为连接了真实USB设备
-
通信流程:
真实USB设备 → 客户端软件 → 网络传输 → 服务器软件 → 总线驱动 → 虚拟设备 → 操作系统
3.2 漏洞利用点
驱动程序暴露了三个关键控制代码:
-
设备创建代码:
- 输入: 设备描述符
- 无权限验证
-
获取USB请求块(URB)代码:
- 输入/输出: URB结构
- 无权限验证
-
重放URB代码:
- 输入/输出: URB结构
- 无权限验证
数据结构:
[驱动私有头] + [URB] + [HID报告]
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设备支持
- 云计算场景中的设备穿透功能