我今天与我的电子邮件托管商的一名工作人员进行了交谈,因为该托管商刚刚阻止了我的部分客户的电子邮件,因为其中包含 ZIP 文件。
我询问邮件被拦截的原因后,对方回复说,客户给我发了一个可执行的zip文件,因为现在带木马的邮件比较多,所以所有带可执行zip文件的邮件都会被自动拦截。
虽然我知道邮寄可执行 zip 文件 99% 肯定是木马,但我还是感到很困惑。可执行(自解压)ZIP 存档不会是 *.zip 文件,而一定是 *.exe 文件,对吗?我回复了工作人员,并告诉他 - 据我所知 - 世界上没有任何操作系统会直接将 *.zip 文件视为程序并执行。
他回复说(无意冒犯),我可能缺乏大量信息。我现在大致翻译一下他的德语邮件:在不同版本的 ms-windows 中,zip 文件将直接显示为文件夹。在当前版本的 osX 中,将直接提取附加的 zip 文件。在这两种情况下,都会扫描 zip 文件以查找带有附加指令的特殊标头。存储在那里的可执行代码当然会在未经用户许可的情况下执行。
那。我感到很困惑。“显示存档内容列表”怎么会等同于从存档中提取和执行内容?因为他暗示情况就是这样。虽然我认为像苹果邮件那样自动提取文件是绝对不行的,但这仍然不会执行任何操作。还是会执行?那个家伙一直都在处理 zip 文件,难道他比我更了解它们吗?
答案1
一些想法。我同意你的观点,但我明白为什么服务提供商会选择阻止 .zip 文件。我找不到太多关于其中一些的信息,如果我找到更多信息,我会更新。
有这样一种东西拉链炸弹。
ZIP 文件格式支持各种压缩格式 - 指定为 16 位值。许多操作系统会为该方法加载一个库来处理压缩和解压缩。看起来无法指定自定义库。Windows
.hlp
存在这样的漏洞,即.hlp
文件可能包含用于显示目的的自定义 DLL,但看起来无法通过 来实现.zip
。Windows 资源管理器将读取某些 *.ini 文件(以及其他文件,具体取决于 Windows 版本 IIRC),并可能基于它们运行程序。Windows 98 允许您使用此功能执行很多操作,而我相信在更高版本中它受到限制。我无法找到任何信息,即如果打开 zip 存档中的 Desktop.ini 文件,资源管理器是否会处理该文件。但这可能是一个攻击媒介。
从技术上讲,Windows 打开的任何具有可识别扩展名的文件都会启动一个程序。对于 .zip 文件,默认情况下启动的是 explorer.exe,但如果用户安装了其他 ZIP 应用程序,则可能是另一个程序。如果攻击者知道用户安装了 WinZip,并且知道 WinZip 存在漏洞,则该用户可能成为攻击目标。
SFX zip 显然可能是恶意的。
答案2
Windows(95 OS2?98?我?)添加了“zip 文件夹”功能,据我所知,该功能至今仍保留。它允许您将 zip 存档视为文件夹,因此对于用户而言,它们看起来就像是普通文件。这是最初的目的。
不幸的是,用户喜欢点击普通文件夹内的内容,因为他们可以看到它们。当他们这样做时,系统会使用内置的 zip 提取库将文件提取到临时目录,然后执行它。然后,系统防病毒软件需要拦截此操作并阻止使用带有病毒的文件的尝试,无论是 EXE 还是恶意 Excel 电子表格宏还是其他什么。
我能想到的唯一其他真正问题是,当用户单击 zip 文件使其显示为文件夹时,Windows 自己的 zip 库中可能存在安全漏洞,因为我猜他们不太想让它“更好”,而更愿意开发 Windows 的其他方面。他们自然会在发现漏洞时修补漏洞,但这可能会导致管理员对集成的 zip 文件夹功能产生固有的不信任。
答案3
Windows 有 zip 文件执行,这不仅是 win9X 和 NT,甚至现在的 windows 7、8、10 也存在。这是 windows 的一个“功能”,直到它被识别为漏洞。
另外,exe 只是一个扩展名。Windows 查看扩展名来确定如何处理文件,但任何文件都可以是可执行的。(只要它包含可执行代码)。
在 zip 文件提取和执行中,一种流行的开发是包含一个本身不具有恶意代码的 shell 脚本或 java 脚本(因此在程序开始运行时您的病毒扫描会将其传递出去),然后它会下载并执行恶意代码。
我昨天向 Google 上传了一些恶意脚本,尽管 Google 已将其标记为潜在危险,但还是允许发送这些代码。(在我看来,Google 的安全性通常都很好,所以我想测试一下。)
据我所知,MS 并不认为可执行 zip 文件是一个漏洞,几十年来它的存在已众所周知。可能有也可能没有 Windows 策略编辑来默认允许或禁止执行压缩文件(这就是我最终来到此页面的原因,如果我找到了,我会告诉你)。
Windows 的其他解压缩实用程序都知道,在解压缩文件时不要执行代码。例如 7zip。
答案4
作为我正在做的网络安全课程的一部分,我们遇到了一个案例,其中 .zip 文件包含一个 .pif(程序信息文件),它似乎覆盖了指定的文件类型,从而覆盖了用于打开 zip 的程序。
如上所述,文件扩展名主要是一种标准,而不是具有主动效果的东西,文件读取方式完全取决于读取它的程序。例如,两个不常见的程序可能会意外地将相同的文件扩展名用于完全不同的文件格式,而使用错误的程序可能会导致它将文件检测为已损坏。许多文件类型甚至包含额外的元数据,更具体地说明数据采用什么格式,以处理为不同程序或给定程序的版本创建的文件。