CScript 可以用来做无文件攻击
cscript
适用范围:Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012
启动脚本以在命令行环境中运行。
重要
执行该任务无需具有管理凭据。 因此,作为安全方面的最佳做法,请考虑以不具有管理凭据的用户身份执行该任务。
语法
cscript <scriptname.extension> [/b] [/d] [/e:<engine>] [{/h:cscript | /h:wscript}] [/i] [/job:<identifier>] [{/logo | /nologo}] [/s] [/t:<seconds>] [x] [/u] [/?] [<scriptarguments>]
参数
参数 | 说明 |
---|---|
scriptname.extension | 指定具有可选文件扩展名的脚本文件的路径和文件名。 |
/b | 指定批处理模式,该模式不显示警报、脚本错误或输入提示。 |
/d | 启动调试器。 |
/e:<engine> |
指定用于运行脚本的引擎。 |
/h:cscript | 注册cscript.exe作为运行脚本的默认脚本主机。 |
/h:wscript | 注册wscript.exe作为运行脚本的默认脚本主机。 默认值。 |
/i | 指定交互模式,该模式显示警报、脚本错误和输入提示。 默认值,与 相反 /b 。 |
/job:<identifier> |
在 .wsf 脚本 文件中 运行由标识符标识的作业。 |
/logo | 指定脚本Windows脚本主机横幅在脚本运行之前显示在控制台中。 默认值,与 相反 /nologo 。 |
/nologo | 指定在Windows之前不显示"脚本主机"横幅。 |
/s | 保存当前用户的当前命令提示符选项。 |
/t:<seconds> |
指定脚本可以运行的最大时间( (秒) 。 可以指定最多 32,767 秒。 默认值为无时间限制。 |
/U | 为从控制台重定向的输入和输出指定 Unicode。 |
/x | 在调试器中启动脚本。 |
/? | 显示可用的命令参数,并提供使用它们的帮助。 与键入无参数 cscript.exe 脚本的脚本相同。 |
scriptarguments | 指定传递给脚本的参数。 每个脚本参数前面必须有一个斜杠 / () 。 |
注解
-
每个参数都是可选的;但是,如果不指定脚本,则不能指定脚本参数。 如果未指定脚本或任何脚本参数,则cscript.exe显示cscript.exe语法和有效主机选项。
-
/t参数通过设置计时器来防止脚本过度运行。 当运行时超过指定值时,cscript 将中断脚本引擎并结束进程。
-
Windows脚本文件通常具有以下文件扩展名之一:.wsf、.vbs、.js。 Windows脚本主机可以使用 .wsf 脚本文件。 每个 .wsf 文件都可以使用多个脚本引擎并执行多个作业。
-
如果双击扩展名没有关联的脚本文件,则会显示" 打开方式 "对话框。 选择"wscript"或"cscript",然后选择" 始终使用此程序"打开此文件类型。 这会将wscript.exe或 cscript 注册为此文件类型的文件的默认脚本主机。
使用 CScript.exe 运行脚本
CScript.exe 是 Windows 脚本宿主的一个版本,可以用来从命令行运行脚本。 CScript.exe 提供了用于设置脚本属性的,命令行开关。要使用 CScript.exe,可使用下列语法在命令行上键入命令:
cscript [
宿主选项...] [
脚本名称] [
脚本选项与参数]
其中的术语定义如下:
- 宿主选项 打开或关闭不同的 Windows 脚本宿主功能。宿主选项的前面有两条斜线 (//)。
- 脚本名称 脚本文件的名称,包括扩展名和必要的路径信息,例如 d:\admin\vbscripts\chart.vbs。
- 脚本选项与参数 被传递到脚本中。脚本参数的前面有一条斜线(/)。
每个参数都是可选项;但是在指定脚本选项时必须指定脚本名称。如果不指定参数,CScript 将显示 CScript 语法和有效的宿主参数。CScript.exe 支持的脚本选项见下表。
参数 | 描述 |
---|---|
//I | 交互式模式:允许显示用户提示和脚本错误(缺省设置,相对的设置为 //B)。 |
//B | 批处理模式:不在命令行上显示用户提示和脚本错误。 |
//T:nn | 启用超时设置:设置脚本能够运行的最长秒数。缺省值是没有限制。(关于此参数,请参阅本表后面的文本。) |
//logo | 缺省设置。显示标题(与 //nologo 相反)。 |
//nologo | 在运行时不显示执行标题。 |
//H:CScript 或//H:WScript | 将 CScript.exe 或 WScript.exe 注册为运行脚本时使用的缺省应用程序。如果两者都未指定,缺省设置未 WScript.exe。 |
//S | 为该用户保存当前的命令行选项。 |
//? | 显示命令的使用方法。 |
//E:engine | 使用指定的脚本引擎执行脚本。 |
//D | 打开调试器。 |
//X | 在调试器中启动程序。 |
//Job:<JobID> | 运行 .wsf 文件中指定的 JobID。 |
//T 参数设置了一个定时器,从而防止了脚本的过度执行。如果执行时间超过了指定值,CScript 将使用 IActiveScript::InterruptThread 方法中断脚本引擎并结束进程。
一个 CScript 示例
在安装最终版本的 Windows 脚本宿主时将安装若干示例脚本。这些脚本也可以通过网络下载,请访问以下地址:http://msdn.microsoft.com/scripting。
假设你已经将 Chart.vbs 示例脚本复制到计算机上的下列文件夹:
c:\sample scripts\chart.vbs
在运行脚本时可以使用或不用图标,如下所示:
从开始菜单的程序中选择 MS-DOS(R)操作系统命令行。
在命令行上输入下列命令(可以根据文件夹的位置做相应的调整):
cscript //logo c:\"sample scripts"\chart.vbs
cscript //nologo c:\"sample scripts"\chart.vbs