《防御者伪装者》将Windows的恶意软件保护机制反向利用
Windows Defender 安全漏洞 攻击示范与防范策略
关键要点
Windows Defender 存在安全漏洞,可被用来忽视恶意软件、错误识别为恶意的良性文件,甚至删除关键系统文件。两位以色列研究员在 Black Hat 安全大会上展示了此漏洞,名为 CVE202324934。研究人员开发了自动化工具 Defender Pretender,允许复制其攻击,适用于早于 41823038 的 Microsoft Malware Protection Platform 版本。本文讨论了如何利用 Windows Defender 签名更新过程,进行恶意操控,并提供相关的防范对策。在 8 月 9 日的 Black Hat 安全会议上,SafeBreach 的 Tomer Bar 和 Omer Attias 展示了 Windows Defender 可以被操控来忽视恶意软件、错误识别无害文件为恶意文件,甚至删除关键系统文件,使计算机无法运行。微软已在 4 月补丁修复了这一漏洞,并将此攻击方法列为 CVE202324934。
“教训是‘不要相信任何人’,”Bar 说,“即使是微软自己的流程。数字签名文件并非总是安全的,安全程序的签名更新过程可以被用作攻击的切入点。”
灵感来源于 2012 年的国家支持型恶意软件 Flame,Bar 和 Attias 希望也能利用 Windows Defender 的病毒签名更新过程来破坏 Windows 系统。然而,尽管 Flame 使用了密码冲突来伪造微软的数字签名,但 Bar 和 Attias 则希望以普通用户身份在无需特殊访问或签名的情况下实现这一目标。
“我们的目标是在没有伪造证书的情况下实现类似的能力,”Bar 说道。
但这并非易事。正如你可能想象的那样,微软的端点保护程序自身保护得相当完善。

研究人员表示,他们拆解了 Defender 的更新引擎 MPAMFEexe,并尝试破坏其子程序可执行文件和相关的 DLL 文件,但未能成功。直接攻击其四个病毒签名文件在微软术语中称为 VDM也没能取得太大的突破。他们能够增加一个 VDM 文件的版本号并让 Defender 接受,但向文件中添加一个字节会导致过程失败。
不过,在经历了多次反复试验后,Bar 和 Attias 发现 VDM 文件在每次 Defender 更新过程中会经历合并过程。
在抵御间谍软件的历史上,Defender 的病毒更新文件分为特定病毒和间谍软件的 VDM,每个都有一个“基础”文件和一个“增量”文件。
基础文件随大的 Defender 更新一起发布,此案例中的版本为 139100。增量文件则通过频繁的小型更新交付,其版本号与 Windows 安全中心中显示的“安全智能”版本号匹配,此案例为 139135080。
增量文件仅包含最新的更新,这些更新并不在基础文件中。当更新发生时,这两个文件被合并,从而使 Defender 拥有完整的病毒和间谍软件签名。研究发现,基础和增量文件中的签名表被压缩,但并没有加密。微软已经修复了这一过程,使 Defender 现在能够验证签名。
Bar 和 Attias 找到了如何解压缩签名表、替换或更改特定签名,并以不被 Defender 知道的方式重新压缩该表的办法。他们在舞台上用虚拟机进行演示,首先用假冒的签名替换了 LaZagne 密码查找工具的签名,并展示了 Defender 不再阻止该程序的运行。
Defender 还有一个 30000 个“友好”文件签名的白名单,这些文件被认定为良性。研究人员将 Mimikatz 密码窃取工具的签名添加到该列表中,展示了 Mimikatz 现在可以不受干扰地运行。显然,这种对病毒签名的操控可能会使系统面临广泛感染的风险。
但 Bar 和 Attias 还没有结束。为了总结他们的演示,他们重新定义了 Emotet 签名,使 Defender 检测并删除 Windows 系统文件。Defender 不应该在 DOS 下运行,但研究人员找到了一种方法,然后展示了如何通过命令行快速
clash中文版