
7-Zip RAR5 ADSMotW完整链Exploitarium如何篡改NTFS数据流并移除Zone标识【免费下载链接】exploitariumA single archive of public exploit PoCs and vulnerability research writeups. At the time I post these, none have been reported. Feel free to report them yourself and take credit for the CVE if handed out lulz. Please do not abuse these. I do this so to allure people into the field, and Ive always found this is the most efficient way.项目地址: https://gitcode.com/GitHub_Trending/ex/exploitarium在 Exploitarium 漏洞研究档案中7zip-rar5-motw-chain-poc 收录了一条针对 7-Zip 26.01Windows的 RAR5 解压缩完整利用链攻击者仅凭一个精心构造的压缩包就能在解压时篡改目标文件的可见内容并把 Windows 的来自网络安全标记MotW / Zone.Identifier 数据流替换成任意内容。本文将用通俗的方式拆解这条链NTFS 数据流是什么、7-Zip 的防护为什么会被绕过、PoC 是如何一步步验证的。1️⃣ 背景NTFS 数据流与来自网络标记Windows 的 NTFS 文件系统允许一个文件拥有多个备用数据流Alternate Data StreamADS写法类似invoice.docx:Zone.Identifier其中Zone.Identifier就是著名的Mark-of-the-WebMotW标记。当文件从浏览器下载时Windows 会写入ZoneId3互联网区域SmartScreen、受控文件夹访问等安全机制正是靠它识别外来文件。关键点在于NTFS 对数据流名有容错解析规则——file:$DATA等价于file主数据流file:Zone.Identifier:$DATA等价于file:Zone.Identifier后缀:$DATA只是默认流类型的显式写法操作系统会自动归一化到同一条数据流。记住这一点后面的绕过就一目了然了。2️⃣ 漏洞原理一条防护两种流名一个盲区7-Zip 的 MotW 传播逻辑7-Zip 有个贴心行为如果压缩包本身带有互联网区域的Zone.Identifier标记解压出的文件会继承这个标记防止恶意文件借解压洗白身份。同时7-Zip 内置了一道防护——精确匹配并屏蔽压缩包内提供的Zone.Identifier流避免压缩包直接篡改解压文件的标记。盲点精确字符串匹配防护逻辑只识别流名Zone.Identifier而攻击者在 RAR5 中塞入的流名是invoice.docx:Zone.Identifier:$DATA对 7-Zip 的字符串比较来说这是另一个名字防护形同虚设但对 NTFS 来说:$DATA后缀会被归一化最终写的正是invoice.docx:Zone.Identifier这条流。于是压缩包携带的标记替换了 7-Zip 传播的原始标记。PoC 里演示的替换效果阶段Zone.Identifier 内容压缩包攻击者伪造ZoneId3互联网区域7-Zip 本应传播给解压文件ZoneId3实际写入被流名绕过ZoneId0本地信任区域文件被洗白成仿佛从未上过网的本地文件——这就是 MotW 完整链的核心危害。同一机制的第二次利用改写文件内容链的另一半更直白RAR5 支持STMService服务记录来存储备用流。PoC 额外塞入一条名为invoice.docx::$DATA的 STM 流载荷是攻击者可控的字节。::$DATA指向 NTFS 的主数据流解压时它覆盖掉正常文件条目的内容——最终磁盘上的invoice.docx不再是压缩包里的良性预览而是攻击者指定的最终字节。至此一个压缩包同时控制了两样东西你看到的文件内容和Windows 对这个文件的信任判定。3️⃣ PoC 验证一条命令跑完全链完整实现见 poc.py纯 Python约 230 行无需第三方依赖它在 Windows 上自动完成 8 步验证在内存中手工构造最小 RAR5 结构含Rar!魔数、vint 编码、CRC32 块头写入正常文件条目invoice.docx良性字节追加 STM 流::$DATA攻击者最终字节追加 STM 流:Zone.Identifier:$DATA攻击者 MotW 字节给压缩包本体打上ZoneId3标记调用 7-Zip 解压开启区域标记传播校验解压文件内容 攻击者字节校验解压文件的Zone.Identifier 攻击者写入的ZoneId0。运行方式Windows PowerShellpython .\poc.py --sevenzip C:\Program Files\7-Zip\7z.exe全链成功时的关键输出[] final visible content: ATTACKER final visible bytes from ::$DATA stream [] final Zone.Identifier: [ZoneTransfer]\r\nZoneId0 [] VULNERABLE: full chain verified4️⃣ 相关文件与资料文件说明7zip-rar5-motw-chain-poc/README.md官方说明测试目标、运行方法、原理与文件清单7zip-rar5-motw-chain-poc/poc.py自包含 PoC构造恶意 RAR5 并全自动验证完整链README.mdExploitarium 总目录与归档说明cves.md本仓库研究目前已获得的 CVE 编号清单5️⃣ 防御启示给普通用户和安全工程师不要解压来源不明的压缩包这条链的前提是你主动解压压缩包本身可以伪装成发票、合同等任何日常文件PoC 里就故意用了invoice.docx检查解压后的区域标记ZoneId0且来源未知的文件要格外警惕企业环境受控文件夹访问Controlled Folder Access与 AppLocker 对本地信任区域文件的拦截力度不同MotW 被移除后这些防线会减弱需关注解压类软件的更新日志研发视角任何涉及流名、路径名的安全校验都应先做**规范化normalization**再比较精确字符串匹配是最经典的绕过温床。⚠️ 免责声明Exploitarium 项目方明确要求请勿将仓库中任何 PoC 用于恶意目的。这是一份善意的公开漏洞研究目的是吸引更多人走进安全领域。按项目方说法发布时这些漏洞尚未被上报读者可自行提交报告并申请 CVE 荣誉。【免费下载链接】exploitariumA single archive of public exploit PoCs and vulnerability research writeups. At the time I post these, none have been reported. Feel free to report them yourself and take credit for the CVE if handed out lulz. Please do not abuse these. I do this so to allure people into the field, and Ive always found this is the most efficient way.项目地址: https://gitcode.com/GitHub_Trending/ex/exploitarium创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考