Windows怎么知道文件是下载的还是本地的?极其简单的7Zip漏洞

360影视 欧美动漫 2025-04-23 07:24 3

摘要:其实Windows是通过网络标记(MotW)的安全机制来判断的。当文件通过浏览器、邮件客户端、某些网络程序下载时,Windows 会在文件的 NTFS ADS 中写入一个名为 Zone.Identifier 的流,记录文件来源(如来自互联网、局域网等)。

我们经常双击打开网上下载回来的文件时,就会跳出Windows SmartScreen 警告。系统知道这个文件是来自网络,关键它是怎么知道的呢?

其实Windows是通过网络标记(MotW) 的安全机制来判断的。当文件通过浏览器、邮件客户端、某些网络程序下载时,Windows 会在文件的 NTFS ADS 中写入一个名为 Zone.Identifier 的流,记录文件来源(如来自互联网、局域网等)。

不用管这些专业名词,我给你举个例子。我有两个文件,一个是2.7z我本地压缩的,我传到网上又下载回来了,改名叫1.7z。

我在powershell下执行:Get-item 1.7z -stream *,你会看到1.7z有Zone.Identifier流。我们看下Zone.Identifier流里有什么东西。Get-content 1.7z -stream Zone.Identifier

上图中的ZoneId=3 # 3 表示来自互联网,还清楚标明了来自哪个网站。鼠标右键点击,它的文件属性中显示“此文件来自其他计算机,可能被阻止以保护此计算机”(如下图),运行时就会触发安全警告。

同样的方法,我们再来看下本地2.7z,其实它和1.7z是一个压缩包,不过没有上传再下载,它就没有Zone.Identifier。

CVE-2025-0411这个漏洞极其简单,它是7zip的锅。你把一个exe文件用7zp的24.09以前的版本压缩两次就行了,用户下载回来后双击就没有警告了,绕过了WindowsWindows SmartScreen 筛选,Windows以为它是个本地文件。也不知是谁这么简单就发现了,混了个我一辈子也得不来的CVE编号。

具体测试过程你可以看下「链接」,这里还有动画演示。

来源:海阳顶端

相关推荐