☰
Cloud Files API实战:RedSun如何用CfCreatePlaceholders伪造恶意占位文件骗过Defender
2026/10/7 17:32:47 网站建设 项目流程

Cloud Files API实战:RedSun如何用CfCreatePlaceholders伪造恶意占位文件骗过Defender

【免费下载链接】RedSunThe Red Sun vulnerability repository项目地址: https://gitcode.com/gh_mirrors/re/RedSun

RedSun 是一个 Windows 安全漏洞 PoC 仓库,核心思路是借助 Cloud Files API 的CfCreatePlaceholders接口伪造恶意占位文件(云标签文件),反向利用 Windows Defender 对"带云标记文件"的错误处理逻辑,最终覆盖系统文件并提权至管理员。🔍

整个 PoC 只有一个 C++ 源文件,却把 Defender 的行为玩出了花——本指南带你一步步看懂它"骗"杀毒软件的完整原理,无需逐行读懂源码。

📌 一句话看懂 RedSun 漏洞

用作者自己的话说:Windows Defender 一旦发现某个恶意文件身上带有"云标签"(cloud tag),出于某种"神奇且荒谬"的逻辑,它不会删除文件,而是会把文件重写回原位置。PoC 正是滥用这一行为,把恶意可执行文件写进C:\Windows\System32,从而获得管理员权限。

作者在 README.md 中的吐槽也很直白:

反恶意软件产品应该删除恶意文件,而不是确保它们存在。

☁️ 先搞懂:Cloud Files API 与"占位文件"是什么?

Windows 10/11 的"按需文件"(Files On-Demand)机制,允许同步应用(如 OneDrive)在本地只保存一个占位文件(Placeholder):

  • 本地只留文件元数据(大小、时间戳、云身份 ID),真实内容存放在"云端";
  • 用户访问时才按需"水合"(hydration)拉回真实内容;
  • 第三方同步引擎通过Cloud Files API(头文件cfapi.h)与系统交互,其中三个关键函数:
    • CfRegisterSyncRoot:把一个文件夹注册为同步根目录;
    • CfConnectSyncRoot:建立同步引擎与系统的连接;
    • CfCreatePlaceholders:批量创建带云标记的占位文件。

RedSun 的 DoCloudStuff 函数 就完整演示了这套流程:先用SERIOUSLYMSFT这个名字注册一个"假同步引擎",再用CfCreatePlaceholders创建占位文件,并打上CF_PLACEHOLDER_CREATE_FLAG_MARK_IN_SYNC标志,让系统认为"文件已在云端同步就绪"。

这就是欺骗的起点:Defender 看到"恶意文件 = 云同步文件",于是选择把它重写回原位置,而不是删除。⚠️

🛠️ 攻击链路拆解:RedSun 的五步棋

RedSun.cpp 的 main 函数 把整个攻击串成了 5 步:

第 1 步:伪造"诱饵"恶意文件

在%TEMP%\RS-<随机GUID>工作目录下创建TieringEngineService.exe,写入业界标准的 EICAR 杀毒测试字符串(RedSun.cpp)。EICAR 是通用 AV 测试样本,所有主流杀毒软件都会识别它。

第 2 步:主动触发 Defender 响应

PoC 以可执行权限再次打开该文件(RedSun.cpp),强制触发实时防护。此时 Defender 开始"处置"——正常预期是隔离删除,但由于文件即将被标记为云占位文件,Defender 反而把它重写回来。

第 3 步:后台线程盯住卷影副本

Defender 处置文件时会用到卷影副本(VSS,即HarddiskVolumeShadowCopy设备)。ShadowCopyFinderThread 在后台持续枚举\Device对象目录,一旦发现新的卷影副本出现,就对该文件请求batch oplock(FSCTL_REQUEST_BATCH_OPLOCK,RedSun.cpp)——这是同步引擎合法使用的文件锁,借此"卡住"Defender 文件操作的时机窗口。

第 4 步:把目录"调包"成系统目录

关键手法在 RedSun.cpp:PoC 把工作目录改造成指向C:\Windows\System32的目录联接(Junction / 挂载点重解析)。从这一步起,写入"工作目录"里的任何文件,实际都会落在 System32。

第 5 步:写入 System32 并以 SYSTEM 执行

PoC 轮询用FILE_SUPERSEDE方式打开C:\Windows\System32\TieringEngineService.exe(RedSun.cpp),把自己的副本复制进去,再激活"Tier Management Engine" COM 服务(RedSun.cpp)。至此,恶意代码以 SYSTEM 身份进入系统目录——权限提升完成。🏁

🧪 本地复现:RedSun PoC 运行效果

⚠️安全提示:本 PoC 会真实覆写C:\Windows\System32下的文件并提升权限,请务必只在一次性虚拟机或隔离环境中测试,切勿在生产机器上运行。

上图就是官方文档中展示的 PoC 运行效果:控制台依次打印The sun is shinning...和The red sun shall prevail.,随后新开的管理员窗口里whoami显示nt authority\system——提权成功。

复现要点(依赖库参考 RedSun.cpp):

  1. Windows 10/11 环境,用 MSVC 编译,链接synchronization.lib、sas.lib、ntdll.lib、CldApi.lib;
  2. 确保 Defender实时保护开启——PoC 会等待 AV 响应,最长 120 秒,超时会提示is real time protection enabled ?(RedSun.cpp);
  3. 运行后若看到The red sun shall prevail.,说明恶意占位文件已成功骗过 Defender 并落入 System32。

🛡️ 启示:这个漏洞教会了我们什么?

  • 杀毒软件处理"云文件"的逻辑必须谨慎:Defender 对带云标签的恶意文件执行了"重写回原位置",与"隔离/删除"的本职背道而驰,这正是本漏洞的根源;
  • 占位文件是合法功能,但可被伪装:Cloud Files API 本为 OneDrive 等同步场景设计,攻击者却能伪造"假同步引擎"身份(如本 PoC 的SERIOUSLYMSFT),任何信任云标签的安全产品都可能被类似手法绕过;
  • 保持系统更新:此类逻辑缺陷通常会在后续 Defender 引擎或系统更新中修复,普通用户最有效的防护就是及时更新 Windows 与 Defender 签名;
  • 减少不必要的第三方同步盘挂载:多余的"同步盘"会增加系统目录被异常"水合"篡改的风险面。

📚 项目资料速查

文件说明
RedSun.cpp完整 PoC 源码(C++,Windows 平台)
RedSun.cppDoCloudStuff:注册同步根 +CfCreatePlaceholders创建占位文件
RedSun.cpp卷影副本监控与 batch oplock 线程
RedSun.cpp目录联接(Junction)指向 System32
RedSun.cpp轮询写入 System32 恶意可执行文件
README.md漏洞原理说明与运行效果图
LICENSE开源协议

【免费下载链接】RedSunThe Red Sun vulnerability repository项目地址: https://gitcode.com/gh_mirrors/re/RedSun

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询