IExpress
IExpress是Windows 2000和更高版本的操作系统的组件,用于从一组文件中创建自解压缩程序包。此类软件包可用于安装软件。
概述
IExpress(IEXPRESS.EXE
)可用于将自包含的安装程序包(基于INF的安装可执行文件)分发到多台本地或远程Windows计算机。它使用提供的前端界面(IExpress向导)或自定义的自我提取指令(SED)文件创建自解压缩的可执行文件(.EXE)或压缩的Cabinet(.CAB)文件。[1] 可以使用任何纯文本/ ASCII编辑器(例如Notepad)修改SED文件。由IExpress创建的所有自解压缩文件均使用CAB压缩算法,使用MakeCab(MAKECAB.EXE
)工具压缩 ,并使用WExtract(WEXTRACT.EXE
)工具提取。 IEXPRESS.EXE
位于WindowsSYSTEM32
的32位和64位安装文件夹中。可以通过手动导航到相应目录并打开可执行文件(IExpress.exe)或在“开始”菜单的“运行”窗口中键入IExpress来启动前端界面(IExpress向导)。也可以从命令行(Windows命令提示符或批处理文件)中使用它来创建自定义安装程序包,这些程序包将会自动操作:
IEXPRESS /N drive_letter:\directory_name\file_name.SED
IExpress向导界面指导用户完成创建自解压程序包的过程。IExpress会询问用户,程序包应该做什么,提取文件然后运行程序,或者仅提取文件。然后,其允许用户为程序包指定标题,添加确认提示,添加最终用户必须接受以允许提取的许可协议,选择要归档的文件,为进度窗口设置显示选项,以及最后指定要在完成时显示的消息。
如果选择了创建归档文件并运行程序的选项,则将有一个附加步骤,提示用户选择要在提取时运行的程序。
IExpress将根据操作系统类型(32或64位)创建相应的自解压缩存档,而且64位将无法在32位计算机上运行解压缩。[2]
安全性
使用IExpress创建的自解压程序包具有(固有的)漏洞,由于处理安装命令和命令行处理的方式,它们允许任意代码的执行。[3] [4] 此外,由于Windows 用户帐户控制处理安装程序的方式,这些漏洞允许特权提升。[5][6]
更具体地说,此漏洞有两个版本:最明显的是/c:
开关告诉软件包在提取的目录中运行任意命令;另一个是该目录对于任何普通用户都是可读可写的,因此msiexec.exe
可以用攻击有效载荷代替常用命令。[5] 后者已由Microsoft在MS14-049中修复,但是仅通过弃用IExpress的策略解决了前者。[6] 此外,IExpress还可能存在DLL劫持漏洞。[7]
参考资料
- . www.mdgx.com. [2020-07-12]. (原始内容存档于2018-02-06).
- . Stack Overflow. [2020-07-12]. (原始内容存档于2016-03-12).
- . web.archive.org. 2016-08-24 [2020-07-12]. 原始内容存档于2016-08-24.
- Dansimp. . docs.microsoft.com. [2020-07-12]. (原始内容存档于2020-07-15) (中文(中国大陆)).
- . seclists.org. [2020-07-12]. (原始内容存档于2019-04-10).
- . seclists.org. [2020-07-12]. (原始内容存档于2019-08-08).
- . packetstormsecurity.com. [2020-07-12]. (原始内容存档于2020-07-12).