尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Junction点劫持揭秘:RedSun如何用重解析点把Defender的文件写入重定向到System32

Junction点劫持揭秘:RedSun如何用重解析点把Defender的文件写入重定向到System32 Junction点劫持揭秘RedSun如何用重解析点把Defender的文件写入重定向到System32【免费下载链接】RedSunThe Red Sun vulnerability repository项目地址: https://gitcode.com/gh_mirrors/re/RedSunRedSun 是一个专门研究Junction点劫持Junction Point Hijack的 Windows 提权 PoC 项目它利用 Windows Defender 处理云标签文件时的一个怪异行为配合 NTFS 重解析点Junction把杀毒软件自己的文件写入操作重定向到C:\Windows\System32最终让普通用户程序以 System 身份运行。整个过程不用 UAC 弹窗、不用已公开的提权漏洞堪称对文件路径解析这一底层机制的精准利用。一句话说清 RedSun 在做什么杀毒软件以为自己在修复/还原一个恶意文件结果写入路径被攻击者提前埋下的 Junction 点劫持文件最终落在了 System32 里。用作者的话说见 README.md当 Windows Defender 发现一个恶意文件带有云标签时这个本应负责保护的杀毒软件会认为把它写回原位置是个好主意……PoC 利用这个行为覆盖系统文件从而获得管理员权限。也就是说Defender 不是删掉了恶意文件而是把它重新写了一遍——而原位置早已被攻击者用重解析点改道。漏洞背景云文件让 Defender 行为反转要理解这个攻击先了解两个 Windows 机制云文件占位符Cloud PlaceholderWindows 10 之后云盘/同步盘上的文件可以只保存一个占位符文件内容不落地。Defender 遇到这类带云标签的文件时处置逻辑会出现偏差——它不删除而是选择将文件重新写回原路径。Junction目录联接/重解析点NTFS 允许在目录上挂一个快捷入口把该目录下的所有路径访问悄悄指向另一个位置。挂在目录上的这种重解析点就是 Junction对上层应用完全透明。把两者组合起来攻击链就成立了让 Defender 主动去写一个路径 → 这个路径经过 Junction 被重定向 → 写进去的内容由攻击者控制。攻击原理四步走PoC 的完整执行效果如下主进程输出 The red sun shall prevail. 后新弹出的命令行中whoami显示nt authority\system——这就是 Junction点劫持成功的直接证据。第1步伪造恶意文件主动触发 Defender 响应PoC 在%TEMP%下创建临时工作目录写入一个 EICAR 测试病毒文件命名为TieringEngineService.exe见 RedSun.cpp。EICAR 是业界通用的安全测试字符串Defender 的实时保护会立即对其做出响应。第2步等待并锁定 Defender 的影子动作Defender 处置文件时会创建卷影副本VSS。PoC 启动了一个后台线程持续轮询对象管理器\Device命名空间捕捉新出现的HarddiskVolumeShadowCopy设备ShadowCopyFinderThread见 RedSun.cpp。一旦捕获到影子副本PoC 会对副本中的目标文件请求Batch Oplock批量操作锁。Oplock 是文件系统级别的写入通知机制谁接下来要动这个文件谁就必须先向 PoC 发信号——这相当于在 Defender 动手的瞬间安上了一个绊线。第3步给恶意文件打上云标签这是整个攻击最阴的一环。PoC 通过 Windows 云文件 APICfApi注册同步根目录、连接并创建带MARK_IN_SYNC标志的云占位符DoCloudStuff见 RedSun.cpp为恶意文件加上云标签。打上标签后Defender 对该文件的处置策略就从删除变成了写回原位置——这正是漏洞的触发条件。第4步Junction 重解析点劫持写入路径在 Oplock绊线被 Defender 触碰后PoC 开始收网先把工作目录改名腾位重新创建同路径的空目录在该目录上通过FSCTL_SET_REPARSE_POINT设置一个IO_REPARSE_TAG_MOUNT_POINT类型的重解析点目标是\??\C:\Windows\System32见 RedSun.cpp此时 Defender 执行写回原位置路径解析被 Junction 劫持写入流量全部落入 System32。随后 PoC 把自己的可执行文件拷贝到C:\Windows\System32\TieringEngineService.exe并启动它CopyFile COM 实例化见 RedSun.cpp。由于进程直接从系统可信目录 System32 启动Windows 会赋予其更高的信任级别最终提权为NT AUTHORITY\SYSTEM。⚠️ 需要强调PoC 全程依赖 Defender 主动写入文件这一自爆行为如果实时保护关闭代码里会提示 PoC timed out, is real time protection enabled ?攻击链会在第 2 步超时失败。这个 PoC 给安全行业的三点启示处置动作本身也可能成为攻击面传统思路只审计攻击者能写哪里而这个案例里写入方是杀毒软件自己。任何自动化的文件修复/还原逻辑都应校验路径解析结果与预期一致。路径解析要防重解析点劫持关键系统目录如 System32的写入/读取逻辑应显式排除经过 Junction 等重解析点的间接路径例如使用带FILE_OPEN_REPARSE_POINT语义的直查接口并校验目标卷。对安全研究者的警示云同步、VSS、Oplock 等正常特性的组合可能产生意料之外的安全后果安全产品在设计处置策略时需要覆盖这类组合场景。获取与阅读建议项目代码非常精简只有两个核心文件非常适合想学习 Windows 文件系统机制与提权原理的读者逐行研读RedSun.cpp完整 PoC 实现约 780 行注释极少挑战十足README.md项目背景与行为说明LICENSEMIT 许可git clone https://gitcode.com/gh_mirrors/re/RedSun阅读路线建议先从main()入手理解整体流程创建管道 → 写 EICAR → 等 Defender → 打云标签 → 埋 Junction → 收割提权再回头精读ShadowCopyFinderThread的 VSS 轮询与DoCloudStuff的云占位符构造两条线程如何通过全局事件gevent精确同步是这份代码最精彩的部分。【免费下载链接】RedSunThe Red Sun vulnerability repository项目地址: https://gitcode.com/gh_mirrors/re/RedSun创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表