
RedSun Windows权限提升漏洞剖析FSCTL_REQUEST_BATCH_OPLOCK批量Oplock文件锁定大师课【免费下载链接】RedSunThe Red Sun vulnerability repository项目地址: https://gitcode.com/gh_mirrors/re/RedSunRedSun 是一个 Windows 本地权限提升漏洞 PoC 仓库它演示了如何利用杀毒软件Windows Defender对云标签恶意文件自动回写原始位置的诡异行为配合FSCTL_REQUEST_BATCH_OPLOCK批量Oplock文件锁定技巧最终覆写系统文件并获得 SYSTEM 管理员权限。本大师课将带你用 3 个步骤看懂这套批处理Oplock利用链的完整原理。 项目速览一个自成一派的漏洞仓库整个仓库非常精简只有 4 个文件却完整展示了从文件锁定到提权的全过程文件作用README.md漏洞背景说明AV 会好心把恶意文件重写回原位置RedSun.cpp完整的漏洞利用 PoC 源码redsun.jpg漏洞触发成功后的运行效果截图LICENSEMIT 开源协议作者在 README.md 中吐槽道反恶意软件产品的本意应该是删除恶意文件而不是确保它在那里——这正是本漏洞的幽默之处。 30 秒搞懂什么是 Oplock 与批量文件锁定Oplock机会锁是 Windows 文件系统的缓存优化机制一个进程打开文件时可以向系统申请锁期间其他进程无法随意读写从而允许该进程大胆地把文件内容缓存在内存里。Oplock 分为几个级别从强到弱依次是独占锁 → 转换锁 → 缓存锁 →批量锁Batch Oplock。其中批量Oplock是最轻的一级锁通常只授予单次只读操作任何冲突访问都会立即打破它因此非常适合当作**抢时间窗口的同步信号**——这正是 RedSun 的精髓。在 Windows 中批量Oplock 通过DeviceIoControl函数、传入控制码FSCTL_REQUEST_BATCH_OPLOCK来发起。PoC 采用异步OVERLAPPED方式发起请求后锁请求会挂起直到系统授予或打破这把锁——等于在关键时机埋下了一颗定时炸弹。 漏洞原理杀毒软件的好心如何被利用利用链可以概括为 4 个环节 诱饵植入PoC 在临时目录创建一个名为TieringEngineService.exe的文件写入 EICAR 测试病毒串并注册为云同步占位文件Cloud Placeholder让 Defender 的云端响应机制认定它带有云标签影子副本监视AV 在处理文件前会创建 VSS 卷影副本PoC 的后台线程持续扫描对象管理器目录一旦捕获到新的HarddiskVolumeShadowCopy设备就对其中的文件发起批量Oplock锁定请求路径偷换把原始目录移走在原路径重建一个挂载点Mount Point重解析点指向\??\C:\Windows\System32——Defender 以为它回写的原位置其实已经指向了系统目录覆写提权AV 把文件重写回原位置的动作实际落盘到了 System32PoC 随后把自己的副本覆盖到TieringEngineService.exe并通过 COM 本地服务方式启动它以SYSTEM 权限运行。 拆解源码FSCTL_REQUEST_BATCH_OPLOCK 的 3 个关键落点① 阴影副本监视线程——锁定时间窗口线程 ShadowCopyFinderThread 打开\Device对象目录循环枚举设备对象等待 AV 创建的卷影副本出现。捕获后代码在第 402 行发起批量Oplock异步请求锁被打破的瞬间恰好就是 AV 执行回写文件的瞬间批量Oplock请求发起RedSun.cpp#L400-L407② 重建文件并再次申请批量Oplock主流程把临时工作目录挪走、重建为指向 System32 的挂载点重解析点数据在 RedSun.cpp#L713-L729 构造然后以FILE_SUPERSEDE方式重建伪原始文件再次发起批量Oplock请求并映射文件视图为 AV 的回写动作设置好同步闸门挂载点重解析点写入RedSun.cpp#L655-L729第二次批量Oplock请求RedSun.cpp#L640-L684③ 云占位文件注册——触发 AV 回写机制DoCloudStuff 通过CfRegisterSyncRootCfCreatePlaceholders把诱饵文件注册成云端同步占位文件provider 名为SERIOUSLYMSFT可见作者的恶趣味这是让 Defender 执行重写文件回原位置行为的关键开关。④ 覆盖系统文件并借 COM 提权最后的循环不断尝试用FILE_SUPERSEDE打开C:\Windows\System32\TieringEngineService.exeRedSun.cpp#L740-L752成功后将自己的可执行文件复制过去并调用 LaunchTierManagementEng 通过 COM 以本地服务方式拉起——此时进程运行在 SYSTEM 上下文中提权完成 。️ 安全启示如何防范这类文件锁定攻击关注云标签文件的 AV 行为带云同步占位属性的文件在受感染时的处置路径值得审计重写回原位置这类行为应确保目标路径可信警惕挂载点劫持监控C:\Windows\System32等关键目录附近是否被非法创建重解析点/挂载点卷影副本滥用检测短时间内异常的 VSS 快照创建与设备枚举行为可作为检测信号最小权限原则即使系统文件被替换若 COM 服务的启动权限受控攻击链也会在此中断。 获取源码动手学习在Windows 环境下克隆仓库即可阅读完整 PoC请务必在隔离沙箱中学习切勿在真实系统运行git clone https://gitcode.com/gh_mirrors/re/RedSun从 RedSun.cpp 的 main 函数 开始顺着读你会发现一把最轻的批量Oplock锁恰恰是撬动整个提权链条的那根杠杆。【免费下载链接】RedSunThe Red Sun vulnerability repository项目地址: https://gitcode.com/gh_mirrors/re/RedSun创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考