wmic调用xsl文件的分析与利用

安全脉搏SecPulse.Com独家发文,如需转载,请先联系授权。

0x00 前言

Casey Smith@subTee在博客分享的一个技巧,使用wmic能够从本地或从URL调用XSL(可扩展样式表语言)脚本。这个发现很有用,不仅可以作为一种白名单绕过的方法,而且可以作为payload来使用(从URL调用XSL脚本,利用XSL执行exe、shellcode、powershell脚本)。

本文将要对该项技术进行测试,结合自己的经验对其扩展,分享一个后门利用的思路,介绍同XXE漏洞结合的使用方法。

博客地址:

https://subt0x11.blogspot.ca/2018/04/wmicexe-whitelisting-bypass-hacking.html?m=1

0x01 简介

本文将要介绍以下内容:

测试Casey Smith的方法

脚本分析,分析后门利用思路

编写后门利用脚本

同XXE漏洞的结合

0x02 测试Casey Smith的方法

本地:

远程:

xsl文件内容如下:

注:

代码来源于https://gist.githubusercontent.com/caseysmithrc/68924cabbeca1285d2941298a5b91c24/raw/8574e0c019b17d84028833220ed0b30cf9eea84b/minimalist.xsl

0x03 脚本分析

查看xsl文件格式,发现类似于之前研究过的利用脚本(使用msxsl.exe执行xsl脚本,也是学习自Casey Smith),内容如下:

注:

代码来源于https://gist.github.com/subTee/47f16d60efc9f7cfefd62fb7a712ec8d

我对该技术的分析文章链接:

https://3gstudent.github.io/3gstudent.github.io/Use-msxsl-to-bypass-AppLocker/

经测试,文章《Use msxsl to bypass AppLocker》中使用的xsl脚本和xml脚本wmic均支持,只是对后缀名有要求(必须是xsl文件)

实际测试:

执行:

执行失败,提示

脚本内容不变,后缀名改为xsl,再次执行:

执行成功,成功弹出计算器,如下图

充: xsl和xml文件的异同

相同点:

语法规则基本相同,仅声明方式不同(以上测试代码未体现)

不同点:

用途不同,xml用于承载数据,xsl用户设置数据的格式

简单理解:

通过使用XSL可以向XML文件添加显示信息,使用XSL显示XML

0x04 后门利用思路

通过学习Casey Smith在博客中分享的研究思路,我想到了一个后门利用的思路

对于路径下的xsl文件

例如:

同wmic命令的输出格式相对应,例如:

wmic os get /format:csv

wmic os get /format:htable

wmic os get /format:texttable

那么,使用wmic命令在输出格式时是否会加载对应名称的xsl文件呢?

答案是肯定的

挑选其中的csv.xsl,内容如下:

尝试在代码中添加payload,修改后的内容如下:

替换原文件,需要管理员权限

注:

csv.xsl的路径同系统语言版本有关,如果是英文系统,路径为,如果是中文系统,路径为

测试使用wmic的输出格式命令:

执行payload,如下图

x05 同XXE漏洞的结合

XXE是XML External Entity attack的缩写

前不久一个和Windows相关的XXE漏洞:CVE-2018-0878

poc地址如下:

https://www.exploit-db.com/exploits/44352/

同样可在wmic命令上触发

漏洞测试:

1、使用kali linux建立http服务器

2、kali linux目录下创建文件xxe.xml

内容如下:

注:

kali linux的IP为192.168.62.140

3、创建payload.xsl

内容如下:

4、windows系统使用wmic加载该xsl文件

执行失败,提示

然而,漏洞成功触发,服务器获得文件的内容,如下图

x06 小结

本文测试了使用wmic从本地或从URL调用XSL文件的方法,分享了一个后门利用的思路,并结合CVE-2018-0878对XXE漏洞进行了测试。 站在防御的角度,如果wmic.exe发起了网络连接,那么很有可能是加载了特殊xsl文件的原因,值得注意。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180505G0DDV800?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券