世界在周二醒来时发现了两个新漏洞——一个在 Windows 中,另一个在 Linux 中——允许在易受攻击的系统中立足的黑客绕过操作系统安全限制并访问敏感资源。随着操作系统和应用程序变得更难破解,成功的攻击通常需要两个或更多漏洞。一个漏洞允许攻击者访问低特权的操作系统资源,在这些资源中可以执行代码或读取敏感数据。第二个漏洞提升了对为密码存储或其他敏感操作保留的操作系统资源的代码执行或文件访问。因此,所谓的本地提权漏洞的价值近年来有所增加。周一,当一名研究人员观察到他认为即将推出的 Windows 11 测试版中的编码回归时,Windows 漏洞偶然曝光。研究人员发现安全帐户管理器的内容——存储用户帐户和本地计算机上用户的安全描述符——可以被具有有限系统权限的用户读取。这使得提取受密码保护的密码数据、发现用于安装 Windows 的密码、获取 Windows 数据保护 API 的计算机密钥(可用于解密私有加密密钥)以及在易受攻击的计算机上创建帐户成为可能。结果是本地用户可以一直将权限提升到 Windows 中的最高级别 System。 “我还不知道问题的全部范围,但我认为问题太多了,”研究员乔纳斯·莱克加德 (Jonas Lykkegaard) 指出。 “所以没有人怀疑这意味着什么,即使是沙盒应用程序,它也是系统的 EOP。” yarh-出于某种原因,在 win11 上,用户现在可以读取 SAM 文件。因此,如果您启用了 shadowvolumes,您可以像这样读取 sam 文件:我还不知道问题的全部范围,但我认为问题太多了。 pic.twitter.com/kl8gQ1FjFt-Jonas L(@jonasLyk)2021 年 7 月 19 日
回应 Lykkegaard 的人指出,该行为不是 Windows 11 中引入的回归。相反,最新版本的 Windows 10 中存在相同的漏洞。 美国计算机应急准备小组表示,该漏洞存在于 Volume Shadow复制服务——允许操作系统或应用程序在不锁定文件系统的情况下拍摄整个磁盘的“时间点快照”的 Windows 功能——已打开。如果系统驱动器的 VSS 卷影副本可用,则非特权用户可以利用对这些文件的访问来实现多种影响,包括但不限于: 请注意,在某些配置中,VSS 卷影副本可能不可用;但是,只需拥有一个大于 128GB 的系统驱动器,然后执行 Windows 更新或安装 MSI 即可确保自动创建 VSS 卷影副本。要检查系统是否有可用的 VSS 卷影副本,请从特权命令提示符运行以下命令: vssadmin list shadows 研究员 Benjamin Delpy 展示了如何利用该漏洞获取密码哈希或其他敏感数据: 问:当您有 #mimikatz🥝 和一些对 Windows 系统文件(如 SYSTEM、SAM 和 SECURITY)的读取权限? A:本地权限提升🥳 感谢@jonasLyk 在默认 Windows 上的阅读权限😘 pic.twitter.com/6Y8kGmdCsp — 🥝 Benjamin Delpy (@gentilkiwi) 2021 年 7 月 20 日目前,没有可用的补丁。一位微软代表表示,公司官员正在调查该漏洞,并将根据需要采取适当的行动。该漏洞被跟踪为 CVE-2021-36934。微软在这里表示,野外攻击“更有可能”。
与此同时,大多数版本的 Linux 正在分发针对周二披露的漏洞的修复程序。 CVE-2021-33909,随着安全漏洞的跟踪,允许不受信任的用户通过创建、挂载和删除总路径长度超过1GB的深层目录结构,然后打开并读取/proc/来获得不受约束的系统权限self/mountinfo 文件。发现该漏洞的安全公司 Qualys 的研究人员表示:“我们成功地利用了这种不受控制的越界写入,并获得了默认安装的 Ubuntu 20.04、Ubuntu 20.10、Ubuntu 21.04、Debian 11 和 Fedora 34 Workstation 的完全 root 权限”并创建了利用它的概念验证代码,写道。 “其他 Linux 发行版当然容易受到攻击,并且可能会被利用。” Qualys 描述的漏洞利用带来了巨大的开销,特别是大约 100 万个嵌套目录。攻击还需要大约 5GB 的内存和 100 万个 inode。尽管存在障碍,但 Qualys 的一位代表将 PoC 描述为“极其可靠”,并表示大约需要三分钟才能完成。 1/ 我们 mkdir() 一个总路径长度超过 1GB 的深层目录结构(大约 1M 嵌套目录),我们将它绑定挂载到一个非特权用户命名空间,然后 rmdir() 它。 2/ 我们创建了一个线程,它 vmalloc() 访问一个小的 eBPF 程序(通过 BPF_PROG_LOAD),并且在我们的 eBPF 程序已经被内核 eBPF 验证器验证之后但在它被 JIT 编译之前我们阻塞了这个线程(通过 userfaultfd 或 FUSE)由内核。 3/ 我们在我们的非特权用户命名空间中 open() /proc/self/mountinfo 并开始 read() 我们的绑定挂载目录的长路径,从而将字符串“//deleted”写入正好 -2GB 的偏移量- 10B 在 vmalloc() 化缓冲区的开头下方。 4/ 我们安排这个“//deleted”字符串覆盖我们经过验证的 eBPF 程序的一条指令(从而使内核 eBPF 验证器的安全检查无效)并将这个不受控制的越界写入转换为信息披露和有限但受控的越界写入。
5/ 我们通过重用 Manfred Paul 漂亮的 btf 和 map_push_elem 技术,将这种有限的越界写入转换为对内核内存的任意读写:运行 Linux 的人应该与发行商核实以确定是否有补丁可以修复漏洞. Windows 用户应等待 Microsoft 和外部安全专家的建议。我想知道那个 Linux 错误是如何被发现的。 Windows 特权“哎呀”是我可以看到研究人员在对 Win 11 早期版本进行审核的过程中发现的那种事情,但是“创建 1M 嵌套目录,...”序列不太可能弹出在正常的业务过程中!我假设有人正在阅读源代码并从逻辑上解决了这个问题。对那个 linux 漏洞利用表示悲痛。老实说,我不能因为没有找到那个而责怪开发人员,我更敬畏您甚至可以创建这样一个结构,而不会先使文件系统爆炸!