IExpress , компонент Windows 2000 и более поздних версий операционной системы, используется для создания самораспаковывающихся пакетов из набора файлов. Такие пакеты можно использовать для установки программного обеспечения.
IExpress ( IEXPRESS.EXE
) можно использовать для распространения автономных установочных пакетов ( исполняемых файлов установки на основе INF ) на несколько локальных или удаленных компьютеров Windows. Он создает самораспаковывающийся исполняемый файл (.EXE) или сжатый файл Cabinet ( .CAB ), используя либо предоставленный внешний интерфейс (мастер IExpress), либо пользовательский файл директивы самораспаковывания (SED). [1]
Файлы SED можно изменить с помощью любого текстового/ASCII-редактора, например Блокнота . Все самораспаковывающиеся файлы, созданные с помощью IExpress, используют алгоритмы сжатия CAB , сжимаются с помощью MAKECAB.EXE
инструмента Cabinet Maker ( ), [2] и извлекаются с помощью WEXTRACT.EXE
инструмента WExtract ( ).
IEXPRESS.EXE
находится в SYSTEM32
папке как 32-, так и 64-битной установки Windows. Внешний интерфейс (мастер IExpress) можно запустить, вручную перейдя в соответствующий каталог и открыв исполняемый файл (IExpress.exe) или введя IExpress в окне «Выполнить» меню «Пуск». Его также можно использовать из командной строки (командной строки Windows или пакетного файла) для создания пользовательских установочных пакетов, в конечном итоге без присмотра. (автоматизированный режим):
IEXPRESS /N drive_letter:\directory_name\file_name.SED
Интерфейс мастера IExpress проводит пользователя через процесс создания самораспаковывающегося пакета. Он спрашивает, что должен делать пакет: извлечь файлы и затем запустить программу или просто извлечь файлы. Затем он позволяет пользователю указать название пакета, добавить запрос на подтверждение, добавить лицензионное соглашение, которое конечный пользователь должен принять, чтобы разрешить извлечение, выбрать файлы для архивирования, установить параметры отображения для окна выполнения и наконец, укажите сообщение, которое будет отображаться после завершения.
Если выбран вариант создания архива и запуска программы, то будет дополнительный шаг, предлагающий пользователю выбрать программу, которая будет запущена при распаковке.
Самораспаковывающиеся пакеты, созданные с помощью IExpress, имеют (врожденные) уязвимости , которые позволяют выполнять произвольный код из-за способа обработки команды установки и обработки командной строки. [3] [4] Кроме того, из-за того, как контроль учетных записей Windows обрабатывает установщики, эти уязвимости позволяют повысить привилегии . [5] [6]
Точнее, уязвимость существует в двух версиях: наиболее очевидная из них заключается в том, что /c:
переключатель сообщает пакету выполнить произвольную команду в извлеченном каталоге; [6] другое заключается в том, что каталог предсказуем и доступен для записи любому обычному пользователю, так что обычная msiexec.exe
команда может быть заменена полезной нагрузкой для атаки. [5] Последнее было исправлено Microsoft в MS14-049, но первое устраняется только политикой устаревания IExpress. [6] В IExpress также возможен эксплойт для перехвата DLL . [7]