ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

RedSun攻击链全解析:从%TEMP%到System32的5步完整提权路径

RedSun攻击链全解析:从%TEMP%到System32的5步完整提权路径 RedSun攻击链全解析从%TEMP%到System32的5步完整提权路径【免费下载链接】RedSunThe Red Sun vulnerability repository项目地址: https://gitcode.com/gh_mirrors/re/RedSunRedSun 是一个 Windows 本地提权 PoC概念验证项目它利用Windows Defender 实时防护 云文件占位符Cloud Files Placeholder的一个滑稽缺陷当杀毒软件发现带云标签的恶意文件时非但不会删除它反而会把文件重写回原始位置。攻击者只需把原始位置劫持到C:\Windows\System32就能让杀毒软件亲手把 payload 送进系统目录最终以 LocalSystemSYSTEM权限运行代码。一、RedSun 是什么一个杀毒软件亲自递刀的提权 PoC 作者本人在 README.md 里说这个漏洞太好笑了不能只丢代码让人自己猜——因为整个攻击的成败取决于杀毒软件的一个反直觉行为。正常情况下杀毒软件的职责是删掉恶意文件但在 Windows Defender 的这个行为分支里它会确保恶意文件存在。RedSun 正是把这个 Bug 变成了一条完整的提权链上图就是最终效果以普通用户身份运行 PoC片刻之后弹出一个Administrator 权限的控制台whoami返回nt authority\system——本地提权完成。整个攻击的钥匙是三个 Windows 底层机制的组合机制在攻击中的作用Cloud Files 占位符云标签让 Defender 把文件重写回原位VSS 卷影复制 Oplock锁定影子副本中的文件控制 Defender 的写入时机Mount Point挂载点/Reparse Point把临时目录偷梁换柱指向C:\Windows\System32二、核心原理如何让杀毒软件替你写 System32一句话概括把 Defender重写文件的目标路径从一个攻击者可控的临时目录用挂载点悄悄指向 System32。C:\Windows\System32是受保护的系统目录普通用户甚至很多管理员操作都无法直接写入。但 Defender 以高权限运行它的重写文件行为不受此限制。于是问题从我如何写入 System32变成了我如何骗 Defender 去写入 System32——答案就是挂载点Junction/Mount Point在目录上打一个重解析点让C:\...\Temp\RS-xxx这个路径在文件系统层面等价于C:\Windows\System32Defender 对前者的任何写操作都会原样落在后者上。三、5 步提权路径全解析第 1 步在 %TEMP% 埋下诱饵文件PoC 在%TEMP%\RS-随机GUID\下创建目录和文件 RedSun.cpp。文件名刻意取为TieringEngineService.exeWindows 分级管理引擎组件名内容为反病毒行业标准测试串 EICAR——它不感染任何东西但所有杀毒软件都会立刻报警。关键点文件路径必须可预测且可重放因为后面 Defender 要重写的就是它。第 2 步监控 VSS 卷影副本并卡住写入时机 一个后台线程通过NtQueryDirectoryObject扫描内核对象目录\Device等待出现新的卷影副本HarddiskVolumeShadowCopy由 Defender 的隔离/回滚机制触发创建RedSun.cpp。找到后线程打开影子副本中的那份恶意文件并对它发出FSCTL_REQUEST_BATCH_OPLOCK批量独占锁请求。这把锁像绊马索Defender 一旦要从影子副本恢复/重写该文件Oplock 就会被打断PoC 主流程借此精确掌握杀毒软件要动手了的瞬间。第 3 步注册云同步根给文件贴上云标签 ☁️这是整个漏洞的引爆器。DoCloudStuff函数调用 Cloud Files API RedSun.cppCfRegisterSyncRoot把临时目录注册为云同步根Provider 名就叫SERIOUSLYMSFT颇有挑衅意味CfCreatePlaceholders为恶意文件创建占位符并打上SUPERSEDE MARK_IN_SYNC标志。从此这个 EICAR 文件在 Defender 眼中不再是普通恶意文件而是一个有云端归属的同步文件——于是那个滑稽的行为分支被激活Defender 的处置动作变成把它写回原始位置而不是删除。第 4 步挂载点偷梁换柱临时目录指向 System32 在确认 Defender 即将重写的窗口期PoC 对临时目录执行FSCTL_SET_REPARSE_POINT设置IO_REPARSE_TAG_MOUNT_POINT挂载点目标是C:\Windows\System32RedSun.cpp。此时文件系统视角下C:\Users\xxx\AppData\Local\Temp\RS-GUID\ → 实际指向 C:\Windows\System32\Defender 随后好心地把恶意文件重写回RS-GUID\TieringEngineService.exe时数据实际落盘到C:\Windows\System32\TieringEngineService.exe。PoC 随后用一个FILE_SUPERSEDE重试循环最多 1000 次、间隔 20msRedSun.cpp 确认文件已成功被替换——这一步就是等杀毒软件把刀递到手。第 5 步替换 payload拉起 SYSTEM 服务收割成果 文件就位后PoC 把自己完整拷贝到System32\TieringEngineService.exe然后调用CoCreateInstanceCLSCTX_LOCAL_SERVER激活分级管理引擎的 COM 本地服务 RedSun.cpp。该服务以LocalSystem身份运行加载的却是被替换的二进制——提权完成。最后一步是看得见的果实IsRunningAsLocalSystem确认当前已是 SYSTEM 后通过命名管道\\??\pipe\REDSUN拿到原用户的会话 ID用DuplicateTokenEx CreateProcessAsUser在该会话中启动conhost.exeRedSun.cpp——也就是开头截图里那个凭空出现的管理员控制台。四、新手视角的启示与防御建议 ️这个 PoC 对安全从业者最大的价值不是代码本身而是它揭示的信任边界问题杀毒软件的处置逻辑必须是幂等且保守的——检测到恶意 → 删除/隔离绝不该反向确保其存在高权限进程的写操作目标必须校验真实路径解析挂载点、符号链接后的最终位置否则任何重定向原语都能变成提权跳板占位符/云同步等便捷机制会改变安全组件的决策路径引入新攻击面的同时也要给安全组件增加新的异常行为审查。对普通用户的防御建议✅ 及时更新 Windows 与 Windows Defender 引擎此类缺陷通常以补丁形式修复✅ 用sfc /scannow和DISM定期校验系统文件完整性✅ 企业环境可启用WDACWindows Defender Application Control限制 System32 中允许执行的二进制签名来源。五、项目文件一览文件说明RedSun.cpp完整提权 PoC 源码约 780 行含 VSS/Oplock/云占位符/挂载点全部技巧README.md项目说明与作者对漏洞行为的吐槽redsun.jpg提权成功演示截图SYSTEM 控制台LICENSEMIT 开源协议⚠️ 本文仅作安全研究与技术科普用途。该 PoC 会实际篡改 System32 系统文件请在已打补丁的虚拟机中研究切勿在生产或真实环境中运行。【免费下载链接】RedSunThe Red Sun vulnerability repository项目地址: https://gitcode.com/gh_mirrors/re/RedSun创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表