8月上旬的DEF CON 34上,安全研究员Alejandro Hernando和Borja Martinez做了一个让不少终端安全从业者后背发凉的演示:把一台用软件模拟出来的USB设备插进一台补丁打满的Windows 11,全程零点击,连登录界面都不用进,几分钟后拿到系统最高权限SYSTEM。微博这套研究叫Plug & Pwn,项目工具和验证流程已经在plugandpwn.com全部开源。知乎
先纠正一个被带偏的认知:这不是Windows的0day。知乎整套攻击没有利用任何Windows系统本身的漏洞,没有单一CVE编号,微软也没法推一个补丁一键修复。知乎它真正撕开的,是Windows即插即用(PnP)机制里一个被所有人默认信任、却几乎没人细想过的设计假设。

为什么"自动装驱动"能直接给到最高权限
Windows的PnP安装流程分四步:读USB设备描述符拿到厂商ID和产品ID拼成硬件ID→匹配对应驱动→创建虚拟设备节点→设备安装服务DSMSVC在svchost里以SYSTEM权限执行安装,本地没有驱动包就自动去Windows Update下载。知乎
关键点在于:厂商驱动包里带的协同安装器(co-installer)以及配套服务,全都直接跑在SYSTEM上下文里,跟当前有没有用户登录、登录的是谁完全无关。微软的签名只验证"这个包是谁发布的",不保证"包里的业务代码没有逻辑漏洞"。知乎而现实是,大量厂商驱动包的质量参差不齐,单个看都不起眼的小毛病,拼起来就是完整的提权链。
物理攻击链:七步,约五分钟
研究员用Linux主机跑FaceDancer(一个经典的USB硬件仿真工具,纯软件伪造任意USB设备身份,不用改硬件),攻击链是这么串起来的:
第一步,模拟Sierra EM7340无线网卡。系统自动装好驱动后,配套的SwiService.exe以SYSTEM权限运行,并且开了一个所有用户都能读写的命名管道——连上管道就能调它的SetDNS函数改系统DNS。
第二步,把DNS指向自己的服务器,只劫持Sony相关域名,其余流量正常转发,尽量不露馅。
第三步,切换身份模拟Sony Felica读卡器。系统照例自动下载驱动,驱动里的felica_coinst.dll会通过明文HTTP去Sony服务器拉配置文件——因为DNS被劫持,请求直接进了攻击者的口袋。
第四步,利用这个下载逻辑的路径遍历漏洞:解析地址时只认最后一个斜杠、不过滤反斜杠,构造一个特殊URL,恶意DLL就被以SYSTEM权限写进了System32。知乎
第五到第七步,再次模拟Sierra设备触发驱动重新加载,植入的DLL被加载执行,SYSTEM shell到手。
全程不需要点任何弹窗。电脑停在锁屏界面,攻击照样跑完。知乎

远程版本NoPlug&Pwn:一根USB都不用
更值得注意的是远程路径。RDP的USB重定向(URBDRC通道)本来是为了让远程桌面能用本地的U盾、加密狗,但服务端完全信任客户端上报的设备描述——客户端说有什么设备,服务端就当有什么设备。研究员用纯Python客户端凭空捏造了一个Intel RealSense摄像头,服务端PnP照常工作,自动下载官方签名驱动安装,而这个驱动恰好把一个可执行文件放在普通用户可写的目录里、再以SYSTEM身份运行,提前放好的CRYPTBASE.dll通过DLL劫持完成提权。知乎知乎
限制条件很明确:目标必须开启RDP USB重定向。GitHub这个开关默认关闭,但企业VDI、云桌面环境为了兼容外设经常主动打开——很多运维根本不知道打开它等于开了这条通道。
研究里最狠的部分是"漏洞组合"
演示中还有几条没进主链的拼图:Wacom数位板驱动里藏着一个注册表开关,写入特定值重启服务就能弹出交互式SYSTEM命令行(疑似厂商调试后门);Atheros网卡驱动服务有个2019年就公开的老漏洞(CVE-2019-10617),研究员本以为驱动包早被微软吊销,结果发现它至今还能通过PnP自动安装。知乎单个厂商可能都不觉得这些算漏洞,但红队视角里,它们是稳定、免杀、不需要内核漏洞的提权积木。
谁真正需要紧张:分三档看
第一档,企业里开了RDP USB重定向的VDI、云桌面、堡垒机接入服务器。这是远程路径的直接暴露面,普通用户账号就能直通SYSTEM,优先处理。知乎
第二档,物理接触不可控的机器:公共终端、共享工位、送修中的设备、会议现场临时借用的电脑。只要USB口可达+自动装驱动是默认开启的,物理链就成立。
第三档,家用机、本人物理看管的办公本。远程路径默认不影响你,物理路径的前提是有人能碰到你的USB口。知乎风险等级低,但顺手把下面的加固做了也没坏处。
能做什么:把代价也说清楚
个人层面:不插来路不明的设备这条老规矩在这个攻击面前依然是第一防线;可以通过组策略"指定驱动搜索位置"里勾选不要搜索Windows Update,直接掐断攻击链的弹药来源——代价是新外设不会自动装驱动,得手动处理。知乎
企业层面:逐台核查RDP服务器和云桌面的USB重定向策略,没业务刚需就关掉;高安全终端可以上"设备安装限制"白名单(代价是标准化运维成本上升);启用DisableCoInstallers能干掉Sony、Intel RealSense这类协同安装器链,但要注意它不是万能的——不依赖co-installer的驱动包照样能执行SYSTEM代码,别拿它当终点。知乎
检测层面有个容易被忽略的盲区:整条攻击链的动作全部由合法签名的厂商二进制完成,传统EDR盯进程创建、文件落地的规则很容易漏。真正的高价值日志是C:WindowsINFSetupAPI.dev.log,它完整记录每一次驱动下载和co-installer调用,但多数安全产品默认不采集。知乎把这份日志接进SIEM,告警条件设成"非工作时段的WU驱动下载+co-installer加载",是目前性价比最高的检测手段。
这条线不是新问题,只是第一次被拼完整
往前倒:2014年BadUSB证明了USB固件可以伪装身份;后来的Rubber Ducky把键注做成了成熟攻击品类;Razer Synapse、SteelSeries的协同安装器先后曝出过同类的PnP提权问题;去年DEF CON 33上Eclypsium还演示了把联想摄像头变成BadUSB的BadCam。微软在2023年之后已经不再给新提交的co-installer签名,但存量旧驱动包依然在Windows Update上继续分发——PlugandPwn里那个七年前的Atheros漏洞就是活证据。知乎
值得硬件安全研究者继续盯的信号有两个:一是微软会不会对WU驱动分发策略本身动刀(目前官方态度是"这是功能设计,不是漏洞");二是各家外设厂商会不会在压力下收敛驱动包里的服务、管道和明文下载逻辑。研究工具链已经全部开源,FaceDancer模拟脚本加PNPsimulate工具,想复现整条链的门槛并不高——这也是这类研究最值得收藏跟进的地方:它给的不是一个CVE,而是一块可以反复挖掘的攻击面。