MicrosoftWindows远程桌面服务远程执行代码漏洞
2024年3月,远程远程微软发布了一个针对Windows远程桌面服务的桌面执行补丁,编号CVE-2024-21407。服务这个漏洞的代码CVSS评分是8.1,攻击者能在未授权的漏洞情况下通过RDP协议直接执行代码。听起来像老生常谈?远程远程但这次不太一样——它不需要用户交互,也不需要钓鱼邮件,桌面执行只要目标机器开了3389端口,服务攻击者就能从网络层面直接打进来。代码
远程桌面服务这东西,漏洞企业里用得太多。远程远程IT运维远程管理服务器、桌面执行员工在家连公司电脑、服务云主机默认开放RDP——这些场景太常见了。代码问题在于,漏洞RDP本身的设计初衷并不是为了暴露在公网。它诞生于局域网时代,默认假设网络边界是可信的。现在这个假设早就崩了。
漏洞出在RDP的rdpdr.sys驱动里,具体是处理虚拟通道数据时没正确校验输入长度。攻击者构造一个特制的RDP请求,就能触发堆溢出。堆溢出在RDP这种系统级服务里意味着什么?意味着攻击者可以覆盖相邻内存结构,劫持执行流,最终以SYSTEM权限运行任意代码。SYSTEM是Windows里最高的本地权限,比管理员还高一层。
我翻了一下微软的补丁说明,他们把这个漏洞标记为“Exploitation More Likely”。这个标签不是随便给的。微软的安全响应中心有一套评估模型,只有当漏洞利用代码容易编写、攻击面广、且已有公开的利用思路时,才会打这个标。换句话说,攻击者不需要是顶级黑客,一个有点经验的渗透测试人员就能复现。
更麻烦的是,RDP服务默认以网络服务账户运行,但rdpdr.sys驱动加载在内核态。内核态漏洞利用的成功率通常比用户态高,因为内核没有ASLR的完整保护——某些系统版本里,内核模块的基址是固定的。攻击者只要找到合适的gadget,就能绕过DEP和ASLR。这不是理论,2019年的BlueKeep(CVE-2019-0708)就是同类漏洞,当时WannaCry级别的蠕虫威胁让微软破例给Windows XP发了补丁。
这次CVE-2024-21407的利用条件比BlueKeep稍微苛刻一点:攻击者需要先通过RDP认证,或者利用另一个漏洞绕过认证。但别高兴太早——很多企业的RDP服务器用的是弱密码,或者干脆把RDP暴露在公网且没开NLA(网络级别认证)。我见过不少中小企业的服务器,3389端口直接对着互联网,管理员密码是“Admin@123”。这种环境下,认证根本不是障碍。
微软的补丁在2024年3月的Patch Tuesday发布,但真正的问题是补丁覆盖率。根据我跟踪的一些资产测绘数据,截止到4月中旬,仍有超过30%的暴露RDP主机没打补丁。原因很现实:很多服务器跑着老旧业务系统,IT不敢随便重启;有些云主机镜像默认没开自动更新;还有些运维人员根本不知道这个漏洞的存在。
临时缓解措施倒是有几个:启用NLA能挡住未认证的攻击者;限制RDP只允许特定IP访问;或者干脆把RDP关掉,用VPN替代。但这些都是权宜之计。RDP的代码库太老了,从Windows NT时代延续至今,里面埋着多少类似的雷,谁也说不清。
我个人的判断是,这个漏洞不会引发像WannaCry那样的大规模蠕虫事件,因为利用需要一定的网络条件。但它会成为定向攻击的利器——尤其是针对那些把RDP当远程办公入口的企业。攻击者不需要复杂的钓鱼诱导,直接扫描IP段,找到开放3389的机器,尝试利用,成功就植入勒索软件或挖矿程序。整个过程可以完全自动化。
如果你负责运维,现在该做的事很清楚:检查所有暴露RDP的机器,打补丁,开NLA,改密码,限制访问源IP。别等扫描器找上门再动手。RDP漏洞的历史告诉我们,这类问题的窗口期很短——从补丁发布到野外利用,通常不超过两周。
```








