IExpress , un componente de Windows 2000 y versiones posteriores del sistema operativo, se utiliza para crear paquetes autoextraíbles a partir de un conjunto de archivos. Estos paquetes se pueden utilizar para instalar software.
IExpress ( IEXPRESS.EXE
) se puede utilizar para distribuir paquetes de instalación independientes ( ejecutables de instalación basados en INF ) a múltiples computadoras Windows locales o remotas. Crea un archivo ejecutable autoextraíble (.EXE) o un archivo Cabinet comprimido ( .CAB ) utilizando la interfaz frontal proporcionada (IExpress Wizard) o un archivo de directiva de autoextracción (SED) personalizado. [1]
Los archivos SED se pueden modificar con cualquier editor de texto plano/ASCII, como el Bloc de notas . Todos los archivos autoextraíbles creados por IExpress utilizan algoritmos de compresión CABMAKECAB.EXE
, se comprimen utilizando la herramienta Cabinet Maker ( ), [2] y se extraen utilizando la herramienta WExtract ( WEXTRACT.EXE
).
IEXPRESS.EXE
se encuentra en la SYSTEM32
carpeta de instalaciones de Windows de 32 y 64 bits. La interfaz de usuario (IExpress Wizard) se puede iniciar navegando manualmente al directorio respectivo y abriendo el ejecutable (IExpress.exe), o escribiendo IExpress en la ventana Ejecutar del menú Inicio. También se puede utilizar desde la línea de comandos (Símbolo del sistema de Windows o archivo por lotes) para crear paquetes de instalación personalizados, eventualmente desatendidos. (operación automatizada):
IEXPRESS /N drive_letter:\directory_name\file_name.SED
La interfaz IExpress Wizard guía al usuario a través del proceso de creación de un paquete autoextraíble. Pregunta qué debe hacer el paquete: extraer archivos y luego ejecutar un programa, o simplemente extraer archivos. Luego permite al usuario especificar un título para el paquete, agregar un mensaje de confirmación, agregar un acuerdo de licencia que el usuario final debe aceptar para permitir la extracción, seleccionar archivos para archivar, configurar opciones de visualización para la ventana de progreso y finalmente, especifique un mensaje para mostrar al finalizar.
Si se selecciona la opción de crear un archivo y ejecutar un programa, habrá un paso adicional que solicitará al usuario que seleccione el programa que se ejecutará tras la extracción.
Los paquetes autoextraíbles creados con IExpress tienen vulnerabilidades (inherentes) que permiten la ejecución de código arbitrario debido a la forma en que manejan su comando de instalación y su procesamiento de línea de comando. [3] [4] Además, debido a la forma en que el Control de cuentas de usuario de Windows maneja los instaladores, estas vulnerabilidades permiten una escalada de privilegios . [5] [6]
Más específicamente, la vulnerabilidad viene en dos versiones: la más obvia es que un /c:
interruptor le dice al paquete que ejecute un comando arbitrario en el directorio extraído; [6] la otra es que cualquier usuario común y corriente puede predecir y escribir en el directorio, de modo que el msiexec.exe
comando habitual puede ser reemplazado por una carga útil de ataque. [5] Microsoft solucionó este último problema en MS14-049, pero el primero solo se aborda mediante una política para desaprobar IExpress. [6] También existe una posible explotación de secuestro de DLL con IExpress. [7]