Windows 漏洞利用技巧:虚拟内存访问陷阱(2025 更新)
Windows 漏洞利用技巧:虚拟内存访问陷阱(2025 更新)
发表于 2025 年 1 月 30 日,星期四
作者:James Forshaw,Google Project Zero
早在 2021 年,我写了一篇博客文章,介绍了在 Windows 上构建虚拟内存访问陷阱原语的各种方法。其目标是使虚拟内存地址的读取者或写入者暂停相当长的时间(例如 1 秒或更长时间),通常是为了利用内核中的 TOCTOU 内存访问错误。
该博客文章中提出的解决方案是映射远程服务器上的 SMB 文件,或滥用 Cloud Filter API。这篇博客不会提供新的解决方案,而是想重点介绍 Windows 11 24H2 的一个新功能,该功能引入了直接在本地机器上滥用 SMB 文件服务器的能力,无需远程服务器。这一变化还引入了本地利用所谓"虚假文件不可变性"错误类漏洞的能力。
一切改变由此开始
据我所知,这一变化首次公开是在这篇博客文章中。微软的博客文章描述了 Windows Insider 预览版中的这一变化,但随后已在普遍可用的 Windows 11 24H2 中发布。
简而言之,Windows 上的 SMB 客户端现在支持从命令行的 net 命令指定目标 TCP 端口。例如,您可以通过命令net use \\localhost\c$ /TCPPORT:12345
强制 SMB 客户端使用端口 12345。现在访问 UNC 路径\\localhost\c$\blah
将通过端口 12345 连接,而不是旧的固定端口 445。此功能适用于任何用户,不需要管理员访问权限,因为它只影响当前用户的登录会话。
在之前的博客文章中遇到的问题是无法在不关闭本地 SMB 服务器的情况下将伪造的 SMB 服务器绑定到端口 445。关闭服务器只能由管理员完成,这使得该利用技巧的大部分意义失效。通过将客户端端口更改为当前未使用的端口,我们可以通过伪造的 SMB 服务器打开文件,并在本地执行延迟,而无需使用 Cloud Filter API。幸运的是,这仍然不允许该技术在沙箱中工作。
请注意,管理员可以通过组策略禁用此功能,但默认情况下它是启用的,非企业用户不太可能更改此设置。我个人认为默认启用它是一个错误,将来会给 Windows 带来问题。
我已经更新了示例伪造 SMB 服务器,允许您绑定到不同的端口,以便在本地执行攻击。希望有人觉得它有用。更多精彩内容 请关注我的个人公众号 公众号(办公 AI 智能小助手)对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)
公众号二维码

公众号二维码

评论